#Allgemeine Hilfe
1 messages · Page 18 of 1
du kannst vlt nicht mehrere Datenbanken haben, aber du kannst mehrere Tabellen in einer Datei haben, falls du das meinst
Das hat mich noch mehr verwirrt haha, wie meinst du?
diese Dinger die du mit CREATE TABLE erstellst
davon kannst du so viele in einer Datei machen wie du magst
Ah, das würde mir bei ner Item tabelle ja auch helfen
@solid ingot kann ich das einfach in den String mit rein bauen?
@commands.Cog.listener()
async def on_ready(self):
async with aiosqlite.connect("money.db") as db:
await db.execute(
"""
CREATE TABLE IF NOT EXISTS money(
user_id INTEGER PRIMARY KEY,
money_count INTEGER DEFAULT 100
)
"""
)```
du kannst ein zweites CREATE TABLE hinzufügen
Genau meint ich so
AttributeError: 'Client' object has no attribute 'load_extemsion' was kann man dagegen tun hatte sowas noch nicht
hatte ich auch habs irgendwie hin bekommen danke
wenn ich daten aus einer .db datei auslesen möchte für bestimmte commands.
Ist es da sinnvoll eine extra .py datei zu erstellen um mit einem on ready event die jeweiligen datensätze direkt zu laden, um sie später nur zu importieren in dem cog wo man sie braucht ?
Statt jedes mal einzelnd zu connecten.
Bin da grad in der findungsphase 😄
wenn sich die daten nicht ändern, kannst du sie direkt am anfang auslesen. es spricht aber auch nix dagegen, die daten jedes mal neu auszulesen, das ist natürlich besonders sinnvoll wenn sie die daten zur laufzeit ändern
ich würde den kompletten bot gerne mit einer datenbank versehen das er auf jedem server individuell anpassbar ist.
Ändern würde sich ja gelegendlich schon was.
Weiss nur nicht genau ob das so richtig ist wie ich es bissher mache.
Kann ich mal reinschicken das du mal n auge auf son command wirfst ? 😄
ja
@commands.Cog.listener()
async def on_ready(self):
async with aiosqlite.connect(self.DB) as db:
await db.execute(
"""
CREATE TABLE IF NOT EXISTS servers (id INTEGER PRIMARY KEY, name TEXT, server_id TEXT, cat_id TEXT)
"""
)
for guild in self.bot.guilds:
async with db.execute("SELECT id FROM servers WHERE server_id=?", (str(guild.id),)) as cursor:
result = await cursor.fetchone()
if result:
print(f"Der Server {guild.name} ist bereits in der Datenbank")
else:
async with db.execute("INSERT INTO servers (server_id, name) VALUES (?, ?)",
(str(guild.id), guild.name)):
await db.commit()
print(f"Der Server {guild.name} wurde der Datenbank hinzugefügt")
Den um die server einzupflegen.
@slash_command(description="Setze eine Kategorie für Tickts !")
async def setup_ticketch(self, ctx):
await ctx.response.send_message("bitte gebe deine ID für eine kategorie ein")
def check(m):
return m.author.id == ctx.author.id
msg = await self.bot.wait_for("message", check=check)
await ctx.send('Eingabe erhalten: ' + f"<#{msg.content}>")
async with aiosqlite.connect("test.db") as db:
await db.execute("UPDATE servers SET cat_id=? WHERE server_id=?", (msg.content, ctx.guild.id))
await db.commit()
await ctx.respond("Kategorie wurde geändert/gesetzt !")```
Und den um eine bestimmte Kategorie einzupflegen.
hm, es wäre wahrscheinlich besser die server nicht im on_ready event in die DB einzufügen, sondern im slash command. der bot kann ja auch auf einen neuen server joinen, nachdem er gestartet wurde. in diesem fall würde der bot nicht automatisch hinzugefügt werden
weil du die klammer nicht geschlossen hast
Du hast die klammer vergessen
Mano Timo
sori
Btw. Gucke dir das nächste mal den error an
Kein Problem
geht das denn nicht auch automatisch irgendwie, statt mit nem slash command ?
Oder sollte ich dann sone art setup command machen?
das kannst du direkt in dem command machen wo du auch dein UPDATE befehl hast
guter call deinerseits 😄
der findet die Errors besser .___.
Error steht auch drin
Was ist denn mit der guild_id
les doch den Error einfach aus
da steht alles doch drinnen....
googlen...
look at my name
Ignoring exception in view <View timeout=None children=2> for item <TicketSchliessen style=<ButtonStyle.danger: 4> url=None disabled=False label='Closen!' emoji=None row=None>:
Traceback (most recent call last):
File "C:\Users\49152\Desktop\Coding\Python\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "C:\Users\49152\Desktop\Coding\Void System\cog\ticket.py", line 250, in callback
view.add_item(Test())
File "C:\Users\49152\Desktop\Coding\Python\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 'cog.ticket.Test'>
class Test(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label='Test', style=discord.ButtonStyle.red)
async def callback(self, button, interaction):
for button in self.button:
button.disabled = True
await interaction.response.edit_message(view=self)
await interaction.followup.send('Test', ephemeral=True)```
@solid ingot das meinte ich .__.
ich habe immer noch das leichte gefühl dass es an dir liegt und nicht an pycord
das ist sogar py-cord example 😂
du kannst keinen view zu einem view hinzufügen
schick mal das example
ich glaube nicht dass da view.add_item(Test()) vorkommt
lol
habs jz view=Test() so gemacht
trz gleicher error
und wie sende ich es dann
ShareX
code?
Nutzt du normale prefix commands oder slash commands?
Wofür dann das response.send_message
Es ist keine interaction
In dem fall musst du alles wo interaction steht ersetzten zu -> ctx und dann ctx.send
@mental hamlet
Joa der ping is blöd, aber das mach ich grad nur wegen dem Namen
Weil du ja immer noch nen response drinne hast ._.
.
Oke freut uns ._.
Was sollen wir mit der Info jetzt?
Stell deine Frage doch einfach
How to install Python on Mac OS and How to write and execute or run your first Python program on Mac OS will be covered in this video.
We start by installing Python 3 and then go through 3 ways to write and execute Python program on Mac.
3 ways to write and execute Python program covered in this video are:
1. Using IDLE, which is an IDE that...
Maybe hilft das
Hab kein macos
Also ich meine ob ich es so machen soll wie Coding Keks es beim 1 Video gemacht hat
Ich weiß nicht was sein erstes video ist
Also idk
NEIN
Ok also soll ich einfach das Installieren wie bei Coding Keks
DAS IST KEIN SLASH COMMAND
Ihr treibt den armen joker in die Verzweiflung
xD
ja
ich dachte auf Bl4cklist währe das schlimm aber hier manchmal ._.
Hahaha
ctx.send.send_message @urban glen bisschen mitdenken würde allen sehr helfen
@urban glen Geht es auch wenn ich Pyhton Version 10 mir hole?
hol dir am besten nitro 
Why?
Bei mir geht pip install py-cord nicht
Obwohl ich Pyhton version 10.0 Installiert habe
*Python
Geh in Pycharm zu den Einstellungen und zu Python Interpreter dann gehst du auf das + und suchst nach py-cord du lädst es runter und schon hast du es.
Äh ich habe Visual Studio Code
Des weiß ich ja
Bloß ich habe halt Visual Studio Code
Weißt du es vllt trotzdem?
@quiet socket
path nicht angeklickt?
Pfad 🙂
ansonsten hätte er Datei gesagt...
hm
Achso sry
Sag halt direkt das es der Weg zur Datei ist
ist 😦
😄
Da verstehen wir uns mehr
Ich habe den verify code geleakt siehe #1027677692730036294 
?
ich bräuchte wo hilfe
und zwar mein Code hat keine Fehler aber da stehen Zeilen wie 1206 obwohl mein Code 176 Zeilen Code hat
Weiß jemand wie ich es fixen kann?
hier
nein?
les den Error nochmal
man siehst direkt...
indent falsch
einrückung
ja sieht man doch
das das falsch ist bisschen mitdenken würde allen sehr helfen
bisschen mitdenken würde allen sehr helfen
Ich glaube da er kann sich nicht mit dem Host verbinden
Hoster
Bot maybe groß
@wise stone
Nein ._.
Weiß er Bot nirgends definiert hat
def __init__(self, bot):
Ja und weiter..
"Lern die Basics"
this
Hat Timo beim Button Video gesagt nh?
Warum has du da jetz Init stehen.
@urban glen
nene hat er nd ist nur die methode
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
ist egal
Gucke dir es Bitte bitte an
ist ja nur ne variable
Trzdm ist es schlechter,bot ist eif. Einfacher
nein ist es nd
Doch
das ist komplett egal
Für mein Kompf schon
DAS IST EGAL das ist ne scheiß Variable
you see
xD
es macht null Unterschied
sieht sehr interresant aus dein code
self.bot = client xD
self.client gibts nd
ig
aber dann client....
und nicht self.client
class on_ready(commands.Cog):
def __init__(self, client):
self.bot = client
@commands.Cog.listener(
'on_ready'
)
async def listener(
self
):
self.bot.add_view(
TicketViewCreateTicket()
)
self.bot.add_view(
TicketViewButtonEmMSG()
)
self.bot.add_view(
CloseDropdown())
def setup(client):
client.add_cog(on_ready(client))```
hmm
ich kann kein pycord 🙂
und dann noch cogs
in den () muss self.bot stehen
ern basic
du übergibts den Parameter bot in der class aber machst es nicht
reicht langsam auch mal!
steht ja auch nicht grundlos in #🔰・old-help-rules
weiß wer wie man ValueError: mutable default <class 'discord.utils._MissingSentinel'> for field name is not allowed: use default_factory weg bekommt
habe ich schonmal gefragt, aber welche grundlagen braucht man für bot coden?
ein gehirn und ein pc mit tsatatur
die deiner Sprache
also alle basics die auf w3schools sind
wirklich?
manche schaffen es auch ihne gehirn
pyhton lerne ich
ja da brauchst du die basicsd
Aber was sind die basics
die auf w3schools stehen
#🔍・pycord-help
Erstmal musst du die Grundlagen der jeweiligen Sprache beherrschen
Alter
Ich Frage doch welche Grundlagen ich in Python brauche
kennt sich jemand mit minecraft servern aus?
Will n restart.sh skript haben mit title benachrichtigung aber find nix gescheites 😄
titel benachrichtigung?
du mc titel musst du in java machen
- Schau auf meinen Namen
- mach das
sry aber deine fragen sind extrem basic
aso und code & error
CODE
ja
geht auch netter xD
normalerweise schon aber bei dem muss ich des so sagen
der code der den fehler veruhrsacht
weiß wer wie man
ValueError: mutable default <class 'discord.utils._MissingSentinel'> for field name is not allowed: use default_factory```
weg bekommt
einf sachen die erlaubt sind in fields usen
ich hab ja nichts verändert 
Bstimmt weiß wer wie man es weg bekommt
Aber ohne code, wird schwierig
wenn ich selbst ka woher das kommt lol
joa py from discord.ext import commands, tasks
das ist doch kein error 😄
aber deswegen kommt das

dann mach des use default_factory weg ^^
?
This issue will be fixed on the next update, 2.2.3 or something similar. For now it is possible to use the development version.
nö das lag an py-cord
ik habe ich grad geschrieben lulw
joa
bitte code dazu 🤔
embed.set_footer(icon_url=self.client.user.avatar.url, text="| Cequunity")
statt des würde ich
embed.set_footer(icon_url=client.user.display_avatar, text="| Cequunity")
)```
benutzt du bot ?
probier mal self.bot
Woher soll dein modal denn wissen, was "client" ist
interaction.client
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
Heute klären wir eine Frage, die ...
Hä
Lüge
warte
Obwohl, ne eher
das hilft immer
Ja
Was versteht man denn nicht an "interaction.client" statt "client"
ich mag client
self.bot mag ich nicht muss man immer so viel schreiben 🙂
Weißt du worum es geht?
es geht um dich 😄
Gagmaschine
😭
ja er mag bot profilbild als icon unten rechts kollege Schnürrschuh
links sorrrryyyy
-_-
Nein, er will client übergeben, obwohl das unnötig is + er kann / sollte interaction.client nutzen.
Und dies versteht er nicht
vom prinzip will er des was ich schrieb
er könnte auch self.user usen 😄
Du hast doch nur geschrieben das client besser is als bot hä (hab kein bock hoch zu scrollen)
Meine Deutschlehrerin lässt uns auch bericht mit chat gpt schreiben
als er hier nach gefragt hat hat er aufgegeben es selber zu lösen 😄
vllt kann er mit chat gpt erklärung mehr wissen ^^
||Er hat es garnicht probiert selbst zu lösen, weil er weiß das es hier menschen gibt die ihm direkt nh lösung geben||
bevor chat gpt auf dem stand 2021 is
Ja
es kommt doch auf des selbe wie meine antwort 🙂
supa
Ich lerne die docs mit stackoverflow
😄
solange du nicht nachfragst wie man ein bot zum griefen macht wie manch andere 😄
er hat gefragt wie man einen kanal erstellt
und hat dann ein event machen wollen bei den er pro msg einen neuen txtkanal erstellt
er hat dazu extra auch everyone als msg vom bot benutzt das es endlos wäre
hm
schon dumm sowas versuchen zu leugnen
Lügen
kann man sich alle commands ausgeben lassen die der bot registriert hat? finde nur die prefix commands aber nichts zu den slashcommands in den docs wäre cool wenn mir das jemand sagen könnte oder mir sagt wonach ich mal suchen soll danke vorab.
The following section outlines the API of Pycord’s prefixed command extension module. Bots: Bot: Attributes activity, allowed_mentions, application_flags, application_id, cached_messages, case_inse...

wenn du es übersetzt verstehst du es...
und JZ Lest du es 
dann MUSS DU ES DOCH VERSTEHEN WAS DA STEHT!
bitte nicht schreien @wise stone
Wut.

da steht no Front du hast ein Argument zu viel angegeben
was daran so schwer zu lesen mein Gott
lmao woher soll ich das wissen
da hast es
von da ist der error
mein Gott
sieht du dein Fehler nicht
@urban glen da fehlt button I'm callback
achte also bitte #🔰・old-help-rules
und?
das gehört da rein
schau die Docs alter
Learn all about implementing buttons in your Discord Bot using Pycord.
mach erst das und dann helfe ich dir weiter

zudem hast du nichts Client gesagt
nichts bekommen nichts helfen
ganz ehrlich ich kann nicht helfen wenn man Rum motzt und nicht den Error gleich mitschicken
code
und der Error sagt wo es ist
@urban glen JZ zeigst du mir den modal
den init 
client raus aus den init
da du es nicht übergibts
import discord
from discord.ext import commands
from colorama import Fore
import asyncio
bot = commands.Bot(command_prefix="!")
class status(commands.Cog):
def __int__(self, bot):
self.bot=bot
@commands.Cog.listener()
async def on_ready(self):
bot.loop.create_task(status_task(self))
print(Fore.GREEN + "The File " + Fore.MAGENTA + "'Status'" + Fore.GREEN + " started succesfully!" + Fore.RESET)
@commands.Cog.listener()
async def status_task(self):
await bot.change_presence(activity=discord.Game(f"bla bla"), status=discord.Status.online)
await asyncio.sleep(30)
await bot.change_presence(activity=discord.Game("bla bla"), status=discord.Status.online)
await asyncio.sleep(30)
await bot.change_presence(activity=discord.Game("mit Night of my Life"), status=discord.Status.online)
def setup(bot):
bot.add_cog(status(bot))```
```py
Task exception was never retrieved
future: <Task finished name='Task-22' coro=<status_task() done, defined at C:\Boss Wolfi\Bot\cogs\status.py:18> exception=AttributeError("'NoneType' object has no attribute 'change_presence'")>
Traceback (most recent call last):
File "C:\Boss Wolfi\Bot\cogs\status.py", line 20, in status_task
await bot.change_presence(activity=discord.Game(f"bla bla"), status=discord.Status.online)
File "C:\Users\bonny\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 1209, in change_presence
await self.ws.change_presence(activity=activity, status=status_str)
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'change_presence' ```
jo
Task exception was never retrieved
future: <Task finished name='Task-22' coro=<status_task() done, defined at C:\Boss Wolfi\Bot\cogs\status.py:18> exception=AttributeError("'status' object has no attribute 'bot'")>
Traceback (most recent call last):
File "C:\Boss Wolfi\Bot\cogs\status.py", line 20, in status_task
await self.bot.change_presence(activity=discord.Game(f"bla bla"), status=discord.Status.online)
^^^^^^^^
AttributeError: 'status' object has no attribute 'bot'```
wait
ja
🙂
was versuchst du da denn wieder für dumme sachen
xD
ich habs an sich auch so nur in einem command und da geht es
häää
xD
das heißt WIE BITTE
Lak was redeeeeeest du
Würden die an meiner schule sagen
die Jugend 😮
Bin zwar am handy, aber das sieht nach nem cog aus, also wofür definierst du Bot ganz oben + überall wo bot steht muss „self.bot“ hin
missing access sagt alles
Ich hab alles an gemacht
aber funktioniert nit
hab nix gesagt hab falsche guild id eingetragen
Wie kann ich den User an die untere Button-Klasse übergeben, wenn ich keinen Button Timeout habe:
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(WelcomeButton())
@commands.Cog.listener()
async def on_member_join(self, member):
channel = await self.bot.fetch_channel(1234)
await channel.send(f'Herzlich Willkommen {member.mention}!', file=discord.File("willkommen.png"),
view=WelcomeButton())
class WelcomeButton(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label="Winken zur Begrüßung", style=discord.ButtonStyle.secondary, emoji='', custom_id="Welcome-Button")
async def button_callback(self, button, interaction):
@commands.Cog.listener()
async def on_member_join(self, member):
channel = await self.bot.fetch_channel(1234)
await channel.send(f'Herzlich Willkommen {member.mention}!', file=discord.File("willkommen.png"),
view=WelcomeButton(member))
class WelcomeButton(discord.ui.View):
def __init__(self, member):
super().__init__(timeout=None)
@discord.ui.button(label="Winken zur Begrüßung", style=discord.ButtonStyle.secondary, emoji=':wumpus_wumper:', custom_id="Welcome-Button")
async def button_callback(self, button, interaction):
@tough thicket persistent musst du den nicht machen. Das nimmt dir einfach nur unnötig Leistung weg
okay, ich werde es morgen mal testen
send trz deinen
Falscher Pfad maybe?
Lass dir doch mal alle Dateien und Ordner aus diesem Pfad printen
Muss es nicht
boah
Dann musst du einfach nur "cogs" machen soweit ich weiß
nur cogs
nein geht nd
habs gefixt
Warum lädt man die Cogs eig so kompliziert?
Es geht viel einfacher und schneller ._.
Schön wäre der Error dazu oder wenigstens der Rote kasten drunter
geil der cog wird glaube nd erkannt oder irgendein fehler ist drine MANNN
bin erstmal eine rauchen :/ brauche ruhe
Lass dir doch erstmal alle dateien in dem ordner printen
import os
path = "./cogs"
dir_list = os.listdir(path)
print("Files and directories in '", path, "' :")
print(dir_list)
Funktioniert doch
ja
außer das du halt bot.load_extension awaiten musst
Aber da du es da nd awaiten kannst, kannst du ja so machen:
Oder ungefähr so
gehts au so xD weil idk wenn ich es oben im on_ready event haue kommt nen error
Das macht so keinen sinn
Lern bitte erstmal die Python grundlagen bevor du mit Discord Bots anfängst
tut mir ja leid amk
tu ich hier jedentag in vsc hocken und sonst was programmieren
Aber wenn du es lernen möchtest, dann erstmal mit den Grundlagen von Python
Und nicht einfach ohne Vorkenntnisse rein stürzen in Discord bots
wie bekommt nochmal ModuleNotFoundError: No module named 'discord' weg es steht in der requirements.txt
du kannst discord einfach aus deiner requirements.txt entfernen wenn du pycord nutzt
da steht eig nicht mit disccord drinnen
das ist alles
discord ui auch nicht?
nein
Hatte sowas auch mal, lag daran, dass ich discord Library installiert hatte. Bist du dir sicher, das die deinstalliert ist?
Also py-cord drinnen ist aber discord nt
Kann ich in PyCharm auch alle meine Bot Projekte anzeigen lassen?
habe das aktuell so, nur in der discord presence wird das projekt, an dem ich dann arbeite nicht angezeigt
halt mit file etc.
ja
hhm ja, habe schon in den einstellungen geschaut, sehe dort auch nichts
hast du show project an?
sieht so aus
project total, oder active?
active
hhm, klappt irgendwie aber auch nicht
resatrt
sieht jetzt so aus, habe bei pycharm als die meldung kam einfach show project & files geklickt

ja
wie läuft das denn dann eigentlich mit git & github?
?
ach egal, teste es einfach gleich aus
wo finde ich nochmal die python console
a
Weiss jmd was das macvht?
Das Feature bewirkt das wenn du auf deinem Server die Sicherheit hat das Teammitgleider z.b. eine Verifizierte email braucht kannst du ihn damit freischalten
Der möchte in den Klammern noch etwas, sonst erscheint ein Error in der Konsole
@tough thicket
ja, aber es erscheint ja ein error
oder meinst du diesen ganzen listener mit on_ready weglassen?
ja
Habe das aus einem Tutorial, damit der Button eigentlich nach dem neustart auch noch funkt
...
i need help
heist deine view auch 'WelcomeButton'
Hab ich aber funktioniert nit
#1019974414487535736 message
Da wo du data definierst
Damn
Die leute denken auch das wir hellsehen können und wir verpflichtet sind ihnen zu helfen 😂
wieso könnte ich keine 2 embeds responden?
await ctx.respond(embed=embed1, embed=embed2)
embeds=[]
achso perfekt danke
Warum kann sich das Mitglied immer noch selber begrüßen?
achso, mein fehler
@dense magnet jetzt geht der button halt nach dem neustart nicht mehr
sagtest ja aber, dass das viel leistung ziehen würd'
ja natürlich weil der View nicht geaddet wird
hast den ja in # gepackt
ich weiß
hab's auch nicht drin finde das unnötig
aber wenn du oft restartet sollte man es haben
ne, eigentlich nicht
Ja wie gesagt, wenn du für jede einzelne Nachricht diesen View lädst, machst du dir deinen Bot damit kaputt weil der am Ende für jeden der jemals gejoint ist nen View laden und bereit halten muss. Deswegen gibts ja die Timeouts und die solltest du auch nutzen
^^
Es gibt nen Unterschied zwischen Systemen die eh nur einmal geladen werden müssen wie zb. bei einem Ticket System und wenn du 100te events hast wie bei sowas. Wenn dann musst du das in kombination mit einer Datenbank machen, und über die dann den User abfragen, den View aber unabhängig von dem übergeben eines Users machen
okay 🙂
isso
ah das istz nen veralteter code bei BLUE
der mal wieder ohne nachdenken kopiert wurde
klar
du nicht weil du nicht die basics gelernt hast
xD
sry. aber jedes deiner probleme sind extrem klein
und mit wenig basics kann man das
Musst deine cogs auch laden
schau dir nochmal timos tutorial zu cogs an
und wie man die richtig lädt
.
auf dem server sollte es genauso funktionieren wie bei dir lokal
ne wenn ich alle files in dem gleichen dictionary pack so wie es im vsc ist läd nur die main.py
wie ist dein username bei keks hosting?
der mir bei dem settings angezeigt wird?
der der bei /account angezeigt wird
deval
du hast py-cord und discord.py in deiner requirements datei, das geht nicht, siehe #🔍・pycord-help
was isr besser pycord oder discord.py
das ist geschmacksache, in den tutorials nutze ich aber pycord
dann nutze ich jetzt pycord

kann man es so machen das req.txt nur einmal instaliert dan nd mehr
cog wird immer noc nd geladen
deine category ist None. vlt wird sie nicht gefunden?
Und warum in ner liste?
jo
meinst du das grad ernst?
Junge
Wenn du Hilfe willst, dann nerv nicht mit diesen scheiß Emojis
guild.get_role
Is das so schwer?
Dann gette nh guild
Oder mach ctx.guild
So ein unnötiger Ping
Error & Code 
@bot.event
async def on_member_join( member ):
role = discord.utils.get( member.guild.roles, id = Deine_id)
await member.add_roles( role )
Wofür das ctx ._.
role = member.guild.get_role(id), warum macht ihr es euch alle so schwer 😭
role = discord.utils.get( member.guild.roles, id = Deine_guild_id) bei "id" müsste die Rollen Id hin, nicht die guild id
Soweit ich weiß
Macht ja sonstk ein sinn
mach es einfach so
?
Lmao wie du es jetzt geändert hast
line 46, in begruessen
await interaction.response.send_message(f":wave: | {interaction.user.mention} begrüßt {self.member.mention}")
AttributeError: 'Bot' object has no attribute 'mention'
das der error
```py
@discord.ui.button(label="Begrüßen", style=discord.ButtonStyle.green, custom_id="Hallo")
async def begruessen(self, button, interaction: discord.Interaction):
await interaction.response.send_message(f":wave: | {interaction.user.mention} begrüßt {self.member.mention}")
button.disabled = True
await interaction.message.edit(view=self)
der Code
?
ausversehen geschickt
Hab nh Screenshot sogar ._.
Weil ich wusste das du änderst xD
Kann mir wer helfen
mach doch einfach role = member.guild.get_role(dieRollenID) 😭
Wofür das: {len(list(member.guild.members))}??
Und nicht bot.add_roles
So weiß er ja nicht, wem er die rolle geben soll.
member.add_roles(role)
Was ist denn "self.member"?
Der member der gejoint ist
Zeig mal, wo du den member abrufst der gejoined is?
Oder wo du den übergibst
Kann net muss PC ausmachen :/
😭 warum fragst du dann
Anstatt später oder morgen
Wenn du weiter dran arbeiten kannst
Also die anzahl der member die aufm server sind?
😄
Mach {len(list(member.guild.members))} weg und mach nur {member.guild.member_count}
Aber vereinfacht, wofür so kompliziert machen, wenn es schon was schöneres und leichteres gibt
ja ik war nur eine erklärung alles gut
Wie kann man bei dem Spezial - Dropdown Video machen, das nur bestimmte Rollen angezeigt werden
Und das die Rollen, die Ausgewählt werden dem User hinzugefügt werden
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...
weil ich da noch on war
import discord
from discord.ext import commands
from discord.commands import slash_command
from easy_pil import Editor, Font, load_image_async
class Image(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_member_join(self, member):
if member.guild.id != 1066764262963433523:
return
background = Editor("wlcb.jpg").resize((800, 250))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((180, 180)).circle_image()
background.paste(circle_avatar, (100, 40))
big_text = Font.poppins(size=25, variant="bold")
small_text = Font.poppins(size=20, variant="regular")
background.text((440, 90), f"{member.name}", color="White", font=big_text, align="center")
background.text(
(510, 170), f"Jetz haben wir {member.guild.member_count} Mitglieder", color="White", font=big_text, align="center"
)
file = discord.File(fp=background.image_bytes, filename='test.png')
channel = await self.bot.fetch_channel(1066764263517065218)
await channel.send(file=file, view=halloView(self.bot))
def setup(bot):
bot.add_cog(Image(bot))
class halloView(discord.ui.View):
def __init__(self, member):
self.member = member
super().__init__(timeout=None)
@discord.ui.button(label="Begrüßen", style=discord.ButtonStyle.green, custom_id="Hallo")
async def begruessen(self, button, interaction: discord.Interaction):
await interaction.response.send_message(f":wave: | {interaction.user.mention} begrüßt {self.member.mention}")
button.disabled = True
await interaction.message.edit(view=self)
Weiß ich aber ich bin zu dumm den Member zu übergeben
self.bot mit member ersetzten ._.
das geht leider nicht, es werden immer alle rollen angezeigt
Habe ich schon verduxht
Menno
Naja, mach jetzt erstmal was mit ner Api
bin froh das du dazu nen video hast
error?
await channel.send(file=file, view=halloView(member))
xD
Ja ._.
Warum self.member im on_member_join?
bruhh
self.member is die definition für den Member den du in deine view class übergibst
nutzt du vlt python 3.11 mit einer library die nur für python 3.10 gemacht ist?
pip freeze
bei deinem Projekt auf interpreter
dann aufs plus und suche easy-pil
was steht da bei dir?
dann muss da 3.10 oder 3.9 also klicke drauf
ah lel sehe es jz
hallo ich hab ein problem ich will pycord installieren aber er schreibt immer
pip : Die Benennung "pip" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
- pip install py-cord==2.2.2
-
+ CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Hast du Python installiert?
jup
Hast du beim Installieren von Python auch "pip" ausgewählt?
Nein, ob du beim Installieren von Python "pip" ausgewählt hast
ne glaube nich
sieht nicht so aus
Ja, dann is ja logisch das es nicht funktioniert
Warum kommen bei mir 2 Nachrichten?
Mein Code import discord
intents = discord.Intents.default()
intents.message_content = True
bot = discord.Bot(intents=intents)
@bot.event
async def on_ready():
print("Der Bot ist online")
@bot.event
async def on_message_delete(msg):
await msg.channel.send(f"Eine Nachricht von {msg.author} wurde gelöscht: {msg.content}")
Läuft der Bot maybe 2 mal?
sicherlich
geht immer noch nich
ok
hast du dein code auf pycharm gestartet
Wie seh ich das?
weiß man normalerweise
jap
Und dann?
Den laufenden Bot Killen
Wie das killen?
entweder programm über task manager killen
Wie tu ich killen?
Mert schreibt
bei vsc geht es auch einf wenn man auf des rote quadrat drückt
Ich nutze Vsc ._.
ich auch
ich mache des immer so 🙂
dann ist terminal noch aber der prozess ist gestoppt
wenn es gestartet ist
Ich geh meistens immer in den Terminal und drücke nur STRG + C
Wird auch gestoppt
Is ja auch logisch
Wenn du halt was ausm Terminal kopieren willst und dann Strg + C machst, könnte das terminal geschlossen werden, deshalb haben die es 2 mal gemacht
Hab einfach Programm neu gestartet
@discord.ui.button(label="50 C Spenden", style=discord.ButtonStyle.gray, emoji="💰")
async def button_callback(self, ctx, button, interaction):
async with aiosqlite.connect("money.db") as db:
await db.execute("UPDATE money SET money_count = money_count + 50 WHERE user_id = ?", (ctx.author.id,))
await db.commit()
await db.execute("UPDATE money SET money_count = money_count - 50 WHERE user_id = ?", (interaction.user.id,))
await db.commit()
interaction.respond("Du hast 50 C gespendet")```
ERROR:
TypeError: bettlerview.button_callback() missing 1 required positional argument: 'interaction'
Ehhh
Wozu ctx?
und "interaction.respond" muss awaitet werden
Naja, ich will dem Autor der nachricht 50 Coins geben und dem interaction.user 50 abziehen
Dann musst du den Member übergeben
Wie mach ich das
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
Heute klären wir eine Frage, die ...
Warum kommt bei meinem Bot nicht der Status der Code ausschnitt @client.event async def status_task(): while True: await client.change_presence(activity=discord.Game("Tutorial Bot"))?
Weil es keinen Event gibt der status_task heißt
Hä war im Tutorial von einem so
Wie mache ich das dann?
Welches Tutorial?
#1069916479312625684 schau mal da
Versteh ich nicht
Dann ließ die Docs
Kannst du mir es da raus Kopieren
Scroll doch nach ganz oben und kopier dir den Code 😭
class bettlerview(discord.ui.View):
def __init__(self, user):
self.user = user
@discord.ui.button(label="50 C Spenden", style=discord.ButtonStyle.gray, emoji="💰")
async def button_callback(self, button, interaction):
async with aiosqlite.connect("money.db") as db:
await db.execute("UPDATE money SET money_count = money_count + 50 WHERE user_id = ?", (user.id,))
await db.commit()
await db.execute("UPDATE money SET money_count = money_count - 50 WHERE user_id = ?", (interaction.user.id,))
await db.commit()
await interaction.response.send_message("Du hast 50 C gespendet")
@urban glen müsste alles so gemacht haben wie im Video, krieg keinen Error aber die applikation reagiert nicht
await db.execute("UPDATE money SET money_count = money_count + 50 WHERE user_id = ?", (self.user.id,))
oh
Aber ich will nur ein Status und nicht 3
Dann mach es zu einem
Die anderen einfach löschen
is das so schwer?
Ja aber welches soll ich nehmen?
Das was du brauchst 😭
Da ist für nextcord und für py-cord
Und in discord.py müsste es genau so sein
Pycord
Ja is da doch
Wird immernoch nicht gesendet
da steht button_callback is not resolved
Ich will einfach nur Spielt z.B Tutorial mehr nicht?
@manic tusk
status = "Dein Status"
@bot_definition.event
async def on_ready():
change_status.start()
@tasks.loop(seconds=30)
async def change_status():
await bot_definition.change_presence(discord.Game(status))
Is das so schwer?
Was hat es sich mit den Sekunden aus sich?
Ist Spielt schon dabei?
Erklärt sich doch von selbst?
Da sind dann 2 Dabei oder?
status = "Dein Status"
@bot_definition.event
async def on_ready():
await bot_definition.change_presence(discord.Game(status))
So wäre für dich eig besser, weil du ja nur ein Status hast schätze ich mal
Ist da schon Spielt dabei?
Game ist spielt...
Ja
na also
Meine Kopf….
Ich merken diese das deine Kopf nix mitdenken tut
Kannst du mal bei meinem code gucken
unicode, hör auf immer so unhöflich zu sein
@tawdry leaf
keine geduld also sagste
Ja aber is doch so, also dieser Code hat 5 Zeilen und er fragt ob da "Game" mit dabei ist
Das sieht man doch
wenn du das siehst ist es schön, trotzdem kann man freundlich bleiben
+1
Nach dem ich dein Code rein gemacht habe
Und gestern hab ich nh Timeout bekommen, weil mich einer per Dm genervt hat, ich ihn blockiert habe und er mich dann angefangen hat hier zu nerven und random zu pingen
ja, dann is mein geduldsfaden geplatzt, aber das er random jemanden anschreibt und anfängt zu nerven und dann aufm server weiter macht, das is egal nh
ersetz des mit bot.event
Da wo "bot_definition" steht musst du ändern zu dem, wie du bot definiert hast
oder client.event je nach dem was du benutzt
Glaube er nutzt client
supi
ja das hat er nicht gewusst
ja aber was muss ich in der letzten zeile machen?
da ist ein erorr
wenn dich jemand in dem DMs nervt kannst du gerne ein ticket aufmachen, dann kümmern wir uns darum. zurückbeleidigen ist nie die richtige reaktion
hab ihn ja blockiert, aber er hat dann angefangen mich hier zu pingen random
Is jetzt eh vergangen, scheiß drauf
ja oder ticket aber nd hier
hier ist kein channel für diskussionen
mach ein ticket auf wenn dich jemand belästigt
Deshalb sag ich ja Is jetzt eh vergangen, scheiß drauf
und wie hier: await client_definition.change_presence(discord.Game(status))
so?
nein, einfach nur client
Danke
Ist jz off
ok
kommt ein error
Nein
Deshalb sag ich das ja 💔
Hahaha
Ab jetzt: alles was du fürs coden nutzt is unnötig
🫶
ja @urban glen
schreib einfach rein statt zu Pingen
nop
easy-pil muss du in den requirments angeben
hm
dann sollte es installieren
lösch Mal die cache Datei und restarte
easy_pil nicht installiert
so
easy-pil
Nope
Du musst in der requirements datei "easy_pil" mit "easy-pil" ersetzen
Dings, ich glaub du hast vergessen jemanden zu Pingen ||Falls Timo das ließt, !!SATIRE!!||
auch für py?
Machst da ja gerade im Screen js, nimmst du für Python auch Vsc?
Ich nutze (und habe auch immer genutzt) Vsc für jede sprache die ich bisher gelernt habe.
Psychopath schreibt…
stoppt
Psychopath schreibt…
stoppt
Psychopath schreibt…
stoppt
einf beim schreiben eingepennt
Lmao 😂
Is das der komplette error?
Ehh
Bei key, da brauchst du keine Klammern
Liegt wohl an data[..][0][..]
Aber code hast du ja gelöscht
Sieht so aus, ja
komisch, ok
okay dann frag mal den timo
Mach mal ?q=keks oder so, maybe liegt es daran, das er bei slap nichts finden kann
Idk arbeite nd mit dieser d-r-e-c-k-s api xD
Das einzige das ich für So bilder mal genutzt habe war Neko api
Because Cute
Lmao
Hier is auch sowas nur besser 
Da kommt sowas raus lmao
Oder sowas
Und das gute, du brauchst kein Api Key + du musst nur request machen und dann data['url']
Und fertig
https://nekos.life/api/v2/endpoints
Hier hast du die endpoints
@urban glen
Musst nur beim request den link ersetzten und dann url = data['url'] machen
Nein
Code?
Wait ich code es dir kurz am handy vor, in besser
Als Screenshot bitte
Hab ich jetzt am handy gemacht
Kann sein das da fehler sind
Ah ne wait
Da is fehler
async with aiohttp.ClientSession() as session:
async with session.get('https://nekos.life/api/v2/img/slap') as response:
res = await response.json()
print(res['url'])
@urban glen
In dein command ._.
Junge
Schick mir mal deinen Code vom command
Nur vom command
Und das war nd der fertige code, das war ein Beispiel code, unabhängig von deinem
@slash_command()
async def hauen(self, ctx):
async with aiohttp.ClientSession() as session:
async with session.get('https://nekos.life/api/v2/img/slap') as response:
res = await response.json()
url = res['url']
embed = discord.Embed()
embed.set_image(url=url)
await ctx.respond(embed=embed)
@urban glen also so schwer is es nd
Das kann aber nicht die ganze Zeit so gehen oder?
Sorry was ausversehen
class bettlerview(discord.ui.View):
def __init__(self, user):
self.user = user
@discord.ui.button(label="50 C Spenden", style=discord.ButtonStyle.gray, emoji="💰")
async def button_callback(self, button, interaction):
async with aiosqlite.connect("money.db") as db:
await db.execute("UPDATE money SET money_count = money_count + 50 WHERE user_id = ?", (self.user.id,))
await db.commit()
await db.execute("UPDATE money SET money_count = money_count - 50 WHERE user_id = ?", (interaction.user.id,))
await db.commit()
await interaction.response.send_message("Du hast 50 C gespendet")```
Error: Keiner, aber bei button_callback steht "button_callback is not accessed"
Schick mal code als screenshot
Falsch eingerückt
Was?
Was?
Was ich falsch eingerückt hab
Alles
das def __init__ is zu weit hinten, ab @discord.ui.button müsste alles unter def __init__
class bettlerview(discord.ui.View):
def __init__(self, user):
self.user = user
@discord.ui.button(label="50 C Spenden", style=discord.ButtonStyle.gray, emoji="💰")
async def button_callback(self, button, interaction):
async with aiosqlite.connect("money.db") as db:
await db.execute("UPDATE money SET money_count = money_count + 50 WHERE user_id = ?", (self.user.id,))
await db.execute("UPDATE money SET money_count = money_count - 50 WHERE user_id = ?", (interaction.user.id,))
await db.commit()
await interaction.response.send_message("Du hast 50 C gespendet")
@cloud cedar
hm
steht nicht mehr is not accessed, aber ich krieg keine response, die anwendung reagiert nicht
oh wait
vielleicht beim /command das ich den ctx.author übergeb?
Weil du beim command nicht antwortest ._.
Wie meinst du
Du antwortest im command nicht ._.
Natürlich steht da dann wenn du den command ausführst das die Anwendung nicht reagiert
@commands.Cog.listener()
async def on_member_remove(self, member):
background = Editor("hintergrund.png").resize((800, 250))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((200, 200)).circle_image()
background.paste(circle_avatar, (25, 25))
big_text = Font.poppins(size = 50, variant = "bold")
small_text = Font.poppins(size = 30, variant = "regular")
background.text((490, 70), f"Bye!", color = "black", font = big_text, align = "center")
background.text((490, 155), f"{member}", color = "black", font = small_text, align = "center")
file = discord.File(fp = background.image_bytes, filename="image.png")
bye_channel_id = ...
channel = await self.bot.fetch_channel(bye_channel_id)
await channel.send(file = file)```
Schriftart ist weiß, aber sollte schwarz sein
Kannst du mir bitte sagen, warum ich nicht antworte?
Ich mache doch ctx.respond()
Was ist damit falsch
Ich sehe nicht das du beim respond eine Nachricht abschickst
@slash_command(description ="Frage eine Spende an")
async def beg(self, ctx):
await ctx.respond(f"Spende {ctx.author} 50 C", view = bettlerview(ctx.author))
Das geht auch nicht
Error?
Nope, gibt keinen
aber button is not accessed
Schick mal deinen code als screenshot
Also pycord is zwar schmutz, aber muss man nicht await ctx.response.send_message machen bei slash commands?
Is ja nh interaction
ctx.respond
Funktioniert beides nicht
Du willst nh lösung? Wechsel zu Nextcord 
mache ich in nen Jahr
nur button is not accessed
Wird der button angeschickt?
ne, nichts wird gesendet
Was meinst du
Ja dann wirds gesendet
nur ohne buttons
Kanns maybe daran liegen, dass er den Button zu weit unten erstellt?
Weil python ließt den code eig von oben nach unten
Versuch es mal oben, außerhalb von der cog class zu machen
ne
immernoch keiner
das ist egal oben oder unten des cog
hmm dann idk mach Mal mabye daraus ein Button class und keine View
Kannst du mir sagen wie
glaub es liegt an dem button is not accessed
res = await response.json()
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
@cloud cedar
ja, hilft mir glaube nicht hab das schon angeguckt
Moin, wollte fragen ob es beim:
@bot.slash_command(description="Grüße einen User")
async def greet(ctx, user: Option(discord.User, "Der User, den du grüßen möchtest")):
await ctx.respond(f"Hallo {user.mention}")
auch eine Möglichkeit für einen Cooldown gibt.
Entweder es gibt nh eingebaute Funktion oder du nutzt die cooldown-function library
Was wäre die COoldownfunktion?
Google doch
Hab ich ja schon, deshalb frage ich ja hier
hey @native plume schau mal hier
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
Jo hatte das angeschaut. Passt das auch mit @bot.slash_commands? Hattest im Video @slash_commands benutzt
jo, das ist genau dasselbe 😄
Parameter.bot
Alr vielen Dank reicht dann mein import discord als import?
Parameter = was du nutzt halt
ja, wenn du in der main datei arbeitest schon
Alr danke
if irgendwas.author.bot:
print('oh no')
