#Allgemeine Hilfe

1 messages · Page 65 of 1

outer ibex
#

hab fehler gemacht und ist nicht von mir

#

für*

#

mich

tawdry leaf
#

xD

strange juniper
#

müssen die ganzen get_something dinger nicht awaited werden?

tawdry leaf
#

ne

#

fetch muss man awaiten

strange juniper
#

interessant

void creek
tawdry leaf
#

sende mal den ganzen error

strange juniper
tawdry leaf
#

man sieht die hälfte nd

void creek
tawdry leaf
#

eine synchron andere asynchron

tawdry leaf
blissful ember
#

mach ich grad aber meinung zum code?

void creek
strange juniper
void creek
#

@tawdry leaf

outer ibex
#
role
await
#

das role über await

void creek
#

Ok

strange juniper
# blissful ember mach ich grad aber meinung zum code?

bisschen geschmackssache ohne einfluss auf den code, persönlich trenne ich immer ganze imports und teil-imports.
also aus:

from datetime import datetime
import discord
from discord.commands import slash_command
from discord.ext import commands

# würde ich
import discord

from datetime import datetime
from discord.commands import slash_command
from discord.ext import commands

machen

outer ibex
#

was für automod funktonen gibt es?

odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
strange juniper
# blissful ember mach ich grad aber meinung zum code?

Hier fehlt das type-hinting. Timo ist da, besonders in seinen älteren Videos immer zu faul zu 😄

class Profile(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
# würde ich wie folgt abändern:

class Profile(commands.Cog):
    def __init__(self, bot: discord.Bot):
        self.bot = bot
# die 2. Version hat den Vorteil, dass man eher autovervollständigung bekommt und die IDE weitere Infos anbietet wenn man seinen Maus über bot oder andere worte nach bot. hält
outer ibex
void creek
blissful ember
strange juniper
#

Da könnte man graben, wie das nochmal genau war, dass das command nur für admins sichtbar ist. spart die beschreibung "ist nicht für dich ätsch" müsste aber jetzt auch suchen

    @slash_command(description=":no_entry_sign: × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer() #usw
strange juniper
#

Mit dieser init, also wie es in version 1 aussieht, sind stellen im späteren code wo "boot" steht einfach text. Bei Ausführung funktioniert alles wie es soll.

blissful ember
#

Könntest du mir den hauptteil erklären im Code also json usw.

strange juniper
blissful ember
#

😄

strange juniper
#

Version 2 und was sich ändert. erstmal sieht das so aus(Bild):
für pycharm bedeutet das es weiß nun mit was man arbeitet. in diesem fall ist es eine selbst geschriebene subklasse eines discord bots.

kommt gleich nochwas zu den praktischen vorteilen

blissful ember
#

oke

void creek
#

Es kommt immer wieder der error

strange juniper
#

Hier siehst du wie ich eine selbstgemachte methode aufrufe, die für datenbankzugriffe verwendet wird. dahinter verbirgt sich mysql.
Auf dem Bild kannst du erkennen wie ich anfange "po" für "pool" zu schreiben. Das wird benötigt um sich verbindungen zur datenbank zuweisen zu lassen.

Pycharm schlägt nun auto-vervollständigung, hier das wort "pool" vor.
das kann/kennt es aber nur, weil die Klasse "Boot" (siehe Bild 1) über
"boot: Boot" angegeben wurde und bekannt ist.

Diese Autovervollständigung hilft zum einen die möglichkeiten zu sehen wie man weiter schreiben kann, zu sehen welche möglichkeiten es überhaupt gibt und schreibt man etwas falsches merkt man das fix daran dass es eben unbekannt ist

#

Zu guter letzt gibt das typ hinting, also das "bot: discord.Bot" oder "boot: Boot" in meinem Fall texte aus, wenn man die maus über einen teil hält. Auch hierzu ein Bild:

#

Diese text würde nicht auftauchen, wäre nicht angegeben um was es sich bei boot handelt.

#

(also das aufgepopte)

blissful ember
void creek
#

@outer ibex Es kommt immer wieder der error

outer ibex
#

dann ka

void creek
#

Das ist bei mein Regel so

strange juniper
# blissful ember ich verstehe

probier nur nicht das nachzuschreiben. Sowohl "boot" als auch "database_access" sind selbst gebastelte sachen. Die gibt es erst wenn man sie gebaut und implementiert hat. 😄

blissful ember
#

jo, ich versteh jz nur noch eins den hauptteil des Codes bzw. json usw.

strange juniper
#

schaue

strange juniper
blissful ember
#

. oder erklär die zeilen von unter Class

strange juniper
#

fehlen das 2 fs?
also bei:

[
'Willkommen {member}!',
'{member.mention} ist beigetreten'
]
dass da

[
                f'Willkommen {member}!',
                f'{member.mention} ist beigetreten'
            ]

gemeint ist?

blissful ember
#

ne json sachen

#

DAS: ```class Welcome(commands.Cog):
def init(self, bot):
self.bot: commands.Bot = bot
self.file_path = 'data.json'
self.default_data = {
'channel_id': 123,
'messages': [
'Willkommen {member}!',
'{member.mention} ist beigetreten'
]
}

    if not os.path.exists(self.file_path):
        with open(self.file_path, 'w') as f:
            json.dump(self.default_data, f, indent=4)
            self.data = self.default_data
            print(f'Created {self.file_path!r}')
    else:
        with open(self.file_path, 'r') as f:
            self.data = json.load(f)


@commands.Cog.listener()
async def on_member_join(self, member: discord.Member):
    channel_id = self.data['channel_id']
    channel = self.bot.get_channel(channel_id)
    messages = self.data['messages']
    message: str = random.choice(messages)
    message = message.format(member=member)
    await channel.send(message)


@commands.command()
async def test_join(self, ctx):
    """Führt das on_member_join event zum testen aus."""
    self.bot.dispatch('member_join', ctx.author)```
strange juniper
#

was meckerst du denn? 😄

tawdry leaf
#

oha ein "!"

strange juniper
#

Jaha! 😂 War genau in dem Teil am schauen

blissful ember
tawdry leaf
#

sieht aus wie eine dm chat 😄

blissful ember
#

;D

strange juniper
#

bei self.default_data war ich.

Achso. Json ist ein recht bekanntes und einfach zu verwendendes Format. Damit kann man mit wenig aufwand daten in eine datei speichern und daraus wieder abrufen.

wesentlich einfacher als datenbanken, performt aber auch wie hüttenkäse

blissful ember
#

Wo müsste ich den hier etwas ändern ? @commands.Cog.listener()
async def on_member_join(self, member: discord.Member):
channel_id = self.data['channel_id']
channel = self.bot.get_channel(channel_id)
messages = self.data['messages']
message: str = random.choice(messages)
message = message.format(member=member)
await channel.send(message)

strange juniper
#

Damit dir die info auch was nutzt:

Du baust einen Bot, der auf genau einem Server benutzt werden soll? JSON ist dein Freund, schau dir tutorials dazu an, speicher kram,. sei happy.

Du willst einen Bot bauen der viel Publikum und Verbreitung haben soll?
Bloß kein JSON viel zu lahm.

blissful ember
#

Das ist sehr verständlich 👍

strange juniper
#

Freut mich zu hören. Bin Mal ein Panzer fahren.. sind ja auch genug andere da die bestimmt was erklären können 🙂

#

Bis später

blissful ember
#

oke... bis später

strange juniper
# blissful ember ;D

läuft wieder aufs selbe raus, was ich dir x mal gesagt habe.

So'n code nutzt wenig, wenn er irgendwo kopiert wurde und man nicht versteht was er tut. Ich würde für dein Vorhaben gar kein JSON für irgendwas einsetzen, weil unnötig und viel komplizierter (wenn auch kein hexenwerk) als ein tuple zu lernen und zu verwenden.

lern ihn halt einfach. die ganze energie, die rein ging das lernen umgehen zu wollen reicht inzwischen 3x aus das gemeistert zu haben.

outer ibex
#

kann mir jemand kurz helfen
wie kann ich die channels also die youtube accounts für die uploade in db machen genau so wie die channel ids

from discord.ext import commands, tasks

import scrapetube


class Youtube(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.channels = {
            "Sully_52": f"https://youtube.com/@Sully_52",
            "KMC - KurbizMusicCompetition": f"https://youtube.com/@fdmbattleturnier1636",

            
        }
        self.videos = {}

    @commands.Cog.listener()
    async def on_ready(self):
        self.check.start()

    @tasks.loop(seconds=60)
    async def check(self):
        discord_channel = self.bot.get_channel(940669588209807390)  # hier channel id einfügen

        for channel_name in self.channels:
            videos = scrapetube.get_channel(channel_url=self.channels[channel_name], limit=5)
            video_ids = [video["videoId"] for video in videos]

            if self.check.current_loop == 0:
                self.videos[channel_name] = video_ids
                continue

            for video_id in video_ids:
                if video_id not in self.videos[channel_name]:
                    url = f"https://youtu.be/{video_id}"
                    await discord_channel.send(f"**{channel_name}** hat ein Video hochgeladen\n\n{url}")

            self.videos[channel_name] = video_ids


def setup(bot):
    bot.add_cog(Youtube(bot))
outer ibex
limber crow
# outer ibex

YouTubeNotificationChannel_ID: Channel_ID die ich aus der .env auslese
YouTubeNotificationRole_ID: Role ID/S die ich aus der .env auslese

outer ibex
#

ja dann blieb ich lieber bei meinem system obwohl das kaka ist egal danke trotzdem

limber crow
austere jackal
#

Hey, wie kann ich mehrere Zeilen auskommentieren in Py-charm?

tawdry leaf
#

strg+'

#

@austere jackal

austere jackal
#

Danke

empty plaza
#

Lucky kann man wirklich nicht ein wait_for abbrechen? durch button klick wäre ja voll Genderhaft

empty plaza
tawdry leaf
#

timeout (Optional[float]) – The number of seconds to wait before timing out and raising asyncio.TimeoutError.

empty plaza
#

jaja das hab ich aber wenn man ein button drückt soll dieser kommt ja dieser error nicht der kommt erst nach 180 Sekunden in meinem fall

tawdry leaf
#

ich weiß grad nd was du meinst

empty plaza
#

Was ich erreichen will ist wenn ein user ein button drückt soll das wait_for abgebrochen werden aber asyncio.TimeoutError kommt ja erst nach 180 Sekunden bei mir

tawdry leaf
#

und woher soll ich wissen wie du das wait_for auslöst

empty plaza
#

mit try und except

tawdry leaf
#

hm jz check ich gar nix mehr

empty plaza
#

so?

tawdry leaf
#

aber wozu brauchst du des wait_for?

empty plaza
#

damit der user eine nachricht schreibt

#

aber diesen vorgang kann man auch abbrechen mit einem button

#

aber wenn man drauf drückt ist ja dieses wait_for noch aktiv

tawdry leaf
#

okay

empty plaza
#

ich will das es abgebrochen wird

#

du verstehen

tawdry leaf
#

joa

empty plaza
#

can u help me now?

#

hab sowas gefunden

tawdry leaf
#

also beim check das er auf messages es abbricht und auf den button

empty plaza
#

BRO WAS?

tawdry leaf
#

das willst du doch machen xD

empty plaza
#

i show u okay?

tawdry leaf
#

jo

empty plaza
#

ab wo ich auf den Zurück button gedrückt habe will ich das wait_for abgebrochen wird

tawdry leaf
empty plaza
#

nein

#

@tawdry leaf #

tawdry leaf
#

doch

empty plaza
#

KANNST DU CALL?

tawdry leaf
#

ne leider nicht weil hier auch user getimeoutet sind die mit mir im call sind

empty plaza
#

okay na gut das ist immer noch nicht das was ich will ich DAFÜR HASSE ICH MEINE ERKLÄR SKILSSa

#

So lieber @tawdry leaf Landing ich habe im Video auf diesen Zurück button gedrückt und er hat die Nachricht zurück bearbeitet richtig ja richtig, danach hab ich ja eine Nachricht gesendet und der bot hat geantwortet obwohl ich zurück gedrückt habe Oh wie kann das sein weil ich diesen wait_for nicht abgebrochen habe. wie breche ich dieses wait_for ab? damit der bot keine Nachrichten mehr nimmt

tawdry leaf
#

das was ich geschickt habe ist das es des beendet wenn man den button drückt verstehe also dein problem weiterhin nd 😄

empty plaza
#

ich würde es dir gerne im call erklären geht aus komischen gründen nicht

#

ah

#

ne doch nd

tawdry leaf
#

xD

empty plaza
#

ich sehe es nicht wo es beendet wird

#

mache das morgen ich kann das alles nicht mehr

tawdry leaf
#

okay 😄

empty plaza
#

@tawdry leaf

#

@tawdry leaf

#

SOLL DAS SOOO???

tawdry leaf
#

wenn du owner bist kann er dich nd bannen?

empty plaza
#

aber 2 Nachrichten?

tawdry leaf
#

ist das dir zu viel 🤔

empty plaza
#

ne zu wenig

tawdry leaf
#

na gut

#

dann zeige ich den error noch an xD

empty plaza
#

ya

silk gulch
#

Weiß wer warum???

root@censored:~/jinxle_bot# pip freeze
aiocache==0.12.2
aiohttp==3.8.6
aiosignal==1.3.1
aiosqlite==0.19.0
async-timeout==4.0.3
attrs==20.3.0
blinker==1.4
certifi==2020.6.20
chardet==4.0.0
charset-normalizer==3.3.2
cloud-init==20.4.1
colorama==0.4.6
configobj==5.0.6
cryptography==3.3.2
dbus-python==1.2.16
distro-info==1.0
dnspython==2.4.2
easy-pil==0.3.2
ezcord==0.5.2
frozenlist==1.4.1
httplib2==0.18.1
idna==2.10
importlib-metadata==1.6.0
Jinja2==2.11.3
jsonpatch==1.25
jsonpointer==2.0
jsonschema==3.2.0
MarkupSafe==1.1.1
more-itertools==4.2.0
multidict==6.0.4
oauthlib==3.1.0
pillow==10.2.0
py-cord==2.4.1
pycurl==7.43.0.6
PyGObject==3.38.0
PyJWT==1.7.1
pymongo==4.6.1
pyrsistent==0.15.5
PySimpleSOAP==1.16.2
python-apt==2.2.1
python-debian==0.1.39
python-debianbts==3.1.0
python-dotenv==1.0.0
PyYAML==5.3.1
reportbug==7.10.3+deb11u1
requests==2.31.0
six==1.16.0
typing-extensions==4.9.0
unattended-upgrades==0.1
urllib3==1.26.5
yarl==1.9.4
zipp==1.0.0



root@censored:~/jinxle_bot# python jinxle.py 
Traceback (most recent call last):
  File "/root/jinxle_bot/jinxle.py", line 2, in <module>
    import discord
ModuleNotFoundError: No module named 'discord'```
tawdry leaf
odd kiteBOT
#

@silk gulch

Requirements-Check

⚠️ Es sollte nur eine Discord Library installiert sein

py-cord==2.4.1
import discord```
⚠️ Schreibe **nur** die Package-Namen in deine Datei
```yml
importlib-metadata==1.6.0
import discord```
*Ich habe [diese Nachricht](#1019974414487535736 message) geprüft.*
tawdry leaf
#

@silk gulch statement

silk gulch
tawdry leaf
silk gulch
tawdry leaf
empty plaza
#

Lucky nh frage

tawdry leaf
#

ja

silk gulch
#

Jetzt meckert er wegen dotenv.

#

Traceback (most recent call last):
File "/root/jinxle_bot/jinxle.py", line 2, in <module>
from dotenv import load_dotenv
ModuleNotFoundError: No module named 'dotenv'

tawdry leaf
#

hast du es nicht installiert

silk gulch
empty plaza
tawdry leaf
tawdry leaf
#

ich blicke bei deinen packages eh nd durch

silk gulch
tawdry leaf
#

sind eig zu viele

silk gulch
#

Ist ja eig. auch Wurst. Geht ja in erster Linie darum, dass er noch immer meckert.

tawdry leaf
#

ja warte

silk gulch
#
# python --version
Python 3.12.1```
tawdry leaf
#

@empty plaza hast du eig des video geschaut https://www.youtube.com/watch?v=Oeeg11RF32g&t=9s

silk gulch
tawdry leaf
silk gulch
tawdry leaf
tawdry leaf
silk gulch
tawdry leaf
#

also auf mein server habe ich die auch nd in den requirements

empty plaza
tawdry leaf
#
py-cord @ git+https://github.com/Pycord-Development/pycord@225671013386af036ffc6e03818e38f07c91359d
ezcord @ git+https://github.com/tibue99/ezcord
chat-exporter
psutil
chardet
easy_pil```
das habe ich nur in meiner requirement und des reicht eig völlig
empty plaza
#

er zeigt nicht wie man abricht

tawdry leaf
#

immer diese timos

empty plaza
#

also timo @solid ingot

silk gulch
silk gulch
tawdry leaf
silk gulch
#

py-cord

#

mit ezcord

tawdry leaf
#

dann dürfte der nicht kommen wenn du discord aus deiner requirements hast

silk gulch
tawdry leaf
#

dann hast du die nicht angegeben beim startup

silk gulch
#

Wie mach ich das?

tawdry leaf
silk gulch
#

Ich nutze kein Pterodactyl.

tawdry leaf
#

aua

silk gulch
#

Nix aua.

tawdry leaf
#

ja wenn man sich nicht mit den anderen auskennt schon 😅

silk gulch
#

Womit auskennen?

tawdry leaf
#

ja wenn du nd weißt wie du dein bot mit dem requirements startest

silk gulch
#

Muss ja auch außerhalb Pterodactyl möglich sein, den Bot mit der requirements.txt zu starten.

empty plaza
#

wie zu starten

#

kannst du eben nd du installierst die sachen und startets deine main?

#

du Ezcord rolle solltest es ja wissen

silk gulch
#

Hab ich.

tawdry leaf
#

pip install requirements.txt

#

wie sonst auch in der konsole

silk gulch
# tawdry leaf pip install requirements.txt
#pip install requirements.txt
ERROR: Could not find a version that satisfies the requirement requirements.txt
ERROR: No matching distribution found for requirements.txt```
empty plaza
#

pip install requirements

#

versuch es so

tawdry leaf
empty plaza
silk gulch
tawdry leaf
silk gulch
# empty plaza pip install requirements
# pip install requirements
ERROR: Could not find a version that satisfies the requirement requirements
ERROR: No matching distribution found for requirements```
empty plaza
silk gulch
empty plaza
#

versuch

tawdry leaf
#

lädst du doch genauso deine dateien hoch

#

machst du es über putty?

silk gulch
#

Es spielt keine Rolle ob ich es über PuTTY oder einem anderen Programm mache. Das Endergebnis bleibt das gleiche.

tawdry leaf
#

ja hast du denn die requirements.txt auch hochgeladen

silk gulch
empty plaza
#

@silk gulch

#

pip install -r requirements.txt

silk gulch
empty plaza
#

ja ich weiß

#

ezcord rolle

tawdry leaf
silk gulch
#

Jetzt muss nur noch der Bot starten.

tawdry leaf
#

du kannst es nicht wissen

empty plaza
#

selber ausprobiert

#

GG

tawdry leaf
#

darum gehts doch nd

#

egal 🙂

empty plaza
#

egal

#

🙂

outer ibex
#

ey wie kann man nochmal eine role hinzufügen z.b beim welcome system wenn jemand joined hab des vergessen geht doch mit oder ?

Member_role = 213141241)
 await member.role.add(member_role)
tawdry leaf
#

ne

outer ibex
#

wie den xD

outer ibex
#

oh da kommt mein javascript wieder raus

#


    Member_role = 1198041528677970050

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)
outer ibex
empty plaza
tawdry leaf
#

id=

empty plaza
#

schau bei member abi

#

auch so lucky bester man

outer ibex
empty plaza
#

ne

#

id=DEINEID

outer ibex
#

member_role ist meine id

tawdry leaf
#

suiiii

empty plaza
#

bro hast du downsyndrom? ```py
await member.add_roles(id=DEINEID)

tawdry leaf
outer ibex
# empty plaza bro hast du downsyndrom? ```py await member.add_roles(id=DEINEID) ```

Du lustiger

Traceback (most recent call last):
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 399, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\disco\Desktop\Testbot\main.py", line 70, in on_member_join
    await member.add_roles(id="1198041528677970050")
TypeError: Member.add_roles() got an unexpected keyword argument 'id'```
empty plaza
tawdry leaf
#

haha

outer ibex
#

Nice bin nit nur ein mädchen auf einmal

empty plaza
#

Transfromer einfach

#

@tawdry leaf 2024 geht zu weit

outer ibex
#

sei einfach leise du hast gesagt ich soll es so machen es funktoneirt nicht egal ich habs jetzt danke Lucky

tawdry leaf
#
    Member_role = self.bot.get_role(1198041528677970050)

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_em)```
empty plaza
#

lucky sagt doch einf rolle getten

outer ibex
#

Ja ich hab gesagt ich hab es dank lucky

tawdry leaf
#

eig esse ich pringles Kekw

empty plaza
#

@outer ibex

outer ibex
#

ich hasse mein leben wieso ist python so schwer 😦

empty plaza
#

python ist einfach besser als js

tawdry leaf
#

hm

empty plaza
#

voll schwer man

tawdry leaf
#

hast du getrunken

empty plaza
#

ich glaub hat der

#

@outer ibex ich hab deine ip jetzt

#

dank vencord nice

outer ibex
#

viel spaß damit aue

empty plaza
#
    Member_role = self.bot.get_role(1198041528677970050)
    vencord.getip()
    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_em)
#

siehst du

outer ibex
#

Back dir ein ice

#

eis*

empty plaza
#

💀

outer ibex
#

dedos mich ruhig

outer ibex
empty plaza
#

🤨

outer ibex
#
Member_role = bot.get_role(1198041528677970050)

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)
empty plaza
outer ibex
#
Traceback (most recent call last):
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 399, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\disco\Desktop\Testbot\main.py", line 70, in on_member_join
    Member_role = bot.get_role(1198041528677970050)
AttributeError: 'Bot' object has no attribute 'get_role'
empty plaza
#

self.bot

outer ibex
empty plaza
#

dann hast du was falsch gemacht

outer ibex
#

Sorry Des Weed Knallt 😄

empty plaza
#

zeig ganzen code

tawdry leaf
#

😂

empty plaza
outer ibex
tawdry leaf
#

😮

empty plaza
tawdry leaf
empty plaza
#

ich kann da mit deinen 3 zeilen nichts anfangen also zeig code

outer ibex
#
@bot.event
async def on_member_join(member):
    if member.guild.id != 940666230946291803:
         return
    channel = bot.get_channel(1164896361662140507)
    welcome_embed =discord.Embed(
        title="👋 | Willkommen",
        description=f"Hey {member.mention} Willkommen Auf dem server. \n Hier kannst du dich verifitzieren #1164896339616870440\n Hier kannst du z.b Deine pings auswählen #1198058289901076602  "
    )
    

    Member_role = bot.get_role()

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)
empty plaza
#

hast du keine cogs?

tawdry leaf
#

als mädchen hat man keine

empty plaza
#

ja stimmt

#

da ist was dran 🤣

tawdry leaf
#

sieht aus wie ein bot token xD

empty plaza
#

@outer ibex

outer ibex
empty plaza
#

kannst du aber auch in cogs machen

#

in main.py kenne ich mich nd aus @tawdry leaf

outer ibex
empty plaza
#

ich glaub du kannst async def on_member_join(member, bot: discord.Bot):

#

drunter machst du dann noch

self.bot = bot

outer ibex
#

aber der will die role nicht geben

empty plaza
#

#

ja dafür brauchst du denn bot

#

kollege

outer ibex
tawdry leaf
#

Willkommen

empty plaza
#

Willkommen

#

sully_dev

outer ibex
tawdry leaf
#
class Reactionroles(ezcord.Cog, hidden=True):

    @ezcord.Cog.listener()
    async def on_member(self, member):
        if member.guild.id != 940666230946291803:
           return
        channel = bot.get_channel(1164896361662140507)
        welcome_embed =discord.Embed(
        title="👋 | Willkommen",
        description=f"Hey {member.mention} Willkommen Auf dem server. \n Hier kannst du dich verifitzieren #1164896339616870440\n Hier kannst du z.b Deine pings auswählen #1198058289901076602  "
    )
    

    Member_role = self.bot.get_role()

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)```
empty plaza
#

@outer ibex das hast du es

#

jetzt sag danke bevor ich mich vergesse

#

du downi

outer ibex
#

du schwanz

empty plaza
#

@tawdry leaf lösch code

#

Bell mal du kleiner hosenscheißer

tawdry leaf
empty plaza
outer ibex
#

Was ist dein proplem du schwanz du sagst zu mir ich bin downy und was bist du den dan

empty plaza
#

Normaler Mensch

#

ich bedanke mich wenn mir geholfen wird

outer ibex
#

Ja ich mich auch aue

empty plaza
#

sehe ich

outer ibex
#

Du schwanz

empty plaza
#

besser so

empty plaza
#

jetzt viel spaß beim coden du downy nimm das nicht erst um die uhrzeit wird eh immer getrollt

outer ibex
# empty plaza besser so

Weiß nicht was dein proplem ist Ist doch dann mein proplem wenn lucky mir nicht mehr helfen will und nicht deins

empty plaza
#

lucky hat support verdient

outer ibex
#
import discord
import ezcord

class Reactionroles(ezcord.Cog, hidden=True):

    @ezcord.Cog.listener()
    async def on_member(self, member):
        if member.guild.id != 940666230946291803:
           return
        channel = bot.get_channel(1164896361662140507)
        welcome_embed =discord.Embed(
        title="👋 | Willkommen",
        description=f"Hey {member.mention} Willkommen Auf dem server. \n Hier kannst du dich verifitzieren #1164896339616870440\n Hier kannst du z.b Deine pings auswählen #1198058289901076602  "
    )
    
    Member_role = self.bot.get_role()

    await member.add_roles(Member_role)
    await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)
    ```
#

Geht immer noch nicht 😦

empty plaza
#

schau ob deine einrückung richtig ist

tawdry leaf
#

also eingerückt habe ich den code nicht nur so 😅

outer ibex
#

ja sind richtig

#

jetzt

empty plaza
#

nice

#

viel spaß beim coden

outer ibex
#

jetzt sagt der bot ist nit richtig

#

also defeniert

tawdry leaf
#
import discord
import ezcord

class Reactionroles(ezcord.Cog, hidden=True):

    @ezcord.Cog.listener()
    async def on_member(self, member):
        if member.guild.id != 940666230946291803:
           return
        channel = self.bot.get_channel(1164896361662140507)
        welcome_embed =discord.Embed(
        title="👋 | Willkommen",
        description=f"Hey {member.mention} Willkommen Auf dem server. \n Hier kannst du dich verifitzieren #1164896339616870440\n Hier kannst du z.b Deine pings auswählen #1198058289901076602  "
    )
    
        Member_role = self.bot.get_role()

        await member.add_roles(Member_role)
        await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)

def setup(bot: discord.Bot):
    bot.add_cog(Reactionroles(bot))```
tawdry leaf
#

also das ist aber in einem cog

outer ibex
#

ne jetzt startet der bot nit

outer ibex
outer ibex
#

oder man ist einfach zu dumm code zu kopieren 😄

#

hab nix gesagt danke sehr

tawdry leaf
outer ibex
#

muss ich da etwas ändern oder so geht immer noch nit 😄

tawdry leaf
#

er gibt die rolle nd?

outer ibex
#

Welcome Message wird auch nit mehr gesendet kommt kein error

tawdry leaf
#

intents.members = True

outer ibex
#

hab intents.all

#

das ding ist der sendet beim Bot der auf server gehostet ist ganze zeit Welcome Messages aber auf dem Test bot nix mehr

urban glen
outer ibex
#

Glaub ich habs

#
import discord
import ezcord

class Reactionroles(ezcord.Cog, hidden=True):

    @ezcord.Cog.listener()
    async def on_member_join(self, member):
        if member.guild.id != 940666230946291803:
           return
        channel = self.bot.get_channel(1164896361662140507)
        welcome_embed =discord.Embed(
        title="👋 | Willkommen",
        description=f"Hey {member.mention} Willkommen Auf dem server. \n Hier kannst du dich verifitzieren #1164896339616870440\n Hier kannst du z.b Deine pings auswählen #1198058289901076602  "
    )
    
        Member_role = self.bot.get_role("1198041528677970050")

        await member.add_roles(Member_role)
        await channel.send(f"  **{member.mention}** Willkommen auf dem **{member.guild.name}** Server ",embed=welcome_embed)

def setup(bot: discord.Bot):
    bot.add_cog(Reactionroles(bot))
#

Das er die role nicht geben könnte ist auch ausgeschlossen

urban glen
#

get_role will doch sowieso keinen String haben

outer ibex
#

wie soll ich das jetzt verstehen?

urban glen
#

Naja als int

#

Ohne Anführungszeichen

empty plaza
#

Gib einfach zahlen an

urban glen
#

Und get_role wahrscheinlich auf den guild und nicht bot

empty plaza
#

Bro du kannst js solltest du nicht wissen was ein String ist?

outer ibex
#

Doch Es funktoniert mit "ID" nicht und wenn ich nur ID mache geht es auch nit

#

Also Wenn ich aus dem Welcome Code await member.add_roles(1198041528677970050)
entferne Funktoniert Es

#

hab es jetzt auf die alte art gemacht und es funktoniert

#

danke euch trotzdem

ruby sparrow
ruby sparrow
#

@novel ore was muss allles für minigame in db sein ?

novel ore
ruby sparrow
#

TicTacTo

novel ore
ruby sparrow
#

was sag ihr mit button oder mit eomji

novel ore
ruby sparrow
#
discord.errors.ExtensionFailed: Extension 'cogs.minigame.TicTacTo' raised an error: AttributeError: type object 'Button' has no attribute 'gray'```
#
@discord.ui.button(label="1", style=discord.ButtonStyle.gray, custom_id="1")```
novel ore
#

Gibt es gray überhaupt? Denke du musst primary nutzen

ruby sparrow
#
@discord.ui.button(label="9", style=discord.ButtonStyle.primary, custom_id="9")
    async def button_callback_9(self, button, interaction):``` ```py
Traceback (most recent call last):
  File "d:\Projects\cloud-bot\main.py", line 48, in <module>
    bot.load_cogs("./cogs/minigame", subdirectories=True, custom_log_level="minigame")
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\littxlecord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.minigame.TicTacTo' raised an error: AttributeError: type object 'Button' has no attribute 'primary'```
native inlet
novel ore
#

Ich bekomm diesen Error und weiß nicht warum der kommt. Ich vermte das der noch in derfor schleife ist aber schon die näcshte for schleife gibt. Kann das sein?

solid ingot
#

welche nächste for schleife meinst du, ich sehe da nur eine. vielleicht ändert sich der self.counting wert während der for schleife

solid ingot
#

ich weiß nicht was du genau im dict speicherst, aber vielleicht solltest du die dictionary struktur ändern

empty plaza
#

Hey Timo ich hab eine Frage wie kann man ein laufendes wait_for abbrechen wenn man auch ein Button drückt?

silk gulch
#

Ich habe seit gestern noch immer folgendes Problem:

Traceback (most recent call last):
  File "/root/jinxle_bot/jinxle.py", line 2, in <module>
    import discord
ModuleNotFoundError: No module named 'discord'```

Das ganze läuft nicht über Pterodactyl. Ich versuche ihn so zu starten.
#🔍・pycord-help auch schon befolgt.
pip freeze:

pip freeze

aiocache==0.12.2
aiohttp==3.8.6
aiosignal==1.3.1
aiosqlite==0.19.0
async-timeout==4.0.3
attrs==20.3.0
blinker==1.4
certifi==2020.6.20
chardet==4.0.0
charset-normalizer==3.3.2
cloud-init==20.4.1
colorama==0.4.6
configobj==5.0.6
cryptography==3.3.2
dbus-python==1.2.16
distro-info==1.0
dnspython==2.4.2
easy-pil==0.3.2
ezcord==0.5.2
frozenlist==1.4.1
httplib2==0.18.1
idna==2.10
importlib-metadata==1.6.0
Jinja2==2.11.3
jsonpatch==1.25
jsonpointer==2.0
jsonschema==3.2.0
MarkupSafe==1.1.1
more-itertools==4.2.0
multidict==6.0.4
oauthlib==3.1.0
pillow==10.2.0
py-cord==2.4.1
pycurl==7.43.0.6
PyGObject==3.38.0
PyJWT==1.7.1
pymongo==4.6.1
pyrsistent==0.15.5
PySimpleSOAP==1.16.2
python-apt==2.2.1
python-debian==0.1.39
python-debianbts==3.1.0
python-dotenv==1.0.0
PyYAML==5.3.1
reportbug==7.10.3+deb11u1
requests==2.31.0
six==1.16.0
typing-extensions==4.9.0
unattended-upgrades==0.1
urllib3==1.26.5
yarl==1.9.4
zipp==1.0.0```

novel ore
empty plaza
solid ingot
novel ore
silk gulch
solid ingot
silk gulch
solid ingot
#

dann hast du vlt mehrere python versionen auf deinem server

silk gulch
solid ingot
#

welches betriebssystem hat dein server

silk gulch
solid ingot
#

hm da müsstest du selbst mal nachschauen

empty plaza
silk gulch
solid ingot
#

dann hat das mit der default version wohl nicht geklappt

silk gulch
silk gulch
solid ingot
#

hast du die packages denn auch für 3.12 installiert?

silk gulch
solid ingot
#

mit pip install nehme ich an. wenn du die packages aktuell für 3.9 installiert hast, bringt es dir ja nichts die default version auf 3.12 zu haben.

ruby sparrow
#
ile "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "d:\Projects\cloud-bot\cogs\minigame\TicTacTo.py", line 16, in on_ready
    self.bot.add_view(TicTacToeView())
                      ^^^^^^^^^^^^^^^
TypeError: TicTacToeView.__init__() missing 1 required positional argument: 'game_data'```
silk gulch
ruby sparrow
#
@commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(TicTacToeView())```
solid ingot
silk gulch
empty plaza
#

Bro Quick fix deinstalliere alle deine Pythons die du hast und installiere Python neu ich benutze noch Python 11.5 funktioniert noch am besten

solid ingot
silk gulch
silk gulch
# solid ingot dann ist das wohl nicht die version, die du für deinen bot nutzt. versuch es mal...

Ja daran liegt es.
Jetzt bekomme ich alles installiert, aber py-cord lässt sich nicht installieren, da bekomm ich nen Error.

error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
solid ingot
#

wenn du pycord mit 3.12 nutzen möchtest, brauchst du die master branch version

silk gulch
solid ingot
#

git+https://github.com/Pycord-Development/pycord

silk gulch
#

Also so?

pip3.12 install py-cord@git+https://github.com/Pycord-Development/pycord
#

@solid ingot jetzt startet er. Aber ist der Error ein Issue von ezcord, oder bin ich jetzt dumm?

# python3.12 jinxle.py 
Traceback (most recent call last):
  File "/root/jinxle_bot/jinxle.py", line 4, in <module>
    import ezcord
  File "/usr/local/lib/python3.12/site-packages/ezcord/__init__.py", line 6, in <module>
    from . import blacklist, components, emb, logs, sql, times, utils
  File "/usr/local/lib/python3.12/site-packages/ezcord/blacklist.py", line 13, in <module>
    from .sql import DBHandler
  File "/usr/local/lib/python3.12/site-packages/ezcord/sql.py", line 6, in <module>
    import aiosqlite
  File "/usr/local/lib/python3.12/site-packages/aiosqlite/__init__.py", line 6, in <module>
    from sqlite3 import (  # pylint: disable=redefined-builtin
  File "/usr/local/lib/python3.12/sqlite3/__init__.py", line 57, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.12/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
urban glen
#

sqlite3 fehlt oder

silk gulch
# urban glen sqlite3 fehlt oder
pip3.12 install sqlite3
ERROR: Could not find a version that satisfies the requirement sqlite3 (from versions: none)
ERROR: No matching distribution found for sqlite3
urban glen
#

Python 3.12 halt

#

Gibts wohl noch nicht dafür

silk gulch
#

Naja dann werde ich 3.11 draufklatschen. Nach Erfahrungsberichten von hier soll da alles noch glatt laufen.

urban glen
#

Ja

#

Hab ich auch

silk gulch
tough thicket
#

Ich versuche aktuell den Code aus #1027677692730036294 zu probieren:

Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "c:\Users\Max\Documents\Programmieren\Discord-Bots\Aktive Bots\Vysion\cogs\user\economy.py", line 129, in daily
    current_streak = await db.get_streak(user_id)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\Max\Documents\Programmieren\Discord-Bots\Aktive Bots\Vysion\cogs\user\economy.py", line 52, in get_streak
    await self.one("SELECT streak FROM users WHERE user_id = ?", user_id) or 0
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 247, in one
    raise e
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 243, in one
    async with db.execute(sql, args) as cursor:
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\context.py", line 39, in __aenter__
    self._obj = await self._coro
                ^^^^^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 190, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 133, in _execute
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 106, in run
    result = function()
             ^^^^^^^^^^
sqlite3.OperationalError: no such table: users

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Max\Documents\Programmieren\Discord-Bots\Aktive Bots\Vysion\cogs\bot\error-handler.py", line 40, in on_application_command_error
    raise error
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1312, in _invoke
    await command.invoke(ctx)
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: OperationalError: no such table: users
ruby sparrow
#

ist mein code

#

halt littxlecord zu ezcord machen @tough thicket

tough thicket
ruby sparrow
tough thicket
#

echt korrekt

ruby sparrow
#

kein ding

#

du hatte dem verbug dem code genommen

#

.D

tough thicket
ruby sparrow
#
[ERROR] Error while executing /tictactoe 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "d:\Projects\cloud-bot\cogs\minigame\TicTacTo.py", line 57, in tictactoe
    if ctx.author.id == member.id:
                        ^^^^^^^^^
AttributeError: 'str' object has no attribute 'id'```
#
   async def tictactoe(self, ctx, member: discord.Member): 
        if ctx.author.id == member.id:
            return await ctx.respond("You cannot play against yourself!")

        if (ctx.author.id, member.id) in self.games or (member.id, ctx.author.id) in self.games:
            return await ctx.respond("There is already a game in progress between you two!")

        board = self.create_board()
        self.games[(ctx.author.id, member.id)] = {"board": board, "turn": ctx.author, "member": member}

        await ctx.respond(
            f"{member.mention}, {ctx.author.mention} has challenged you to a game of Tic-Tac-Toe!\n"
            f"{ctx.author.mention}, it's your turn.\n\n{self.display_board(board)}",
            view=TicTacToeView()(self.games[(ctx.author.id, member.id)])
        )```
last depot
#

warum ist das gelb makiert

solid ingot
#

hover mal mit der maus drüber dann siehst du es

ruby sparrow
urban glen
empty plaza
twin slate
#

Ich habe im moment ein problem, und zwar habe ich ein log system für die commands das wenn ein slash command ausgeführt wird in einen channel der command gesendet wird. das hat auch immer gut geklappt nur auf einmal funktioniert es jetzt nicht mehr. ich denke das hat etwas mit @discord.default_permissions() zu tun da damit auch ein fehler kommt schon beim starten des bots. alle fehler schicke ich noch.

Ignoring exception in on_application_command
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\User\PycharmProjects\neuprojekt\main.py", line 47, in on_application_command
    await log(ctx.guild, ctx.author, f"</{ctx.command.qualified_name}:{ctx.command.qualified_id}>")
                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 593, in qualified_id
    return self.parent.qualified_id
           ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'qualified_id'
``` Das ist der Fehler den mein log system macht
#
Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
    await self.sync_commands()
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
    registered_commands = await self.register_commands(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 588, in register_commands
    data = [cmd["command"].to_dict() for cmd in filtered_deleted]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 588, in <listcomp>
    data = [cmd["command"].to_dict() for cmd in filtered_deleted]
            ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1183, in to_dict
    ] = self.default_member_permissions.value
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'flag_value' object has no attribute 'value'
``` das ist der fehler der beim starten des bots kommt
twin slate
#

das muss etwas mit meinem code zutun haben da @discord.default_permissions() in anderen projekten von mir funktioniert

ruby sparrow
#

wir haben ohne code nicht weit

twin slate
#

allen code? weil ist recht viel

silk gulch
native inlet
twin slate
#

das ist ja das problem der 2. fehler den ich gesendet habe gibt es keine code stelle und ich vermute das wegen dem 2. fehler der erste kommt

#
@bot.event
async def on_application_command(ctx):
    await log(ctx.guild, ctx.author, f"</{ctx.command.qualified_name}:{ctx.command.qualified_id}>")
``` Das ist der teil der im error gezeigt wird
```py
async def log(guild, user, command):
    data = await get_ids()
    channel = guild.get_channel(int(data["guild"]["log"]))
    embed = discord.Embed(
        title='Command Ausgeführt',
        description=f'{user.mention} hat den command {command} ausgeführt',
        color=discord.Color.danger_red()
    )
    embed.timestamp = datetime.datetime.utcnow()
    await channel.send(embed=embed)
```das ist die log function
silk gulch
#

Naja, API-abhängig.
Sind beides Fehler, weil ein Object kein attribute besitzt.

#

ctx.command.qualified_id
^^^^^^^^^^^

twin slate
#

das habe ich schon verstanden das problem ist halt warum der fehler auftritt

#

ich habe diesen code schon lange benutzt und der hat immer funktioniert

#

nur jetzt gibt es probleme

silk gulch
#

Möglicherweiße war der Code damals deprecated. Zumindest sagt er dir ja im Error, dass das Attribut nicht existiert.
Belese dich mal in den Docs am besten.

#

Py-Cord nutzt du bestimmt?

twin slate
#

ja

silk gulch
twin slate
#

wenn es ein pycord update gab muss ich das dann extra installieren oder passiert das automatisch?

silk gulch
twin slate
#

ok weil ich hab die version nicht geupdatet und in der version in der ich das gecodet habe (die die ich immernoch benutze) hat es geklappt

#

hm anscheinend gibt es das nicht mehr oder so

silk gulch
#

Aktuiell gibt es nur qualified_name als gültiges Attribut.

twin slate
#

dann guck ich nochmal

#

danke für die hilfe

silk gulch
urban glen
#

Kannst auch meinen Code als Hilfe oder komplett nehmen

twin slate
#

ist glaube ich nicht genau was ich suche aber danke.

urban glen
twin slate
#

ich möchte den command auch mentionen also pingen das habe ich halt mit diesem </commandname:commandid> versucht

twin slate
twin slate
#

ich versuche es mal

urban glen
#

Die Id ändert sich aber nach ner weile dann geht der mention nicht mehr

twin slate
#

ich hab sowas halt in den docs nicht gefunden deswegen habe ich es anders gemacht

urban glen
misty narwhal
#
[COGS] Loaded 2 cogs
Traceback (most recent call last):
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 786, in _load_from_module_spec
    setup(self)
  File "C:\Users\vison\downloads\Infinity Bot\cogs\admin\Self-rules.py", line 54, in setup
    bot.add_cog(Profile(bot))
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 656, in add_cog
    cog = cog._inject(self)
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 567, in _inject
    raise e
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 561, in _inject
    bot.add_command(command)
AttributeError: 'Bot' object has no attribute 'add_command'. Did you mean: 'all_commands'?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\downloads\Infinity Bot\main.py", line 26, in <module>
    bot.load_cogs(
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 791, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.admin.Self-rules' raised an error: AttributeError: 'Bot' object has no attribute 'add_command'

Process finished with exit code 1
#
import discord
from discord.ext import commands


class Profile(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonSelect())

    @commands.command(description="🚫 × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="**Wenn ihr die Rollen haben wollt von Youtube/Twitch dann Klickt unten auf die Knöpfe für die Rollen die ihr haben wollt.**",
            color=discord.Color.green()
        )

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")


class ButtonSelect(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(
        label="Twitch",
        style=discord.ButtonStyle.blurple,
        custom_id="1161974614759592019"
    )
    async def button_callback1(self, button, interaction):
        role = interaction.guild.get_role(1161974614759592019)  # Hier Role ID einfügen
        await interaction.author.add_roles(role)
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)

    @discord.ui.button(
        label="YouTube",
        style=discord.ButtonStyle.red,
        custom_id="1161974614759592017"
    )
    async def button_callback2(self, button, interaction):
        role = interaction.guild.get_role(1161974614759592017)  # Hier Role ID einfügen
        await interaction.author.add_roles(role)
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)


def setup(bot):
    bot.add_cog(Profile(bot))``` Hier Auch der Code
ruby sparrow
misty narwhal
# ruby sparrow ```py @slash_command``` und nicht @commands.command
[COGS] Loaded 2 cogs
Traceback (most recent call last):
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\vison\downloads\Infinity Bot\cogs\admin\Self-rules.py", line 6, in <module>
    class Profile(commands.Cog):
  File "C:\Users\vison\downloads\Infinity Bot\cogs\admin\Self-rules.py", line 14, in Profile
    @slash_command(description="🚫 × Nur für Admins!")
NameError: name 'slash_command' is not defined

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\downloads\Infinity Bot\main.py", line 26, in <module>
    bot.load_cogs(
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Downloads\Infinity Bot\.venv\lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.admin.Self-rules' raised an error: NameError: name 'slash_command' is not defined

Process finished with exit code 1
#

habe schon

ruby sparrow
#
from discord.commands import slash_command``` @misty narwhal
misty narwhal
#

hab schon

ruby sparrow
#
from datetime import datetime
import discord
from discord.ext import commands
from discord.commands import slash_command


class Profile(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonSelect())

    @slash_command(description="🚫 × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="**Wenn ihr die Rollen haben wollt von Youtube/Twitch dann Klickt unten auf die Knöpfe für die Rollen die ihr haben wollt.**",
            color=discord.Color.green()
        )

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")


class ButtonSelect(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(
        label="Twitch",
        style=discord.ButtonStyle.blurple,
        custom_id="1161974614759592019"
    )
    async def button_callback1(self, button, interaction):
        role = interaction.guild.get_role(1161974614759592019)  # Hier Role ID einfügen
        await interaction.author.add_roles(role)
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)

    @discord.ui.button(
        label="YouTube",
        style=discord.ButtonStyle.red,
        custom_id="1161974614759592017"
    )
    async def button_callback2(self, button, interaction):
        role = interaction.guild.get_role(1161974614759592017)  # Hier Role ID einfügen
        await interaction.author.add_roles(role)
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)


def setup(bot):
    bot.add_cog(Profile(bot))```
misty narwhal
#

Hey Leute habe Einen Fehler Beim Herunter laden von Py-cord

#

(Benutze VSC)

native inlet
misty narwhal
#

3.11.6

urban glen
#

3.12 geht noch nicht

#

Du hast glaub ich 3.12

native inlet
# misty narwhal

Da steht das Python 3.12 gewählt ist.
Aber py-cord geht noch nicht mit 3.12

urban glen
#

Du benutzt 312 ja

native inlet
urban glen
#

native inlet
misty narwhal
#
[COGS] Loaded 1 cog
Traceback (most recent call last):
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\http.py", line 418, in static_login
    data = await self.request(Route("GET", "/users/@me"))
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\http.py", line 371, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 401 Unauthorized (error code: 0): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\Downloads\Famex Bot\Famex.py", line 29, in <module>
    bot.run(os.getenv("TOKEN"))
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\ezcord\bot.py", line 831, in run
    super().run(token, **kwargs)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\client.py", line 717, in run
    return future.result()
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\client.py", line 696, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\ezcord\bot.py", line 857, in start
    await super().start(token, **kwargs)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\client.py", line 659, in start
    await self.login(token)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\client.py", line 515, in login
    data = await self.http.static_login(token.strip())
#

@ruby sparrow

ruby sparrow
#

frage warum ping du

misty narwhal
#

weil ich deine hilfe brauche

ruby sparrow
ruby sparrow
#

token geht nicht

misty narwhal
# ruby sparrow wo bei
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Users\vison\Downloads\Famex Bot\cogs\admin\embed.py", line 13, in embed
    modal = Modal(bot=self.bot, title="Erstelle ein Embed"),
TypeError: Modal.__init__() got an unexpected keyword argument 'title'
misty narwhal
misty narwhal
#

????

tawdry leaf
misty narwhal
#
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 879, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1017, in get_code
  File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\vison\Downloads\Famex Bot\cogs\admin\embed.py", line 70
    await interaction.response.send_modal(f"Embed erfolgreich in {channel.mention} erstellt und gesendet!, ephemeral=True)
                                          ^
SyntaxError: unterminated string literal (detected at line 70)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\Downloads\Famex Bot\Famex.py", line 17, in <module>
    bot.load_cogs(
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Downloads\Famex Bot\.venv\lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.admin.embed' raised an error: SyntaxError: unterminated string literal (detected at line 70) (embed.py, line 70)```
misty narwhal
tawdry leaf
#

du musst da auch dein modal senden xD

#

du hast es komplett falsch gemacht

#
await interaction.response.send_message(Modal(title=f"Embed erfolgreich in {channel.mention} erstellt und gesendet!" ephemeral=True))```
misty narwhal
#

Hab schon

tawdry leaf
#

ok

ruby sparrow
# misty narwhal Hab schon
await interaction.response.send_modal(f"Embed erfolgreich in {channel.mention} erstellt und gesendet!", ephemeral=True)
vivid sky
#

@solid ingot wie ändere ich beim Help Command dieses Emoji?

solid ingot
#

in der language datei

vivid sky
#

Danke

vivid sky
#

gibt es bestimmte websiten dafür´?

solid ingot
#

kannst einfach copy paste von dc

vivid sky
#

achso

vivid sky
vivid sky
#

das bei mir mehr angezeigt wird als bei mein 2 account

solid ingot
#

wie meinst du=

vivid sky
# solid ingot wie meinst du=

Auf meinem Haupt-Account werden in der Kategorie mehr Buttons angezeigt als auf meinem Zweit-Account, wie du auf den Screenshots sehen kannst. Kann ich das ändern?

empty plaza
#

Kann mir kurz jemand erklären was raise asyncio.CancelledError genau bringt heißt das man bringt einen error hervor?

vivid sky
blissful ember
#

Ich habe ein Erorr das die setup Funktion nicht gefunden wird wie kann das sein?

empty plaza
#

zeig dein def setup

solid ingot
#

aktuell wird automatisch geprüft ob man auch berechtigung hat, die commands auszuführen

blissful ember
#

Ich hab nichtmal eine Zeile 780?

empty plaza
blissful ember
empty plaza
#

was geht denn jetzt nicht?

blissful ember
empty plaza
#

dann zeig mir dein setup

#

der error sagt du hättest kein setup

blissful ember
empty plaza
#

wäre es richtig hättest du kein error

blissful ember
#

@empty plaza

empty plaza
#

schick ganzen code

blissful ember
#
import json
import os
import random

import discord
from discord.ext import commands


class Welcome(commands.Cog):
    def __init__(self, bot):
        self.bot: commands.Bot = bot
        self.file_path = 'data.json'
        self.default_data = {
            'channel_id': 123,
            'messages': [
                'Willkommen {member}!',
                '{member.mention} ist beigetreten'
            ]
        }

        if not os.path.exists(self.file_path):
            with open(self.file_path, 'w') as f:
                json.dump(self.default_data, f, indent=4)
                self.data = self.default_data
                print(f'Created {self.file_path!r}')
        else:
            with open(self.file_path, 'r') as f:
                self.data = json.load(f)


    @commands.Cog.listener()
    async def on_member_join(self, member: discord.Member):
        channel_id = self.data['channel_id']
        channel = self.bot.get_channel(channel_id)
        messages = self.data['messages']
        message: str = random.choice(messages)
        message = message.format(member=member)
        await channel.send(message)


    @commands.command()
    async def test_join(self, ctx):
        """Führt das on_member_join event zum testen aus."""
        self.bot.dispatch('member_join', ctx.author)
lofty rock
misty narwhal
#

Hey kann mir einer Erkläre wie man ein Command erstellt wo man was auswählen kann und dann Die Nachricht Per DM bekommt

#

Ping mich einfach

blissful ember
twin slate
#

Du willst doch nur eine zufällige willkommens nachricht und eine autorole oder?

twin slate
#

Das meine ich

blissful ember
#

dann ja

twin slate
# misty narwhal Hey kann mir einer Erkläre wie man ein Command erstellt wo man was auswählen kan...

Also du brauchst natürlich erstmal einen slash command. Um dann eine auswahl zu machen kannst du wenn du eine eigene auswahl mit einer liste machst glaube ich options = [option1, option2, option3] (bin mir dabei aber nicht sicher) und wenn du eine z.B. Member auswahl machen möchtest dann würde ich Option benutzen. das funktioniert indem man erstmal Option importiert mit from discord.command import Option glaube ich. Dann um es zu benutzen macht man Optionen= Option(discord.Member, “Wähle einen Member aus”). Beim discord.Member gibst du an was ausgewählt werden soll. Man kann auch str oder int angeben um eine optionen bestimmten datentypes zu erzwingen. Beim “Wähle einen Member aus” kann man eine Beschreibung dazutun. Zu der Option. Ich hoffe damit ist das mit der Option geklärt. Dann einem User eine dm zu schreiben ist ganz einfach. Du brauchst ein User object und schreibst dem user dann mit await user.send(“Nachricht”). Das kann man natürlich dann gut mit der eben erklärten Member auswahl mit Option verbinden um halt das Member object zu bekommen. Ich hoffe damit ist alles erklärt. Ich prüfe später nochmal nach was ich hier gesagt habe da ich gerade alles aus dem Kopf mache und nicht nachgeguckt habe. Ich hoffe aber das ich alles soweit richtig gesagt habe

urban glen
#

Kann ich einer Option in einem Slashcommand, auch eine beschreibung hinzufügen? Immer wenn ich dann description="Ananas" Schreibe, denkt python das es eine Option wäre. Die Datei ist in einem Cog drinnen.

    @slash_command(description="Lass den Bot eine Nachricht senden")
    async def send_message(self , ctx, 
                       text: str,
                       channel:discord.TextChannel = None,
              ):
        if channel is None:
            channel = ctx.channel
        await channel.send(text)
        await ctx.respond("Gesendet!", ephemeral=True)
tough thicket
#

from discord.commands import slash_command, Option

urban glen
empty plaza
#

@tawdry leaf was wäre besser einen Button Handler zu machen oder für jeden button ein callback machen und den ganzen coden dann auch noch in die datei?

tawdry leaf
#

@empty plaza du hast mein Bot eing gekickt 😐
ehm zu deiner Frage auf was ist das bezogen

empty plaza
#

😐

empty plaza
#

alle buttons die du brauchst dann auch in dieser Datei zu callbacken

tawdry leaf
tawdry leaf
#

also kein handler

empty plaza
empty plaza
#

@tawdry leaf ich hab eine gute Lösung gefunden mit meinem abbrechen

outer ibex
# ruby sparrow ```py from datetime import datetime import discord from discord.ext import comma...

Fixed Version

from datetime import datetime
import discord
from discord.ext import commands
from discord.commands import slash_command
import ezcord

class Profile(ezcord.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonSelect())

    @slash_command(description="🚫 × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="**Wenn ihr die Rollen haben wollt von Youtube/Twitch dann Klickt unten auf die Knöpfe für die Rollen die ihr haben wollt.**",
            color=discord.Color.green()
        )

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")


class ButtonSelect(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(
        label="Twitch",
        style=discord.ButtonStyle.blurple,
        custom_id="Twitch"
    )
    async def button_callback1(self, button, interaction):
        role = interaction.guild.get_role(1198041569471758336)  # Hier Role ID einfügen
        user = interaction.user
        await user.add_roles(role)
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)

   


def setup(bot):
    bot.add_cog(Profile(bot))
outer ibex
outer ibex
#

Pingt mich ruhig

from datetime import datetime
import discord
from discord.ext import commands
from discord.commands import slash_command
import ezcord

class Gechlecht(ezcord.Cog,emoji=":moderator:",group="Moderation"):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonSelect())

    @slash_command(description="Setzt Die self-role/gender!")
    @commands.has_permissions(administrator=True)
    async def gender(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="Geschlecht",
            description="test",
            color=discord.Color.green()
        )
        embed.set_footer(text="Drücke auf einen der Buttons")

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Self Roles worden in {channel.mention} geschickt")


class ButtonSelect(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(
        label="Mann",
        style=discord.ButtonStyle.success,
        custom_id="Mann",
    )
    async def button_callback1(self, button, interaction):
        role = interaction.guild.get_role(1198472519133433936)  # Hier Role ID einfügen
        user = interaction.user
        await user.add_roles(role)
        await interaction.response.send_message("Du hast die <@!{role}>   Rolle bekommen", ephemeral=True)
      
        
        

   

   


def setup(bot):
    bot.add_cog(Gechlecht(bot))
twin slate
#

Hast du dir überhaupt mal python tutorials angeguckt?

ruby sparrow
twin slate
#

Denke ich auch

blissful ember
#

Ich kenn den aber trotzdem komm ich nicht drauf

vivid sky
blissful ember
vivid sky
#

und dein error???

blissful ember
#

Versteh ich selbst nd

vivid sky
graceful fiber
#

@blissful ember

#

Und in dem Screenshot heißt deine Klasse anders als du sie dann in der Setup Funktion aufrufst ^^

blissful ember
#

Achso ja weil ich immer in der Main mein Bot starte

twin slate
#

Setup muss vor die view class

graceful fiber
# blissful ember Nein?

Naja in dem Screen von oben definierst du die Klasse als Welcome und rufst sie mit Willkommen in der Setup auf?

graceful fiber
blissful ember
odd kiteBOT
#

Hier findest du das Main-Datei Template 🦕

blissful ember
#

So

graceful fiber
#

Kannst du mal testweise discord.Bot durch commands.Bot ersetzen?

#

Und das entsprechend Importen?

#

So ging's zumachen früher bei mir wenn ich prefix cmds nutzen wollte

#

Ansonsten welche lib nimmst du denn?

blissful ember
blissful ember
blissful ember
#

Seid ich die habe funktioniert Nix

vivid sky
blissful ember
#

Meine Main ```import discord
import os
from dotenv import load_dotenv

intents = discord.Intents.all()

status = discord.Status.dnd
activity = discord.Activity(type=discord.ActivityType.playing, name="Pycharm")
bot = discord.Bot(intents=intents, status=status, activity=activity, debug_guilds=[1195436272362201248

                                                                               ])

@bot.event
async def on_ready():
print(f"{bot.user} ist online")

class status(commands.Cog):

def init(self, bot):

self.bot = bot # Das muss in jeden Cog

def setup(bot):

bot.add_cog(status(bot))

if name == "main":
for f in os.listdir("cogs"):
if f.endswith(".py"):
bot.load_extension(f"cogs.{f[:-3]}")

load_dotenv()
bot.run(os.getenv("TOKEN"))```

urban glen
#

Beim Bot

blissful ember
#

Warum soll das raus?

#

ich machs mal kurz

#

Jetzt das

#

@urban glen es wird immer schlimmer mit den Erorrs

urban glen
#

Hast du mehrere cogs?

tough thicket
#

Kennt sich wer aus mit Multi Languages? Also per Slash Command eine andere Bot-Sprache einstellen

blissful ember
urban glen
#

Also änder das .py damit der nicht mehr geladen wird und guck ob’s an dem cog liegt

blissful ember
urban glen
#

Ne wieso

#

Die wird einfach ignoriert

blissful ember
#

die wird ungültig

urban glen
#

Junge wie soll die ungültig werden

blissful ember
vivid sky
urban glen
#

ZUM TESTEN

#

Das soll kein dauerhaftes Ding sein

#

Du kannst die danach wieder umbenennen

blissful ember
#

Ohne die Datei geht’s

tough thicket
# silk gulch Yes.

Kannst du mir erklären, wie man dort anfängt? Angenommen in einem Base Command von den Tutorials

silk gulch
tough thicket
ruby sparrow
#
class UserHinzufuegenModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="USER ID",
                placeholder="Schreibe die User ID hier rein",
                min_length=18,
                max_length=18,
            ),
            *args,
            **kwargs
        )

    async def callback(self, interaction):
        user_id = self.children[0].value

        try:
            user_id = int(user_id)
        except ValueError:
            ungueltige_id_embed = discord.Embed(
                title="Ungültige User ID",
                description=f"Bitte gib eine gültige numerische ID ein",
                color=discord.Color.red()
            )
            await interaction.response.send_message(embed=ungueltige_id_embed, ephemeral=True)
            return

        user = interaction.guild.get_member(user_id)

        if not user:
            user_id_embed = discord.Embed(
                title="User nicht Gefunden",
                description=f"Die angegebene User ID wurde nicht gefunden oder gibt es nicht",
                color=discord.Color.red()
            )
            await interaction.response.send_message(embed=user_id_embed, ephemeral=True)
            return

        text_channel = interaction.channel
        overwrites = text_channel.overwrites

        for target, overwrite in overwrites.items():
            if isinstance(target, discord.Member) and target == user:
                users_id_ist_im_ticket = discord.Embed(
                    title="User ist bereits im Ticket",
                    description=f"Der User {user.mention} ist bereits im Ticket.",
                    color=discord.Color.blue()
                )
                await interaction.response.send_message(embed=users_id_ist_im_ticket, ephemeral=True)
                return

        overwrites[interaction.guild.default_role] = discord.PermissionOverwrite(
            read_messages=False,
            send_messages=False,
        )

        overwrites[user] = discord.PermissionOverwrite(
            read_messages=False,
            send_messages=False,
            add_reactions=False,
            use_slash_commands=False,
            external_emojis=False,
            use_external_emojis=False,
            mention_everyone=False,
            attach_files=False,
            embed_links=False,
            manage_messages=False,
            send_tts_messages=False,
            create_instant_invite=False,
        )

        await text_channel.edit(overwrites=overwrites)

        embed = discord.Embed(
            title="✅ User erfolgreich hinzugefügt",
            description=f"{interaction.user.mention} hat den User {user.mention} dem Ticket hinzugefügt",
            color=discord.Color.green()
        )
        await interaction.response.send_message(embed=embed)``` warum keine user Hinzufuegen wurd
misty narwhal
#

hey ich hätte eine Frage an euch Kennst sich einer Mit Config.json aus Das man Die ID/ tokens und so rein packen kann oder geht das auch in .env

silk gulch
misty narwhal
#

wie z.B. die Owner ID und so ??

#

weil das ein Öffentlicher Bot werde Soll

silk gulch
#

Na die kannst du ja manuell in die .env schreiben.

#

Achso.

misty narwhal
#

das Heißt OWNER_ID = (OWNER ID)

ruby sparrow
misty narwhal
#

So oder was ??

silk gulch
#

Wieso nutzt keine Datenbank dafür?

silk gulch
misty narwhal
#

wenn meinst du ??

silk gulch
misty narwhal
#

okay kenne mich nicht so gut Mit datenbanken aus

#

Aber warum soll man das in einer datenbank machen

silk gulch
misty narwhal
silk gulch
ruby sparrow
silk gulch
#

Ich glaube mithilfe von jsons auch nicht wirklich easy.

misty narwhal
#

ok

#

okay dann frage ich mal Timo

silk gulch
solid ingot
# misty narwhal okay dann frage ich mal Timo

Wo du die Owner-ID speicherst kannst du selbst entscheiden. IDs sind nicht geheim und können im Code, in einer JSON-Datei oder einer .env Datei gespeichert werden.
Private Dinge wie Tokens oder Keys sollten immer in einer .env Datei sein.

ruby sparrow
#

weiss einer warum kommt das die ganze zeit

misty narwhal
#
import discord
from discord.ext import commands
from discord.commands import slash_command


class Info(ezcord.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command(name="bot-info", description="Get information about the bot")
    async def bot_info(self, ctx):
        embed = discord.Embed(title="Bot Information", color=0x7289DA)
        embed.add_field(name="Bot Name", value=self.bot.user.name, inline=False)
        embed.add_field(name="Bot ID", value=self.bot.user.id, inline=False)
        embed.add_field(name="Guilds", value=len(self.bot.guilds), inline=False)
        embed.add_field(name="Commands", value=len(self.bot.commands), inline=False)
        embed.add_field(name="Dev Mein Name", inline=False)

        await ctx.send(embed=embed)


def setup(bot):
    bot.add_cog(Info(bot))
#
[COGS] Loaded 1 cog
Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\vison\Desktop\Amo Bot\cogs\botinfo\Botinfo.py", line 7, in <module>
    class Info(ezcord.Cog):
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\ezcord\bot.py", line 890, in __new__
    return super().__new__(cls, *args, **kwargs)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 187, in __new__
    raise TypeError(no_bot_cog.format(base, elem))
TypeError: Commands or listeners must not start with cog_ or bot_ (in method Info.bot_info)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amo Bot\main.py", line 30, in <module>
    bot.load_cogs(
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.botinfo.Botinfo' raised an error: TypeError: Commands or listeners must not start with cog_ or bot_ (in method Info.bot_info)

Process finished with exit code 1```
tawdry leaf
tawdry leaf
tawdry leaf
misty narwhal
tawdry leaf
# misty narwhal Wie meinst du ??
import ezcord
import discord
from discord.ext import commands
from discord.commands import slash_command


class Info(ezcord.Cog):
    #das kannst du weglassen weil bei ezcord des du nicht brauchst

    @slash_command(name="bot-info", description="Get information about the bot")
    async def bot_info(self, ctx):
        embed = discord.Embed(title="Bot Information", color=0x7289DA)
        embed.add_field(name="Bot Name", value=self.bot.user.name, inline=False)
        embed.add_field(name="Bot ID", value=self.bot.user.id, inline=False)
        embed.add_field(name="Guilds", value=len(self.bot.guilds), inline=False)
        embed.add_field(name="Commands", value=len(self.bot.commands), inline=False)
        embed.add_field(name="Dev Mein Name",value="", inline=False) # wenn du add_field benutzt ist eine value pflicht wenn die leer sein soll mach es einfach so wie hier

        await ctx.respond(embed=embed)


def setup(bot):
    bot.add_cog(Info(bot))```
tawdry leaf
#

ohne botinfo ordner

misty narwhal
#
[COGS] Loaded 1 cog
Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\vison\Desktop\Amo Bot\cogs\Botinfo.py", line 7, in <module>
    class Info(ezcord.Cog):
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\ezcord\bot.py", line 890, in __new__
    return super().__new__(cls, *args, **kwargs)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 187, in __new__
    raise TypeError(no_bot_cog.format(base, elem))
TypeError: Commands or listeners must not start with cog_ or bot_ (in method Info.bot_info)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amo Bot\main.py", line 30, in <module>
    bot.load_cogs(
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Desktop\Amo Bot\.venv\lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.Botinfo' raised an error: TypeError: Commands or listeners must not start with cog_ or bot_ (in method Info.bot_info)

Process finished with exit code 1
misty narwhal
ruby sparrow
#

code ?

tawdry leaf
ruby sparrow
tawdry leaf
#

ja des geht so oder so nd

ruby sparrow
#

nein

#

es muss ohne -

misty narwhal
#

geht gar nichts mehr

tawdry leaf
ruby sparrow
#

ya

tawdry leaf
#

aber als name geht es es geht nur bei async def nd

ruby sparrow
tawdry leaf
ruby sparrow
#
import ezcord
import discord
from discord.ext import commands
from discord.commands import slash_command

class Info(ezcord.Cog):

    @slash_command(name="botinfo", description="Get information about the bot")
    async def botinfo(self, ctx):
        embed = discord.Embed(title="Bot Information", color=0x7289DA)
        embed.add_field(name="Bot Name", value=self.bot.user.name, inline=False)
        embed.add_field(name="Bot ID", value=self.bot.user.id, inline=False)
        embed.add_field(name="Guilds", value=len(self.bot.guilds), inline=False)
        embed.add_field(name="Commands", value=len(self.bot.commands), inline=False)
        embed.add_field(name="Dev Mein Name", value="", inline=False)

        await ctx.respond(embed=embed)

def setup(bot):
    bot.add_cog(Info(bot))``` @misty narwhal  test mal zu
misty narwhal
#

Geht schon

#

Habe was anderes Gemacht

ruby sparrow
#

du darf bei async def kein _ oder -

tawdry leaf
#

_ geht

#

bei async def

#

nur - nicht

ruby sparrow
#

guck mal in help kein

#

guck ohne _ gehts es

tawdry leaf
#

was redest du xD

#

Also bei mir geht bei name mit - und bei async def mit _ verstehe nicht was du da meinst

misty narwhal
#
  • geht
empty plaza
#

er ist auch stolzer better discord oder vencord user

tawdry leaf
misty narwhal
ruby sparrow
#

dafür kann man geban werden

ruby sparrow
#

ich omg

empty plaza
#

buttonhandler war das dümmste was man machen könnte

ruby sparrow
#

auch

empty plaza
ruby sparrow
#

ich hab ein problem omg

empty plaza
#

omg

ruby sparrow
#

ja nh

empty plaza
#

voll krass

#

erzähl ma

ruby sparrow
urban glen
#

Kann ich auch einer Option, eine beschreibung hinzufügen? Die Datei ist in einem Cog drinnen und hier der Code:

 @slash_command(description="Lass den Bot eine Nachricht senden")
    @commands.has_role(1191247739015671838)
    async def send_message(self, ctx, 
                      text: str,
                      channel: discord.TextChannel = None):
            if channel is None:
                channel = ctx.channel
            await channel.send(text)
            await ctx.respond("Sent!", ephemeral=True)
ruby sparrow
#

du kannst immer natürlich eine Option einfügen

urban glen
#

ich meine eine Beschreibung, zu der Option

#

wie z.b hier:

#

bei mir steht halt immer "No description provided"

ruby sparrow
#

ja?

#

das kannst

tough thicket
#

so in der art dürfte es klappen

urban glen
#

okay moment

urban glen
tough thicket
outer ibex
outer ibex
vivid sky
#

dann google

twilit anvil
#
role = self.bot.get_role(ROLLEN_ID)
if role in interaction.user.roles:
await interaction.user.remove_roles(role)
else:
await interaction.user.add_roles(role)```
#

@outer ibex

#

Bin gerade nur am Handy, musst wegen der Einrückung gucken

tawdry leaf
#
role = self.bot.get_role(ROLLEN_ID)
if role in interaction.user.roles:
  await interaction.user.remove_roles(role)
else:
  await interaction.user.add_roles(role)```
empty plaza
#

Ich habe eine frage wieso bekomme ich diesen error?

    await item.callback(interaction)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: setButtonColor.callback() missing 1 required positional argument: 'interaction'

dies ist mein code:

class setButtonColor(discord.ui.Select):
    def __init__(self):
        options = [
            discord.SelectOption(label="Primary (Blau)", value="primary", emoji="🔵"),
            discord.SelectOption(label="Secondary (Grau)", value="secondary", emoji="![grau](https://cdn.discordapp.com/emojis/1196564416083271691.webp?size=128 "grau")"),
            discord.SelectOption(label="Success (Grün)", value="success", emoji="![grn](https://cdn.discordapp.com/emojis/1196564421602967713.webp?size=128 "grn")"),
            discord.SelectOption(label="Danger (Rot)", value="danger", emoji="![rot](https://cdn.discordapp.com/emojis/1196564419463893052.webp?size=128 "rot")"),

        ]
        super().__init__(placeholder="Farbe auswählen", custom_id="set_button_color", min_values=1, max_values=1, options=options, row=1,)

    async def callback(self, select: discord.ui.Select, interaction: discord.Interaction):
        await interaction.response.send_message(content=f"{select.values[0]}")

tawdry leaf
#

brauchst du nicht auch eine view dazu 🤔

empty plaza
#

Bro du denkst nicht das ist mein voller code oder?

#

NAH HAHAHA ja die hab ich aber ich mach da ja mein callback

#

Luckyy

tawdry leaf
empty plaza
#

sicher

tawdry leaf
#

ja habe es getestet les doch 😠

empty plaza
#

nein nein ich glaub dir nicht

#

😠

tawdry leaf
#

der benutzt des self als select etc.

empty plaza
#

Dankeschön es geht

tawdry leaf
#

weil du kein self benutzt unten

empty plaza
#

und was wenn es ich mal benutze würde es dann so gehen?

tawdry leaf
#

ja kannst es doch testen peeposhy

empty plaza
outer ibex
tawdry leaf
outer ibex
#

danke geht jetzt

slow cosmos
#

Wie kann man in pycord eine slash command „mention“

twilit anvil
#

Wenn du kein EzCord nutzt

#

Mit ezcord geht das einfacher, weiß ich aber grad nicht

slow cosmos
#

Und mit ezcord (das nutze ich)

#

okay danke ich such mal bei ezcord danach

twilit anvil
#

Ja

slow cosmos
#

Ich denke mal das ist das

blissful ember
urban glen
#

Zeig mal den cog

#

Den du raus genommen hast

twilit anvil
blissful ember
# urban glen Den du raus genommen hast
import json
import os
import random

import discord
from discord.ext import commands


class Welcome(commands.Cog):
    def __init__(self, bot):
        self.bot: commands.Bot = bot
        self.file_path = 'data.json'
        self.default_data = {
            'channel_id': 123,
            'messages': [
                'Willkommen {member}!',
                '{member.mention} ist beigetreten'
            ]
        }

        if not os.path.exists(self.file_path):
            with open(self.file_path, 'w') as f:
                json.dump(self.default_data, f, indent=4)
                self.data = self.default_data
                print(f'Created {self.file_path!r}')
        else:
            with open(self.file_path, 'r') as f:
                self.data = json.load(f)


    @commands.Cog.listener()
    async def on_member_join(self, member: discord.Member):
        channel_id = self.data['channel_id']
        channel = self.bot.get_channel(channel_id)
        messages = self.data['messages']
        message: str = random.choice(messages)
        message = message.format(member=member)
        await channel.send(message)


    @commands.command()
    async def test_join(self, ctx):
        """Führt das on_member_join event zum testen aus."""
        self.bot.dispatch('member_join', ctx.author)

Hab die ID natürlich geändert

tough thicket
#
[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Max\Documents\Programmieren\Discord-Bots\Aktive Bots\Vysion\cogs\user\economy.py", line 540, in on_ready
    view.add_item(Button(self.bot))
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 287, in add_item
    raise TypeError(f"expected Item not {item.__class__!r}")
TypeError: expected Item not <class 'cogs.user.economy.Button'>
urban glen
tough thicket
#

habe eine class noch namens SternDB und stern als ezcord.Cog

blissful ember
hard pivot
#

Hallo weiß wer ob es modals mit einen dropdown gibt also nicht das es geschickt wird per dropdown sondern das eines innerhalb des modals enthalten ist?

tough thicket
# tough thicket welches beides? ```py class Button(discord.ui.View): def __init__(self, bot...
[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Max\Documents\Programmieren\Discord-Bots\Aktive Bots\Vysion\cogs\user\economy.py", line 540, in on_ready
    view.add_item(CurrentStreak(self.bot))
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 287, in add_item
    raise TypeError(f"expected Item not {item.__class__!r}")
TypeError: expected Item not <class 'cogs.user.economy.CurrentStreak'>

selbst wenn ich die button class umbenenne

urban glen
#

oh gott nene

#

habs grad gesehen

#

du hast die Klasse zwar button genannt aber es ist kein Button sondern eine View

#

Das ist eine ziemlich schlechte idee von der Benennung her

#

du kannst also einfach schreiben : self.bot.add_view(Button(self.bot))

#

und das würde reichen als view, mach doch aber wenisgtens ButtonView oder was auch immer die View macht

#

dann passiert sowas nicht :=)

tough thicket
#

habe es jetzt einfach CurrentStreakView

urban glen
#

Jo

tawdry leaf
#

Moin
ich bekomme vom ezcord bug handler immer diesen error bevor alles geht(ist auch kein error in der console)
Code:
```py
class Jointocreate(ezcord.Cog, emoji=":voicechannel~1:"):

@commands.Cog.listener()
async def on_voice_state_update(self, member: discord.Member, before, after):
    cursor.execute(f"SELECT category FROM setup WHERE guild = {member.guild.id}")
    result = cursor.fetchone()  # Auf das Ergebnis warten

    cursor.execute(f"SELECT vchannel FROM setup WHERE guild = {member.guild.id}")
    resul1 = cursor.fetchone()  # Auch hier auf das Ergebnis warten

    if before.channel is None:
        if after.channel.id == int(resul1[0]):
            category = discord.utils.get(member.guild.categories, id=int(result[0]))
            channel = await category.create_voice_channel(name=member.name)
            await member.move_to(channel)
            await member.voice.channel.set_permissions(member, manage_channels=True, manage_permissions=True)

            def check(x, y, z):
                return len(channel.members) == 0

            await self.bot.wait_for('voice_state_update', check=check)
            await channel.delete(reason="TempVoice ist leer")```
solid ingot
#

wo ist cursor definiert?

tawdry leaf
#
conn = sqlite3.connect('db/jtc.db')   
cursor = conn.cursor()```
#

da alles geht wundere ich mich 😅

solid ingot
#

ist das auch im db ordner?

tawdry leaf
#

ja sonst würde es doch nd gehen 🤔

solid ingot
#

sicher dass der error bei diesem bot auftritt?

tawdry leaf
#

🤔

#

das problem könnte behoben sein

slow cosmos
#

Ich habe in Pycharm dieses Plugin das anzeigt das ich in pycharm bin aber es wird nicht die datei angezeigt die ich bearbeite

#

Obwohl ich so eingestellt habe

solid ingot
#

schau mal nach ob du das vielleicht für das aktuelle projekt ausgeschaletet hast, das geht bei diesem pfeil

slow cosmos
#

jetzt gehts danke

slow cosmos
#

So also ich habe einen Slash Command der eine Nachricht und ein Select Menu sendet

Wenn ich jetzt was aus dem Selevt Menu auswähle, soll die ursprüngliche Nachricht zur neuen Nachrich tbearbeitet werden, das Select menu soll dabei beibehlaten werden

#

wie kann ich das machen

solid ingot
#

wenn du nur das embed bearbeitest, sollte das select menü automatisch da bleiben

slow cosmos
#

aber wie genau kann ich das embed bearbeiten also die ursprüngliche Nachricht ändern?

solid ingot
#

interaction.response.edit_message(embed=embed)

slow cosmos
#

Poah das ist cool

#

danköö

solid ingot
#

gernööö

blissful ember
#

Ich verzweifel ich hab schon alles geupdatet und getan aber bringt nix...

#

Code ```import json
import os
import random

import discord
from discord.ext import commands

class willkommen(commands.Cog):
def init(self, bot):
self.bot: commands.Bot = bot
self.file_path = 'data.json'
self.default_data = {
'channel_id': 1445972004765810,
'messages': [
'Willkommen {member}!',
'{member.mention} ist beigetreten'
]
}

    if not os.path.exists(self.file_path):
        with open(self.file_path, 'w') as f:
            json.dump(self.default_data, f, indent=4)
            self.data = self.default_data
            print(f'Created {self.file_path!r}')
    else:
        with open(self.file_path, 'r') as f:
            self.data = json.load(f)


@commands.Cog.listener()
async def on_member_join(self, member: discord.Member):
    channel_id = self.data['channel_id']
    channel = self.bot.get_channel(channel_id)
    messages = self.data['messages']
    message: str = random.choice(messages)
    message = message.format(member=member)
    await channel.send(message)


@commands.command()
async def test_join(self, ctx):
    """Führt das on_member_join event zum testen aus."""
    self.bot.dispatch('member_join', ctx.author)

def setup(bot):
bot.add_cog(willkommen(bot))```

solid ingot
#

hast du dir schon #🔍・pycord-help angeschaut?

blissful ember
#

ja warum?

urban glen
#

Und schau ob’s daran liegt

blissful ember
#

das ganze @ ?

solid ingot
#

wenn du discord.Bot in deiner main datei nutzt, kannst du nur slash commands nutzen. du hast ja in deinem code einen prefix command mit @commands.command()

slow cosmos
#

wie kann man in pycord custom status machen also das man nicht nur play, listen etc. hat

blissful ember
urban glen
urban glen
solid ingot
slow cosmos
urban glen
tawdry leaf
urban glen
#

Kannst beim GitHub von pycord gucken da steht in der Readme

odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
solid ingot
#

@slow cosmos

urban glen
tawdry leaf
slow cosmos
tawdry leaf
#

code?

slow cosmos
#

Das mein bisheriger Code:

# Define the bot
bot = ezcord.Bot(intents=discord.Intents.all(), language="en")


@bot.event
async def on_ready():
    print(f"We have logged in as {bot.user}")
    # Start Tasks
    update_status.start()
    change_nickname.start()

# .....

# Automatically change the Status of the Bot to the current Server Count
@tasks.loop(minutes=10)
async def update_status():
    guild_count = len(bot.guilds)
    await bot.change_presence(activity=discord.Game(name=f"on {guild_count} Servers!"))
tawdry leaf
#

kannst einf ezcord status changer usen 🙂

#
await bot.change_presence(activity=discord.CustomActivity(name=f"on {guild_count} Servers!"))```
slow cosmos
solid ingot
#

hast du den pycord master branch?

slow cosmos
#

uh wie genau jz?

solid ingot
#

pip install git+https://github.com/Pycord-Development/pycord

tawdry leaf
#

du musst davor aber py-cord deinstallieren

solid ingot
tawdry leaf
#

doch 🙂

solid ingot
#

n00b

#

die version brauchst du jedenfalls für custom status

tawdry leaf
#

ist bei mir immer so 😄

#

dann kommen immer ezcord issues 🙂

slow cosmos
#

hm ne ka wie ich das mache in pycharm terminal da kommt imme rpip nicht gefunden

solid ingot
#

du kannst es auch über pycharm machen

slow cosmos
# solid ingot du kannst es auch über pycharm machen
Collecting git+https://github.com/Pycord-Development/pycord
  Cloning https://github.com/Pycord-Development/pycord to c:\users\damia\appdata\local\temp\pip-req-build-v0jr_1nh

  ERROR: Error [WinError 2] Das System kann die angegebene Datei nicht finden while executing command git version
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?

[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: C:\Users\damia\AppData\Local\Programs\Python\Python311\python.exe -m pip install --upgrade pip

vivid sky
#

git installieren

slow cosmos
#

hab ich

#

Ah hab fehler gefunden jz kommt aber:

ERROR: Invalid requirement: "git+Collecting git+https://github.com/Pycord-Development/pycord   Cloning https://github.com/Pycord-Development/pycord to c:\\users\\damia\\appdata\\local\\temp\\pip-req-build-v0jr_1nh    ERROR: Error [WinError 2] Das System kann die angegebene Datei nicht finden while executing command git version ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?  [notice] A new release of pip is available: 23.2.1 -> 23.3.2 [notice] To update, run: C:\\Users\\damia\\AppData\\Local\\Programs\\Python\\Python311\\python.exe -m pip install --upgrade pip"
Hint: It looks like a path. File 'git+Collecting git+https://github.com/Pycord-Development/pycord   Cloning https://github.com/Pycord-Development/pycord to c:\users\damia\appdata\local\temp\pip-req-build-v0jr_1nh    ERROR: Error [WinError 2] Das System kann die angegebene Datei nicht finden while executing command git version ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?  [notice] A new release of pip is available: 23.2.1 -> 23.3.2 [notice] To update, run: C:\Users\damia\AppData\Local\Programs\Python\Python311\python.exe -m pip install --upgrade pip' does not exist.

[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: C:\Users\damia\AppData\Local\Programs\Python\Python311\python.exe -m pip install --upgrade pip

#

ah jz gehts

#

musste pycharm nochmal neu starten

blissful ember
#

Ich dachte es klappt... wenn jmd joint kommt das @urban glen

tawdry leaf
#

hm sieht aus als findet er den channel wohl nd

blissful ember
#

muss ich statt send die Id eintragen?

vivid sky
tawdry leaf
urban glen
#

async def on_member_join(self, member: discord.Member):
channel_id = self.data['channel_id']
channel = self.bot.get_channel(channel_id)
messages = self.data['messages']
message: str = random.choice(messages)
message = message.format(member=member)
await channel.send(message)

#

so müsste aber eig gehen, solange data['channel_id'] existiert

blissful ember
#

danke 😄

blissful ember
#

@urban glen

#

habs probiert geht nd

lofty rock
#

befolg doch bitte die regeln

urban glen
#

.-.

urban glen
lofty rock
blissful ember
#

ziblic darf ich dich pingen ? (muss nach Erlaubnis fragen)

blissful ember
urban glen
tawdry leaf
#

vermutlich nix 😄

blissful ember
#

Stimmt 😄

#

@urban glen

tawdry leaf
#

was ist eig deine mission

#

du hast immernoch nd dein code geschickt der nd geht

tawdry leaf
#

wo

tawdry leaf
#

und was soll der tun

blissful ember
#

funktionieren 😄

tawdry leaf
#

das heißt

blissful ember
#

ka

tawdry leaf
#

ja dann funktioniert er doch

blissful ember
#

ne

#

Der fehler kommt immer wieder

tawdry leaf
#

dann ist wohl in der json oder Liste nix gespeichert

blissful ember
#

ich habe kein json datei...

#

Hier ist eigentlich die Id drin class willkommen(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot self.file_path = 'data.json' self.default_data = { 'channel_id': 1445972004765810, 'messages': [ 'Willkommen {member}!', '{member.mention} ist beigetreten' ] }

tawdry leaf
#
async def on_member_join(self, member: discord.Member):
        channel_id = self.default_data['channel_id']
        channel = self.bot.get_channel(channel_id)
        messages = self.default_data['messages']
        message: str = random.choice(messages)
        message = message.format(member=member)
        await channel.send(message)
tawdry leaf
#

teste es

blissful ember
#

Jetzt Ignoring exception in on_member_join Traceback (most recent call last): File "C:\Users\King Silvio\PycharmProjects\pythonProject\.venv\lib\site-packages\discord\client.py", line 378, in _run_event await coro(*args, **kwargs) File "C:\Users\King Silvio\PycharmProjects\pythonProject\cogs\willkommen.py", line 38, in on_member_join await channel.send(message) AttributeError: 'NoneType' object has no attribute 'send'

#

Als Erorr

blissful ember
#

sry für ping

urban glen
blissful ember
urban glen
#

Wo du den im Code hingeschrieben hast

tawdry leaf
#

das er kein channel findet

blissful ember
#

komisch

blissful ember
tawdry leaf
#

du hast keine json datei also was erwartest du

blissful ember
#

oke was muss ich jz machen?

burnt prairieBOT
#

Du wirst in 1 Minute an Test Reminder erinnert (<t:1705871226:f>).

blissful ember
urban glen
blissful ember
strange juniper
#

Hat eigentlich mal jemand getestet was raus kommt, wenn man einen hasattr check laufen lässt, das attribut zwar vorhanden ist, aber einen der Werte:

False 
0 
[] 
""
# o.ä

hat?

solid ingot
#

hasattr gibt nur true zurück, wenn das Attribut vorhanden ist, unabhängig vom Attribut wert

strange juniper
#

Sehr geil, spart mir das basteln. Danke! 👍

blissful ember
ruby sparrow
#

@blissful ember send mal dein code

blissful ember
urban glen
# blissful ember Hast du jz Zeit bzw können wir es schriftlich machen?
async def on_member_join(self, member: discord.Member):
    print(f'Daten: {self.data}')
    channel_id = self.data['channel_id']
    channel = self.bot.get_channel(channel_id)
    messages = self.data['messages']
    message: str = random.choice(messages)
    message = message.format(member=member)
    await channel.send(message)
#

mach mal so, mit dem print meine ich

blissful ember
#

darunter?

#

print(“Test“)

urban glen
#

um zu schauen ob da die richtigen daten drin sind

blissful ember
urban glen
#

von mir aus

blissful ember
ruby sparrow
#

code ?

urban glen
#

Logisch dass es den nicht gibt

#

Musst du in der json eintragen

ruby sparrow
blissful ember
urban glen
#

Da öffnest du den file_path data.json

#

Also hast du eine json. Wenn du selber nicht weißt was du da programmiert hast dann können wir dir auch nicht mehr helfen

silk gulch
urban glen