#Allgemeine Hilfe
1 messages · Page 37 of 1
da auch, aber vor allem im code
code
file = discord.File(f"RevolutionCityTeamBewerbungsbanner.jpg", filename="image.png")
embed.set_thumbnail(file)
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
► https://media.tenor.com/epNMHGvRyHcAAAAd/gigachad-chad.gif
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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/
D...

ez
cord
gw
Chillig
bemoji = ""
@discord.ui.button(label=f'{bemoji} Banner', style=discord.ButtonStyle.green)```
weiß jemand wieso der den emoji nd anzeigt sondern des einf so schreibt
Musst doch style=discord.ButtonStyle.green, emoji =“<:wow:zahl>“ machen oder nd
Also das emoji so dahinter
Nd bei Label
Hey leute mal ne frage ist es möglich mit pycord das man sich bestimme channel als select menü anzeigen lässt und wenn man einen kanal auswählt direkt da hin kommt? Ich schaffe es bisher nur ein select menü zu erstellen aber kein plan wie ich die kanäle als Auswahl hinbekomme
bei den anderen geht es aber so xD
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...
Da Isses iwo @tawdry leaf
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...
Super schaue ich morgen an und melde mich bei fragen
sind auch globale button
Mach da
Wie meinst
egal geht jz
in dem video hat er emoji="💫" also eben kein custom aber egal xD geht nun danke
Ok
You mean wenn User kein Banner hat?
so steht es da xD
Kann man ja theoretisch machen

userinfo mit buttons reicht schon
habe ja dafür Rollen nach rollenposition angezeigt nun 😮
🤯
Gibt es eigentlich modals mit buttons? Klingt weird aber ich will ne art Popup Nachricht für die Bestätigung einer Aktion machen..
fehlt noch irgendeine info 🤔
ja gibt es
du machst einf das wenn man button drückt ein modal gesendet wird
ne ich meinte eher in dem modal selbst
ne da kann man nur text schreiben mehr nd
aber eine alternative lösung wäre natürlich dass man ein Modal erscheinen lässt und der user eine Nachricht zur bestätigung schreiben muss
ja das kannst du machen wenn du als placeholder einen code zum beispiel nimmst und er denn dann abschreiben muss und dann prüft man des eben
Nicee
man könne emojis noch machen aber dazu bin ich zu faul xD und status mit emoji aber des ist halt so schmücken xD
Haha
Server beigetreten: vor 5 Jahre , stimmt das?
Ja habe den doch erstellt ist mein eigener Server

Einf Brain afk 👀
vor 5 Jahren krass
hey kann ich auch in einem dropdown nur bestimmte rollen anzeigen? mit ui.role_select?
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...
nur bestimmte tollen anzeigen geht nicht, aber mit role select kannst du alle Rollen anzeigen
Das weiss ich, deshalb fragte ich ja ob es mit der selben Methode auch geht einzelne anzuzeigen. Gut dann muss ich das über Datenbank abfragen machen. Danke
import discord
from discord.ext import commands
from discord.commands import slash_command
from bot import bot
@bot.slash_command()
async def select(self, ctx):
await ctx.respond(view=Dropdown())
class Dropdown(discord.ui.View):
@discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
async def channel_callback(self, select, interaction):
await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")
das geht leider nicht jemand ne idee?
er erwartet eine ctx eingabe aber die ist ja nicht definiert oder?
Was ist der Fehler?
wenn ich den befehl aufrufe erwartet er eine ctx eingabe aber ka was da rein soll es gibt ja kein menu und wenn ich irgendwas eingabe kommt anwendung reagiert nicht in pycharm kommt keine fehler meldung
Du musst glaube ich self entfernen
ja das wars danke jetzt kommt in der ausgabe folgender fehler:
class Dropdown(discord.ui.View):
@discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
async def channel_callback(select, interaction):
await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")
TypeError: Dropdown.channel_callback() takes 2 positional arguments but 3 were given
in einer extra datei aber ohne cog befehl
warum nicht mit cogs?
weil ich die trotz video nicht wirklich verstehe
class Dropdown(discord.ui.View):
@discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
async def channel_callback(self, select, interaction):
await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")
da muss eig ein self rein
soll ich es dir vllt erklären
gerne
- Du musst in deine main datei folgendes schreiben:
if __name__ == "__main__":
for filename in os.listdir("Cogs"):
if filename.endswith(".py"):
bot.load_extension(f"Cogs.{filename[:-3]}")
- Du erstellst einen Ordner Namens Cogs
- Erstellst dort einfach eine Python File
- Schreibst am Anfang des Codes ca so etwas:
class Name(commands.Cog):
def __init__(self, bot):
self.bot = bot
- Programmierst einfach normal
6.Am Ende Schreibst du noch so etwas, damit der Cog geladen wird:
def setup(bot):
bot.add_cog(Name(bot))
Telemachus, ungefähr verstanden?
ja aber nicht wozu es dient, also was ist der sinn hinter diesem cog?
self brauchst du immer dann, wenn du in einer class arbeitest. in deinem fall bräuchtest du also bei @bot.slash_command() kein self, bei channel_callback aber schon, da sich dass in einer class befindet.
wenn du die anleitung von proplayer befolgst und mit cogs arbeitest, brauchst du dann bei dem slash command auch ein self, da sich der command dann in der cog-class befindet
damit es übersichtlicher ist
und du nicht ewig nach einer bestimmten sache suchen musst
genau, wenn du alles in eine datei schreibst wird es sehr schnell sehr unübersichtlich. cogs sind dazu da um den bot in mehrere dateien aufzuteilen
Das mach ich jetzt auch aber ohne cogs? Darum kapier ich es evtl net
ja, der code den du eben geschickt hast ist kein cog-code. du kannst dich sozususagen entscheiden, ob du in einem cog oder in der main datei arbeiten möchtest. in den videos werden ab folge 5 zur besseren übersicht immer cogs genutzt
Ok werde ich mir nochmal näher anschauen bisher programmiere ich jede Funktion in einer eigenen py datei und importiere sie in die main einfach über import
damit ist auch dein code aufgeräumt und du kannst die commands functions auch wieder nutzen falls nötig
Mal ne frage zu dem select menü das läuft jetzt aber es zeigt ja alle kanäle an ist es möglich ein select menü zu erschaffen das nur kanäle anzeigt die ich will optional mit anderem namen also zb link handwurst öffnet kanal xyz und wenn ich es auswähle wird der user direkt zum kanal geleitet?
So ziemlich das einzige/einfachste, was du meines Wissens tuen kannst, ist die Channels die du willst in die options vom select-Menü tuen und dann als Antwort nen (Hyperlink) zu dem Channel senden.
das heißt du du änderungen auf github hast (1) die du in dein projekt holen kannst und änderungen in deinem projekt hast (2) die du pushen kannst
okay
also muss erst pullen vom github und dann gehts?
also wenn ich pulle kriege ich denn error ```git
git pull --tags origin master
From https://github.com/Ceeq9717/modfy
- branch master -> FETCH_HEAD
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull.rebase false # merge
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
habe behoben geht wieder 
Wie müsste ich das realisieren mit links wie würde das aussehen?
wie meinst du
Du meinst wie man Hyperlinks macht?
Den generellen aufbau...überlege grade ob es über die channel id ginge
Was willst realisieren?
Wie gesagt per slash befehl sollen ausgewählte kanäle angezeigt werden optimal mit anderem namen also zb kochen = #kanalxyz wenn man den kanal wählt soll man dahin gebracht werden falls das net geht als anzeigr zum anklicken halt
Man kann nur allgemein discord.Channel machen, du kannst da keine rausnehmen. Du kannst es aber mit choices nachstellen, dass du in die choices einträgst welche Channel gewählt werden können und anhand der Wahl dann einen link zum Channel senden
Oder du nimmst nen URL Button
Sind zuviele kanäle für button
Choices hatte ich schon mit text wie würde das mit kanal aussehen
choices=[“Kanal eins“,“Kanal 2“,“Kanal 3“]
Und wo definiere ich was welcher kanal ist
Also. Du kannst es machen dass entweder alle Kanäle (die der User sehen kann) angezeigt werden, oder mit dem kanal: Option(str, “Der ausgewählte Kanal“, choices=[“Kanal eins“,“Kanal 2“,“Kanal 3“])
Das einschränken und dann mit ner Id Bedingung folgendes abfragen:
If kanal == “Kanal 1“
channel = ctx.guild.get_channel(kanalid)
await channel.send(“Hi!“)
Ich bin zuviel anfänger dafür hehe. Ich teste es gleich mal wenn ich am Laptop bin
Was ist bei Github was bedeutet das?
was genau?
Die ganzen Stats
stars: wie viele likes du bekommen hat
PR heißt pull request und issues sind fragen/probleme, die du bei repositories geöffnet hast
die commits sind die einzelnen änderungen die du gemacht hast
commts ist wie viele ich mal etwas bearbeitet habe oder? || @solid ingot ||
import discord
from discord.ext import commands
from bot import bot
@bot.command()
async def select(ctx):
options = [
discord.SelectOption(label="Kochen", value="Kanal1"),
discord.SelectOption(label="Option 2", value="option2"),
discord.SelectOption(label="Option 3", value="option3")
]
select = discord.ui.Select(placeholder="Wähle eine Option", options=options)
view = discord.ui.View()
view.add_item(select)
msg = await ctx.send("Wähle eine Option:", view=view)
def check(res):
return res.user.id == ctx.author.id and res.message.id == msg.id
If kanal == “Kanal1“
channel = ctx.guild.get_channel(1107575539297964032)
await channel.send(“Hi!“)
interaction = await bot.wait_for('select_option', check=check)
await msg.edit(content=f"Du hast {interaction.component.label} ausgewählt!")
da is noch der wurm drin 😄
- Zeile erstmal weg, der Import Is unnötig
äh da steht meine bot intents drin also die definierung
bot = discord.Bot(intents=intents)
Mach doch eif in nem Cog
ja wie gesagt die cogs muss ich noch lernen^^
Ist der selbe Aufbau eigtl, kannste Call?
ich bin arbeiten also leider nein sry
nein die datei ist nur für die ui da
import blacklist
import json
from bot import bot
# Laden der Konfigurationsdatei
with open('config.json', 'r') as config_file:
config = json.load(config_file)
# Bot-Token aus der Konfigurationsdatei lesen
bot_token = config['token']
# Bot starten
bot.run(bot_token)
das wäre die main
Musste nd noch dc und so Importen?
kann ich github nicht mit Github teilen also wie im video mit tiktok statt YT?
auf github kannst du auch sachen teilen, aber statt videos ist das halt für code
wie
du kannst code veröffentlichen
schau dir am besten mal ein paar grundlegende videos zu github an damit du weißt was die platform überhaupt macht 
Was meinst du Ich meine nix mehr importiern zu müsse
Dachte du willst nen Slash command?
Aber ja, bei dem Code muss auf jeden Fall bissl was überarbeitet werden. Ich schreib dazu später mehr
Ja das geht damit das @bot.command funktioniert nur die ausgabe noch net perfekt
Klar kein stress bin für jede hilfe dankbar
Also das was du da hast is kein Slash Command. Der Code den ich vorhin geschickt hab war für nen Slash Command
Für select Menüs am besten das hier anschauen:
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...
Dort kannst du dann einfach als Antwort auf die Interaktion, je nach dem was gewählt wurde, den link zum Channel senden
Welche Library benutzt du?
Pycord
bot.command sollte aber keinen Slash Command wiedergeben soweit ich weiß… wenn ich am Rechner bin analysiere ich das mal
Bin verwirrt
Ich jetzt auch 🤣
discord.Bot ist nur für slash commands, deswegen werden auch commands mit @bot.command als slash command registriert
hab ich auch neulich erst rausgefunden als ich prefix command support bei ezcord eingebaut habe
role = self.bot.user.guild.get_role(1052914676306026567)```
AttributeError: 'ClientUser' object has no attribute 'guild'
Weiß jemand genau, wie ich die ID definieren kann?
ctx.guild.get_role
ist in einem Task. Hab da kein ctx..
hm was macht der task
YouTube & Twitch-Check
hm
Aber tut ja nix zur Sache. Der funktioniert.
Geht nur darum, wie ich die role definieren kann.
@crude heath maybe weißt du was xd
import discord
from discord.ext import commands
from discord.commands import slash_commands, Option
from bot import bot
@slash_command(description="Ein Test Command")
async def channe_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", choices=["Kochen", "Putzen", "Fegen"]):
if channel == "Kochen":
channel = ctx.guild.get_channel(1107575539297964032)
await channel.send("Hi!")
elif channel = "Putzen“:
channel = ctx.guild.get_channel(Id)
await channel.send("Hi!")
elif channel = "Fegen":
channel = ctx.guid.get_channel(id)
await channel.send(“Hi“)
das wärs so wie ich machen würde.
Schick mal bitte den Code von der gesamten task.
@crude heath Für den RechtschreibDude müssen wir aber wohl noch was lernen xd chocies -> choices
War ich wohl zu schnell haha
:3
** OHNE TOKEN ** !!
Besser? XD
Das mach ich nicht. Privater Code..
Geht ja nur darum, wie ich die Role definieren kann.
die rolle gehört ja zu einer guild. erstmal musst du also die entsprechende guild laden, und dann kannst du darüber die role laden
@tasks.loop(minutes=3)
async def daily_loop(self):
async with aiosqlite.connect(self.DB) as db:
async with db.execute("SELECT user_id FROM daily WHERE gesetzt = ?", (1,)) as cursor:
user_id_gesetzt = await cursor.fetchall()
async with db.execute("SELECT user_id FROM daily WHERE gesetzt = ?", (0,)) as cursor:
user_id = await cursor.fetchall()
if len(user_id) != 0:
await db.execute("UPDATE daily SET count = 0 WHERE user_id = ?", (user_id[0][0],))
await db.commit()
if len(user_id_gesetzt) != 0:
await db.execute("UPDATE daily SET gesetzt = 0 WHERE user_id = ?", (user_id_gesetzt[0][0],))
await db.commit()
Ich möchte das er es nicht nur für denn ersten updatet sondern für alle
#1019974414487535736 message
bei dem user_id[0][0]
warum machst du denn user_id[0][0]
wie soll ich es sonst machen nur user_id[0] kann ich nich machen
File "C:\betacmdr\blacklist.py", line 11
elif channel = "Putzen:
^
SyntaxError: unterminated string literal (detected at line 11) der fehler kommt dann
Wie meinst sag bitte?
mach mal 3 prints rein
print(user_id)
print(user_id[0])
print(user_id[0][0])
und dann schick wieder einscreen @novel ore
akteull ist es eine aber wenn das system rauskommt werden meherere denn comman dmachen und dann sind da vielleiht 10ids
mach anstatt user_id[0][0] einfach int(user_id[0])
und du brauchst eine for schleife für jeden user in der liste
Jemand ne Idee, warum das folgende nicht geht?
isinstance(message.channel, discord.DMChannel)
checken ob die message in den DMs des Bots ist.
if message.guild is None:
was geht daran nicht?
oder so
Ja
der geht direkt in den else-Zweig
dann sind ja Gruppen auch ein geschlossen mMn
Gruppen ?
idk
Aber was will man mit dem bot in einer Gruppe
Okay
Einf Guild only fertig
ja aber er will es ja checken ;D
Er wollte auch Gruppen
Haste eif copypasted?
ja
Eben nicht 😂
Aber egal. Passt scho 👌
Ja dann einf Guild only 😵💫
Dann wird er nur in Server angezeigt
wie? if guild is None ?
Nö
stimmt danke
hab jetzt if message.guild is None:
File "C:\betacmdr\blacklist.py", line 7
async def channe_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", chocies=["Kochen", "Putzen", "Fegen"]):
^
SyntaxError: invalid syntax
Ne kannst default machen
was? 
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Checks ► https://gist.github.com/Painezor/eb2519022cd2c907b56624105f94b190
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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/i...
Müsste das Video sein
Welche hast du denn
discord4py
Achso
Dann nutz lieber keine Py-cord tutos
Wenn es discord.py ähnelt kann ich dir helfen
Doch ist wenig Unterschied wenn es discord.py ähnelt
Okay
Ich benutze auch discord.py und alle Videos gehen manche sind nur bisschen anders
Einer meiner Gründe für discord4py: Ich finde die Modals sind u.a. viiiiel einfacher 
ich hab den code korrigiert nun das
ImportError: cannot import name 'slash_commands' from 'discord.commands' (C:\Users\Telemachus\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands_init_.py)
aber die lib ist ja da
Nur mal als frage was bedeutet Cogs überhaupt auf Deutsch übersetzt?
Hey,
ich hätte eine kurze frage, und zwar wie kann man abfragen ,dass wenn der member in einen bestimmten voice geht , der bot auch Joint und was abspielt ? Ist das in den Music bot Videos drin? Dann würde ich mir die Angucken.
hey, ja das geht, aber ich habe dazu noch kein video gemacht. du benötigst dazu das on_voice_state_update event
Okay ,danke das kann ich dann noch weiter in Pycord nachgucken oder?
genau
Wie macht man denn diese Texte?
so endlich zuhause ich teste den code mal^^
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
from bot import bot
@bot.slash_command(description="Ein Test Command")
async def channel_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", choices=["Kochen", "Putzen", "Fegen"])):
if channel == "Kochen":
channel == ctx.guild.get_channel(1107575539297964032)
await channel.send("Hi!")
elif channel == "Putzen":
channel = ctx.guild.get_channel(Id)
await channel.send("Hi!")
elif channel == "Fegen":
channel = ctx.guid.get_channel(id)
await channel.send("Hi")
habs soweit korrigiert nur der channel send geht nicht aber das spielt vorert keine rolle, es ist jetzt ja so kein select menü? die kanäle werden als auswahl angezeigt also als option aber nicht als select
Ja, hab wie gesagt kein Select Menü eingebaut. Das is ja nur die Version wie ich so einen Command programmieren würde.
habs jetzt so aber geht natürlich net
Error?
import discord
from discord.ext import commands
from bot import bot
from pycord_components import Select, SelectOption, Components, InteractionContext
class ChannelSelect(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
self.select = Select(
placeholder="Please select a channel",
options=[
SelectOption(label="Kochen", value="kochen"),
SelectOption(label="Putzen", value="putzen"),
SelectOption(label="Fegen", value="fegen")
]
)
self.add_item(self.select)
async def callback(self, interaction: InteractionContext):
if self.select.values[0] == "kochen":
channel = bot.get_channel(1107575539297964032)
await channel.send("Hi!")
elif self.select.values[0] == "putzen":
channel = bot.get_channel(Id)
await channel.send("Hi!")
elif self.select.values[0] == "fegen":
channel = bot.get_channel(id)
await channel.send("Hi")
@bot.slash_command(description="Ein Test Command")
async def channel_select(ctx):
view = ChannelSelect()
await ctx.send("Please choose a channel:", view=view)
die lib ist wohl in erster linie falsch
Also was du da in Zeile 4 importierst weiß ich ja nd xd
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 da mal an
ja habe ich und das nachzubauen ist np aber ich bekomme halt denkanal net als option ich teste nochmal
pycord_components solltest du deinstallieren. bei pycord ist schon alles drin was man braucht
oki
import discord
from discord.ext import commands
from discord.commands import slash_command
from bot import bot
options = [
discord.SelectOption(label="kochen", description="Python Beschreibung", emoji="👑"),
discord.SelectOption(label="Java", description="Java Beschreibung", emoji="💻"),
discord.SelectOption(label="Javascript", description="Javascript Beschreibung", emoji="🚩", value="JS")
]
@bot.slash_command()
async def select1(ctx):
await ctx.respond("Wähle Programmiersprachen aus", view=TutorialSelect())
class TutorialSelect(discord.ui.Select):
def __init__(self):
super().__init__(
min_values=1,
max_values=1,
placeholder="Triff eine Auswahl",
options=options
)
async def callback(self, interaction: discord.Interaction):
if self.values[0] == "kochen":
channel = get(interaction.guild.channels, id=1107575539297964032)
await channel.send(f"Du hast {self.values[0]} gewählt")
class TutorialView(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
self.add_item(TutorialSelect())
@discord.ui.select(
min_values=1,
max_values=1,
placeholder="Triff eine Auswahl",
options=options
)
async def select_callback(select, interaction):
pass # Hier kannst du Code hinzufügen, um auf die Optionen des Dropdown-Menüs zu reagieren
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'TutorialSelect' object has no attribute 'to_components' sobald ich den kanal einbauen will gehts schief
hm bin mir nicht sicher, versuch mal pycord neu zu installieren nachdem du pycord_components deinstalliert hast
Oki mache ich
ändert nix
Okay Anfänger Frage aber wie mache ich das der Text nicht auf den vorherigen Text respondet wird
await ctx.respond("Nachricht gesendet")
await ctx.channel.send(nachricht)
hab nh interaction
Ah wait
await interaction.response.send_message("Nachricht gesendet",ephemeral=True)
await interaction.channel.send(nachricht)
probier mal das, wenns nd geht musste maybe channel.send zu channel.send_messages machen bin mir nd sicher
jo
danke
Was meinst du?
Kann man durch einen Button eine ganze View von Buttons deaktivieren?
Du kannst mit einem Button einfach die View entfernen
Wie macht man das denn xD
in keinen der Videos von Timo gesehen xD
ja, ein beispiel fidnest du hier: https://github.com/tibue99/tutorial-bot/blob/0c05ace520bc3e79d4ae8acd849e6c710cca3866/Tutorialreihe/part11_buttons.py#L51
await interaction.response.edit_message(view=None)
👍
Verstehe ich nicht ganz
for child in self.children:
child.disabled = True
wo soll das hin xD
Siehe Code im github
await interaction.response.send_message(view=AccountButton(), ephemeral=True)
await interaction.response.edit_message(view=None)
hmm
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...
Ach stimmt
hast du schon folge 2 geschaut?
Wieso machst du das denn so?
await interaction.response.send_message
Geht doch auch? Oder wo ist der große unterschied?
hat er doch auch gemacht oder
Es geht um das zweite (wie man ne Nachricht dann in den Channel sendet…)
Nd um die response
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Rysii\OneDrive\Desktop\neu discord bot\main.py", line 64, in on_ready
bot.ready(
^^^^^^^^^
AttributeError: 'Bot' object has no attribute 'ready'```
@bot.event
async def on_ready():
new_info = {"Custom Info": "This is a custom info"}
bot.ready(
title="Bot is online!",
style=ezcord.ReadyEvent.default,
default_info=True,
new_info=new_info,
colors=["red", "blue", "green"],
)```
du musst ezcord.Bot nutzen
use ich doch
dann hast du vlt eine ältere version
mach mal pip install ezcord --upgrade
die version kannst du mit print(ezcord.__version__) prüfen
bin grad richtig verwirrt hab pycharm kurz geschlossen davor ging der bot und jetzt kommt
File "C:\Users\sebas\Desktop\dev\CyberBase\main.py", line 2, in <module>
import ezcord
File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\__init__.py", line 6, in <module>
from . import components, emb, logs, times, utils
File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\components.py", line 27, in <module>
from .internal import get_error_text
File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\internal\__init__.py", line 2, in <module>
from .embed_templates import *
File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\internal\embed_templates.py", line 59, in <module>
ctx: discord.ApplicationContext | discord.Interaction,
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'discord' has no attribute 'ApplicationContext'```
ich weiß nicht an welchem code es liegt da er grade noch ging
sieht nach einem installationsfehler aus, schau mal in #🔍・pycord-help
hab alles neu installiert
geht immer noch nicht
falls du andere oackages hast die etwas mit Discord zu tun haben, deinstalliere die
hab ich geschaut dc.py hab ich nicht
das wundert mich ja
Wie gesagt hab nur pycharm für 3 min geschlossen gehabt davor war er ja auch an und aktiv
welche pycord Version hast du
2.4.1
komisch, schau evtl mal ob es wieder an so einem Import liegt wie das letzte Mal also du diesen anderen werden Error hattest
schick Mal ne Liste mit allen packages die du hast
Du meinst wo pycord oder
ne alle
Ja das war ein beispiel 
ja nvm
glaube ich hab den fehler
Hab den Fehler gefunden
alles mit Discord deinstallieren
Oha Timo wieso so gemein
da er cursor.fetchall() gemacht und man dann es so raus kriegt
Was ist der Unterschied zwischen Discord.py und py.cord?
das sind 2 bibliotheken mit denen du discord bots machen kannst, du musst dich aber für eine entscheiden, da beide zusammen nicht funktionieren
Aber was sind vor und nachteile?
fork?
weitergeführt
weil d.py mal "beendet" wurde
wird dann aber iwi wieder weitergeführt
was würdest du von den beiden bevorzugen
mit pycord kann dir hier jedenfalls am besten geholfen werden, da das hier die meisten nutzen
ok bleibe dann glaube ich auch bei pycord
ok doki
muss denn code so hochladen , da es zu viele zeichen sind, im anhang kommt der fehler und die erklärung
ich will ein timeout cmd mit daten bank machen aber immer wenn ich den befehlt ausführe kommt der error
Überprüf mal die Formatierungen
Ah nvm dein Fehler ist das du es Falsch Einsetzen willst deine Tabelle heißt warns und du versuchst es in timeout einzusetzen du musst es in warns eisnetzen
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
from datetime import timedelta
import sqlite3
class timeout(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.conn = sqlite3.connect('timeout.db')
self.c = self.conn.cursor()
self.c.execute('''CREATE TABLE IF NOT EXISTS timeout (
timeouted_user TEXT,
guild_id INTEGER,
reason TEXT,
timeouted_by TEXT,
duration INTEGER)''')
@slash_command(name='timeout', description="Timeoute ein Member")
@discord.default_permissions(kick_members=True)
async def timeout(self, ctx,
member: Option(discord.Member, "Wähle einen Memeber"),
reason: Option(str, required=True),
days: Option(int, max_value=29, default=0, required=False),
hours: Option(int, default=0, required=False),
minutes: Option(int, default=0, required=False),
seconds: Option(int, default=0, required=False)):
timeouted_by = ctx.author.name
timeouted_user = member.name
duration = timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
self.c.execute("INSERT INTO timeout (timeouted_by, timeouted_user, reason, duration) VALUES (?, ?, ?, ?)",
(timeouted_by, timeouted_user, reason, duration.total_seconds()))
if member.guild_permissions.ban_members:
await ctx.respond("Du kannst Mitglieder mit einem höheren Rang nicht timeouten!", ephemeral=True)
return
if member.id == ctx.author.id:
await ctx.respond("Du kannst dich nicht selbst timeouten!", ephemeral=True)
return
await member.timeout_for(duration, reason=reason)
embed = discord.Embed(
title="Timeout",
description=f"{member.mention} wurde für {days} Tage, {hours} Stunden, {minutes} Minuten und {seconds} Sekunden getimeoutet. Der Grund ist '{reason}'.",
color=discord.Color.red()
)
embed.set_footer(text=f"Verantwortlicher: {ctx.author}")
embed2 = discord.Embed(
title=f"Du wurdest auf {ctx.guild.name} getimeoutet",
description=f"{member.mention}, du wurdest auf {ctx.guild.name} getimeoutet für {days} Tage, {hours} Stunden, {minutes} Minuten und {seconds} Sekunden.",
color=0xFF0000
)
embed2.add_field(name=f"Der Grund ist {reason}", value=f"Du wurdest von {ctx.author} getimeoutet.")
channel = discord.utils.get(ctx.guild.channels, name='timeout-logs')
await channel.send(embed=embed)
await ctx.respond("Der Member wurde erfolgreich getimeoutet!", ephemeral=True)
await member.send(embed=embed2)
def setup(bot):
bot.add_cog(timeout(bot))
So Funktioniert es
Vielen Dank
Kein ding :3
ich hab eine frage wie kann man mit days timeout nachen
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\Rysii\OneDrive\Desktop\neu discord bot\cogs\Giveaway System.py", line 34, in giveaway
await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 282, in respond
return await self.interaction.response.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 825, in send_message
await self._locked_response(
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1090, in _locked_response
await coro
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 219, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction```
import discord
from discord.ext import commands
from discord.commands import slash_command
import asyncio
import random
#Copyright (c) 2023 & ama#0999
class Giveaway(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Giveaway System")
@commands.has_permissions(manage_guild=True)
async def giveaway(self, ctx, duration: int, *, prize: str):
embed = discord.Embed(title="Giveaway", description=f"Prize: {prize}", color=discord.Color.rot())
embed.add_field(name="Hosted by", value=ctx.author.mention)
embed.set_footer(text=f"Ends in {duration} seconds")
message = await ctx.send(embed=embed)
await message.add_reaction("🎉")
await asyncio.sleep(duration)
updated_message = await ctx.channel.fetch_message(message.id)
reaction = discord.utils.get(updated_message.reactions, emoji="🎉")
if reaction and reaction.count > 1:
participants = await reaction.users().flatten()
winner = random.choice(participants)
embed.set_footer(text=f"Ended! Winner: {winner.name}")
await message.edit(embed=embed)
await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")
else:
embed.set_footer(text="Giveaway ended. Keine Teilnehmer :(")
await message.edit(embed=embed)
await ctx.respond("Giveaway ended. Keine Teilnehmer.")
def setup(bot):
bot.add_cog(Giveaway(bot))
await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")
Der Bot kann die Interaktion nicht aufrufen deswegen schmeißt er dir den Fehler aus
du kannst dann den default_avatar Nutzen
damit macht der aber nichts in die Datenbank mehr
muss eig
habs extra bei mir getestet da hat es funktioniert
Nope das Sagt der Fehlercode
ka warum
import discord
from discord.ext import commands
from discord.commands import slash_command
import asyncio
import random
class Giveaway(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Giveaway System")
@commands.has_permissions(manage_guild=True)
async def giveaway(self, ctx, duration: int, *, prize: str):
embed = discord.Embed(title="Giveaway", description=f"Prize: {prize}", color=discord.Color.red())
embed.add_field(name="Hosted by", value=ctx.author.mention)
embed.set_footer(text=f"Ends in {duration} seconds")
message = await ctx.send(embed=embed)
await message.add_reaction("🎉")
await ctx.respond("Giveaway erfolgreich gestartet", ephemeral=True)
await asyncio.sleep(duration)
updated_message = await ctx.channel.fetch_message(message.id)
reaction = discord.utils.get(updated_message.reactions, emoji="🎉")
if reaction and reaction.count > 1:
participants = await reaction.users().flatten()
winner = random.choice(participants)
embed.set_footer(text=f"Ended! Winner: {winner.name}")
await message.edit(embed=embed)
try:
await ctx.send(f"Glückwunsch {winner.mention}! Du hast {prize} gewonnen!")
except discord.HTTPException:
pass
else:
embed.set_footer(text="Giveaway ended. Keine Teilnehmer :(")
await message.edit(embed=embed)
await ctx.send("Giveaway ended. Keine Teilnehmer.")
def setup(bot):
bot.add_cog(Giveaway(bot))
so Funktioniert es
also wenn ich es ausführe kommt nichts in meine datenbank
bei mir kommt aber auch noch in pycharm so ein timeout.db-jurnal
hätte noch eine frage und zwar wie kann man bei Timos hoosting die datenbank verbindung aufrecht halten also das mann es immernoch auslesen kann mit den db browser
Kannst dir die DB runterladen und dann anschauen.
wie lädt man die denn runter? also wenn es ein Video gibt guck ich es mir an
du kannst hier auf download klicken
Wie ist es möglich das wenn ein User kein Avatar hat trotzdem das Discord Avatar anzeigen zu lassen
Error:
Application Command raised an exception: AttributeError: 'NoneType' object has no attribute 'url'
ja das geht, wie karna schon gesagt hat könntest du statt avatar einfach display_avatar nutzen
Ah okay Danke
weiß wer evtl ob ich ihn Pycharm mehrere Zeilen mit ein # markieren kann
ja, mit Strg und das / zeichen auf dem numpad
alternativ kannst du auch dreifache anführungszeichen nutzen
"""
print("test")
"""
ok
vielen dank!!
gerne 
Warum funktioniert der Code nicht?
import discord
from discord.ext import commands, tasks
class Auto(commands.Cog):
def __init__(self, bot):
self.bot = bot
@tasks.loop(seconds=10)
async def cdeletecommandclear(self):
print("test")
channel = self.bot.get_channel(1111380423021436938)
messages = await channel.history(limit=200).flatten()
for message in messages:
if message.pinned:
pass
else:
await message.delete()
@commands.Cog.listener()
async def on_ready(self):
print("Bot is ready")
self.my_task.start()
def setup(bot):
bot.add_cog(Auto(bot))
Error?
Hat sich schon erledigt
ja stimme war dumm
Jemand ne Idee warum der command verschwunden is...
hast du vllt nicht genügend Rechte? bei mir ist des noch da
Ne meine der Command /kibild
aso xD
Der ging gerade noch und wird nd mehr angezeigt xd
hm vllt mal / weg und neu machen
Immer wenn ich halt den 1x gesendet hab verschwindet der halt
hmm
"Discord is a stable Platform"
Versuch mal in nem anderen Kanal
haha
Gibt es ein Command das halt der Command erst ausgeführt wird wenn jemand den Server boosted?
was meiste du das ?
er meint das man die Booster Nachricht Abfangen und eine Eigene Booster Nachricht Implementieren kann
ist aber nicht ohne einen Umweg möglich
es ist un möglich
es ist un möglich
import discord
from discord.ext import commands
from discord.commands import slash_command
class boostedd(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="boosted")
@commands.guild_only()
@commands.guild_owner()
@commands.bot_has_guild_permissions(manage_guild=True)
async def boostedd(self, ctx,):
boost_level = ctx.guld.premium_tier #code by ama
if boost_level > 0:
await ctx.respond("Du hast den Server geboostet! Der Befehl wird ausgeführt.")
else:
await ctx.respond("Du musst den Server boosten, um diesen Befehl ausführen zu können.")
def setup(bot):
bot.add_cog(boostedd(bot))
File "c:\Users\Rysii\OneDrive\Desktop\neu discord bot\bot.py", line 120, in <module>
bot.load_cogs("cogs")
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\bot.py", line 152, in load_cogs
self.load_extension(f"{'.'.join(path.parts)}.{name}")
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.boosted' raised an error: SyntaxError: 'await' outside function (boosted.py, line 21)```
guck dir die Einrückung an
hä
es komm immer doch dem error
siehe sein Namen.. er hat ein Nick hier
Was meinst du damit?
das er ama heißt auf discord
ja was soll ich jetzt machen xd
why not ?

im Error steht cogs.boosted und oben im code boostedd
Es geht immer noch nicht
Doch über die on Member update methode 😄
du kannst es zwar nicht abfangen aber durch das Vergeben der Rolle kann man die Nachricht ersetzen
OperationalError: database is locked. This error occurs when more than one process is using the same session file, that is, when you run two or more clients at the same time using the same session name or in case another program has accessed the file.
d.h. das die Datenbank zeitgleich doppelt genutzt wird und daher es nicht funktioniert
Mein Command mobbt mich. Erst kommt diese Meldung und dann verschwindet der Command einfach, ohne nen Restart kann ich den nd mehr nutzen ._.
läuft der bot zufälligerweise doppelt? also PC und Host?
hab ihn extra bei @high glen down genommen
wenn ja kann es daran liegen das es jedes Mal überschrieben wird
hm grundsätzlich liegt's daran wenn es doppelt an ist macht mal Sicherheitshalber alles beides aus und dann starte den bot auf dein PC wieder
ansonsten abwarten oder bot neuinviten
Hab ich schon
mach ich, thx
kann auch an der API liegen bin ich leider nicht sicher weil es zu langsam die Slash Commands lädt weil es ja wie gesagt vorhin mehrmals überschrieben würde
Ich hab ne frage bezüglich modals bzw button modals
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...
Hau raus
in dem video wird eigentlich ganz einfach erklärt wie man ein button mit nem modal erstellt
aber ich wollte gern den label des Buttons so ändern, dass ich auf die andere Klasse wo der Slash command ist zugreife
einfaches Beispiel:
Ich möchte über die datenbank etwas rausfischen was ich nur über die User ID erhalte, und das dann als label in dem Button haben, der auch gleichzeitig das modal öffnet 😅
Versuch das mal mit ner Button Klasse
Wird im Button Video meine ich erklärt
kann es dir auch erklären, bin grade #1020760853634633879
hast du vielleicht Änderungen an der Datenbanken gemacht und nicht gespeichert?
ne ich hatte einfach schwierigkeiten die Buttons mit den neuen labeln vorher zu definieren aber Nikos hat geholfen^^
Kann man nen Paginator im On ready adden? Also dass der auch immer benutzbar is
hast du vielleicht Änderungen an der Datenbanken gemacht und nicht gespeichert?
@solid ingot alles gut bei dir? 
xdd
Warum kommt dieser Error:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 786, in _load_from_module_spec
setup(self)
File "/home/container/cogs/work.py", line 95, in setup
bot.add_cog(work(bot))
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 656, in add_cog
cog = cog._inject(self)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 567, in _inject
raise e
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 561, in _inject
bot.add_command(command)
AttributeError: 'Bot' object has no attribute 'add_command'. Did you mean: 'all_commands'?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 21, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 791, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.work' raised an error: AttributeError: 'Bot' object has no attribute 'add_command'
Hab die Cog Methode doch eigtl. richtig, oder?
def setup(bot):
bot.add_cog(work(bot))
es könnte daran liegen dass du versuchst prefix commands zu nutzen obwohl discord.Bot nur slash commands unterstützt
wie genau bekommt man den fehler weg
ERROR: Could not install packages due to an OSError: [Errno 30] Read-only file system: 'init.py'
Versuchst du ein package in einem Pfad zu installieren in dem eine lib abgespeichert ist? Oder wann genau tritt der Fehler auf?
Kp wollte mein bot auf einem Server installieren
Und da gibt es einen Ordner der init heißt?
In dem darfst du nichts ablegen. Du musst aus dem Ordner raus und deine Dateien außerhalb ablegen.
Was für (:
wie kann ich bei einem command herausfinden in welchem server dieser ausgeführt wurde?
Mann muss erstmal auf glaube 100 oder 75 servern sein und dann muss man sivh dafür irgendwie bewerben
Also der bot muss auf 100 oder 75 servern sein
geht das überhaupt?
ctx.guild
danke
es geht nur ab 75 server
danke
bitte schicke nur den Code, der für das Problem relevant ist. wo wird der Server denn immer wieder geaddet und was soll stattdessen passieren?
schick Mal ein paar mehr Infos. auf was für einem Server wolltest du etwas installieren? was für ein pckage willst du installieren und wie genau hast du versucht es zu installieren?
dann hast du den primary Key falsch gewählt
class Ticket(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.ticket = "ticket.db"
self.ticketinfos = "ticketinfos.db"
ticket = SlashCommandGroup("ticket", description="Ticket system")
async def check_guild(self, guild):
async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
await ticketinfos.execute("INSERT OR IGNORE INTO ticktinfos (guild) VALUES (?)", (guild,))
await ticketinfos.commit()
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(TutorialView(self.bot))
self.bot.add_view(main(self.bot))
@ticket.command(description="Ticket settings")
@commands.has_permissions(administrator=True)
async def settings(self,ctx, category: Option(discord.CategoryChannel),log: Option(discord.TextChannel), supporter: Option(discord.Role)):
await self.check_guild(ctx.guild)
async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
await ticketinfos.execute(
"UPDATE ticketinfos SET category = ? WHERE guild = ?", (category,ctx.guild )
)
await ticketinfos.commit()
async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
await ticketinfos.execute(
"UPDATE ticketinfos SET team = ? WHERE guild = ?", (supporter,ctx.guild)
)
await ticketinfos.commit()
async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
await ticketinfos.execute(
"UPDATE ticketinfos SET log_channel = ? WHERE guild = ?", (log, ctx.guild)
)
await ticketinfos.commit()```
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: OperationalError: no such table: ticktinfos
Wieso? Die Tabelle gibts, verstehe nicht warum er sagt die gibt es nicht
in der DB auf die zu gugreifst gibt es die tabelle nicht, hast du evtl mehrere DBs und die tabelle evtl ist in einer anderen datenbank?
ne halt nicht also habe mehrere dbs aber ist schon die richtige die ich aufrufe
hast du geprüft ob die tabelle wirklich existiert mit einem DB browser?
ja
hat sich erledigt, hatte in einer anderenzeile ausversehen mich vetippt
Wie gettet man einen server? mit self.bot.get_guild kommt bei mir None raus? Weil mir gesagt wird von sqllite das das format guild nicht akzeptiert wird
in der DB kannst du nur die ID speichern ja. versuchs vlt mal mit fetch_guild
<coroutine object Client.fetch_guild at 0x0000017536194F40>
Ignoring exception in on_application_command_error
Traceback (most recent call last):
File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\gianl\PycharmProjects\botanticide\cogs\ticket.py", line 34, in settings
await self.check_guild(ctx.guild)
File "C:\Users\gianl\PycharmProjects\botanticide\cogs\ticket.py", line 24, in check_guild
await ticketinfos.execute("INSERT OR IGNORE INTO ticketinfos (guild) VALUES (?)", (guild,))
File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 192, in execute
cursor = await self._execute(self._conn.execute, sql, parameters)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 137, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 110, in run
result = function()
^^^^^^^^^^
sqlite3.ProgrammingError: Error binding parameter 1: type 'coroutine' is not supported```
also mit fetch kriege ich fetten fehler
await vergessen?
ey
ich bin komplett verwirrt warum will der jetzt was mit snowflake
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In guild_id: Value "Test Bot Server" is not snowflake.
bzw. was heipt das mit snowflake
funktioniert nur mit der ID, nicht mit dem server namen
ist bei get_guild aber genauso
gefixxt, andere frage finde da nicht in den docs
Habe mit Options(discord.CategoryChannel) eine kategorie bei einem command angegeben, wie kann ich von dem jetzt di id kriegen?
Wie heißt die Option? @snow hatch
Habe das so angeben category: Option(discord.CategoryChannel)
Klappt auch kriege es aber halt als category, will es in die id umwandeln um es in eine db zu stecken
einfach mit .id
Ich habe ezcord installiert und auch importiert und bot= ausgetauscht aber wenn ich jetzt mein Bot starten will kommt dieser Error:
Traceback (most recent call last):
File "C:\Users\CDI\PycharmProjects\discord_bot\main.py", line 5, in <module>
import ezcord
File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\__init__.py", line 6, in <module>
from . Import components, emb, logs, times, utils
File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\components.py", line 27, in <module>
from .internal import get_error_text
File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\internal\__init__.py", line 2, in <module>
from .embed_templates import *
File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\internal\embed_templates.py", line 59, in <module>
ctx: discord.ApplicationContext | discord.Interaction,
TypeError: unsupported operand type(s) for |: 'type' and 'type'
bei ezcord wurde nicht import
ja stimme
ich könnte späte im Fall Mal drüberschauen, weiß aber nicht wann ich Zeit habe
Versuch es bis dahin schonmal bei zu installieren
Das wäre das problem geht leider nicht anders sind zu viele zeichen
Was ist denn dein Error?
ich kriege keinen es gibt einfach nichts aus
Schon getestet ob der Cog geladen wird?
mach ich kurz
Oder komm doch kurz call geht bestimmt schneller
bist du da
@urban glen hey ich möche dir nur was sagen hier muss du die role id machen wenn du auf dein server schon level 2 bist denn gehts nicht
Ok
@next echo ich habe es gerade getestet und es liegt tatsächlich an ezcord. ich habe vergessen, es kompatibel mit python 3.9 zu machen. im nächsten update werde ich das beheben, bis dahin könntest du auf python 3.10 umsteigen, damit es bei dir jetzt schon funktioniert
hey ich wollte fragen wie geht mehr button zu add
wie du mehr buttons zu einem view hinzufügst?
view = discord.ui.View()
view.add_item(button1)
view.add_item(button2)
ja
somit kannst du bis zu 25 button machen und 5 im gleichen row
kann ma choices abfragen ob ein user admin ist?
zb das
elif reason == "Ban eines Admins | Ban - Permanent | 13":
duration = timedelta(days=9999)``` nur ein admin benutzen kann
also das eine bestimmte choice nur von einem admin genutzt werden kann?
ja also nur bestimme choices
hm das müsstest du mit if abfragen innerhalb der methode prüfen
wie geht das wenn ich fragen darf also nur grob
hiermit könntest du arbeiten: https://docs.pycord.dev/en/stable/api/models.html#discord.Member.guild_permissions
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 ...
du könntest auch autocomplete benutzen um admins andere sachen anzuzeigen als normalen usern, beachte dabei aber du dann trotzdem prüfen musst, was eingegeben wurde, da normale user theoretisch auch sachen eingeben können, die ihnen nicht angezeigt werden
dange
py server von germanhub ezcord mit einer req.txt
Wie?
jetzt müsstest du diese neue version bei pycharm auswählen
Wie?
unten rechts bei pycharm solltest du das auswählen können
Ist net bei mir hab nur 3.9 doppelt
hmm
Was jetzt?
klick mal auf interpreter settings, da solltest du python 3.10 auswählen können
wenns nicht klappt keine sorge, ich mach das update gerade fertig
Ne finde aber auch komisch das ich 2 mal 3.9 hab kann ich irgendwie eins von den beiden löschen weil ist ja unnötig 2 mal 3.9 zu haben?
such einfach mal in der suchleiste nach python da sollte ein uninstall button sein
klick mal hier auf show all, da solltest du alle versionen verwalten können
Wo hast das aufgerufen?
unten rechts wenn du auf interpreter settings gehst
das sind virtual environments. da kannst du dir für jedes projekt sozusagen ein eigenes python erstellen, um für jedes projekt unterschiedliche packages zu installieren
wenn du die versionen trotzdem entfernen möchtest, kannst du auf "show all" klicken und dann auf das minus symbol
auch venv gennant 
Timo ist das PyCharm überhaupt richtig weil bei dir steht das du PyCharm Professional benutzt und nicht Community Edition?
@next echo er benutzt pycharm Prof den er als Schüler / Student kostenlos erhalten siehe https://youtu.be/Wan3wtjyQJs
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus dem Video
GitHub Student ► https://education.github.com/
Bild zu JPG umwandeln ► https://bild.online-convert.com/de/umwandeln-in-jpg
GitHub Copilot ► https://github.com/features/copilot
Jetbrains Login ► https://account.jetbrains.com/login
PyCharm Professional ► https://www.jetbrains...
Ahh ok danke für die Info :)
natürlich kannst du die Community Version nutzen hat die gleiche Sachen nur ein paar Kleinigkeiten weniger aber sind keine große Unterschiede
Ok
wird auch im Video gesagt
Was brauch ich davon überhaupt oder brauch ich davon alles David?
Timo?

Oder kannst du mir die Frage beantworten Timo?
Timo?
ich würde nichts davon deinstallieren wenn du die python version noch brauchst
wenn du nur noch python 3.10 brauchst, kannst du 3.9 aber deinstallieren
Frage mich auch warum bei PyCharm 3.9 nur angezeigt wird und net 3.10
Hab da nur 3.9
Muss ich das irgendwie rein ziehen ihn PyCharm?
wenn es in pycharm nicht direkt angezeigt wird, müsstest du in pycharm auswählen, wo du dein python installiert hast
hast du python zum path hinzugefügt? da konnte man einen haken bei der installation setzten
Musste es bei PyCharm selbst einfügen wie geht das das es automatisch gemacht wird?
eigentlich indem man während der installation den haken bei "zum path hinzufügen" setzt
manchmal auch so
Ok egal hab jetzt selbst hinzugefügt lädt grade nochmal runter ihn PyCharm
Warum ist bei 3.9 ein Haken und bei 3.10 nicht und die Packages wurden nicht übertragen
die packages werden nicht übertragen, installier am besten einfach die die du grade brauchst neu
Ok
Und warum steht bei dem einen (discord_bot) und hat ein haken und beim anderen net?
das ist ein v und steht für "virtual environment", also dass es zu einem bestimmtem bot gehört
Kann ich das auch für 3.10 machen?
ja
Wie?
wenn du hier draufklickst, kannst du virtual environment auswählen
?
Meinst das?
Aber ok ist ausgegraut und unten links ist glaub irgendein Error am stehen aber ka was ich machen soll
du musst erst den venv ordner aus deinem projekt löschen
Ok und was bringt das ist der net wichtig?
Hat schon jmd was zu den neuen Usernames gehört? Bzw wie man seinen Code anpassen muss?
aktuell musst du darauf achten, dass du nirgends auf den "discriminator" eines users zugreifst
sonst musst du in der übergangsphase nicht viel beachten
Also gesondert auf den Discriminator? Also sowas wie Discord.User geht noch ?
Da wird dann einfach der neue genommen? Oder wird der alte mit diesem Originally known as genommen
Timo?
ja das sollte noch gehen, da sollte dann irgendwann der neue genommen werden
damit entfernst du nur das alte virtual environment bevor du das neue installierst
Ahh ok danke :)
warum wird bei mir bot.user als None rausgegeben?
weiß nicht, vlt wegen member intent?
habe immer ```py
intents=discord.Intents.all()
problem behoben
kann man herausfinden ob ein Modal abgebrochen wurde?
hm schwierig, bin mir nicht sicher. evtl hiermit: https://docs.pycord.dev/en/stable/api/ui_kit.html#discord.ui.Modal.wait
The library has helpers to help create component-based UIs. Shortcut decorators: Objects: Attributes children, disable_on_timeout, message, timeout. Methods cls View.from_message, def add_item, def...
schwierig
Wie gette ich die commands aus einer SlashCommandGroup also wie krieg ich jeden cmd aus der SlashCommandGroup weil mit bot.commands kriegt man nur die die "nicht" in einer SlashCommandGroup drin sind
bot.walk_application_commands() zum beispiel wenn du alle auf einmal willst
wenn du es nur für eine group brauchst gibt es auch das hier: https://docs.pycord.dev/en/stable/api/application_commands.html#discord.SlashCommandGroup.walk_commands
Command Permission Decorators: Commands: Shortcut Decorators: Objects: Attributes full_parent_name, qualified_id, qualified_name. Methods@ after_invoke,@ before_invoke,@ error, def get_cooldown_ret...
Wenn das geht kriegst du 10 kekse
uwu
falsch angewendet oder ist das normal?
list(bot.walk_application_commands())
Ja aber er kriegt nur die cmds die nicht in einer gruppe sind
ich will ja auch die die in einer gruppe sind yk?
also bei mir gehts
groups können aktuell nur im selben cog erstellt werden ja
mh ok
wie nutze ich die on_timeout() Funktion beim Modal?
copilot hat mir das hier vorgeschlagen:
in deiner modal klasse kannst du einfach die methode on_timeout definieren ja
genau, allerdings weiß ich nicht wie ich die timeout nachricht sende, da self.message nicht funktnioniert
gibt leider auch zu wenig informationen/videos im internet über modals
hmm, du müsstest wahrscheinlich die nachricht, die du bearbeiten möchtest, an das modal übergeben
ne das war nur ein beispiel von copilot, ich will eigentlich, dass bei nem timeout zb ne nachricht in den chat gesendet wird mit "timeout" oder so
und das modal offensichtlich automatisch geschlossen wird (falls das geht)
das mit dem schließen weiß ich auch nicht, aber in dem fall müsstest du evtl den channel an dein modal übergeben und die nachricht dann da rein senden
muss dann mal schauen wie ich das mache, danke trotzdem für deine hilfe
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 ...
schau hier vlt mal vorbei
mach ich danke
Wie kann man mit Webhook Timed Messages machen?
Geht das so? ```py
@bot.event
role_ids = [1109579418961186868, 1071488019158282270, 1109579389349412975, 1109579325331738705]
for role_id in role_ids:
role = discord.utils.get(member.guild.roles, id=role_id)
if role:
await member.add_roles(role)
async def on_member_join(member):
channel = member.guild.get_channel(1108688734733484124)
await channel.send("hi")
Bin gerade am Handy aber glaub das passt so
ich glaube auch, dass das passt
Nein
@bot.event
async def on_member_join(member):
role_ids = [1109579418961186868, 1071488019158282270, 1109579389349412975, 1109579325331738705]
for role_id in role_ids:
role = discord.utils.get(member.guild.roles, id=role_id)
if role:
await member.add_roles(role)
channel = member.guild.get_channel(1108688734733484124)
await channel.send("hi")
Ist das jz richtig?
Ne, ich schick dir nen falschen Code
Ja, ist richtig
Nicht Pingen
wie meinst du das?
Ja
du kannst den Error Händler aktivieren und deaktivieren
hmm
sicher?
kannst du ein paar Screenshots schicken vom Code und von dem Error der in Discord kommt
das ezcord_ muss weg
nur error_handler=False
Warum machst du es nicht?
Kann das nicht
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...
dieser Channel ist nicht dazu gedacht um andere für sich coden zu lassen. wenn du einen Setup Fehler hast, dann schick den Fehler rein
Kannst es ja auch in den Regeln angeben, dass spoon-feeding untersagt ist
(Falls es da noch nd steht)
ich denke Mal das zählt unter "fragen nach fertigen Code"
Tmm oke oke
dann habe ich nh andere frage
Stell diese Frage ._.
undzwar ich habe so nen ticket bot und wenn ich den in meinen anderen cogs anmache gehen die nicht nur der ticket
was?
Sorry, aber ich verstehe deine Frage nicht
Also er zeigt die anderen befehle gar net
Wobei ich in deinem Satz auch keine Frage sehe
außer ticket
tmm @urban glen dann machen wir das schritt für schritt
@urban glen tmm
Ignoring exception in on_connect
Traceback (most recent call last):
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
await self.sync_commands()
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
registered_commands = await self.register_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 599, in register_commands
registered = await register("bulk", data, _log=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 371, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 28: Application command names must be unique
was sagt dieser Fehler code ?
Steht da
Als ganzer Satz
Application command names must be unique
was heißt das mein englisch nicht das beste
Wo kann ich diese anwendungen deulich machen ?
du hast einen slash Command Namen doppelt
weiß man wo ?
Müsstest suchen, wo du 2 gleiche hast
Hast du denn viel Code?
Ja
So um die 30 cogs
Weißt du denn ab welcher Datei das aufgetreten ist?
Eig ab dem test bzw ticket cog
habe dann gerade wieder gelöscht
funktioniert aber net aber das ist glaube schon länger so
Gibt es ein Event was ausgeführt wird wenn ein user einen anderen von dem voice talk 1 u voice talk 2 movt
finde in denn docs nichts
on_voice_state_update glaub ich
Bin aber nicht sicher, hatte damit nie was gemacht
ist das nicht nur wenn der joint und verlässt
beides
Hey weis einer zufälig wie man eine TERMS OF SERVICE linke krigt und PRIVACY POLICY URL
brauchst eine seite
wie mache ich die ?
wie man halt seiten macht
sehr präzise Frage
gibt viele Möglichkeiten, entweder mit HTML, dann kannst du das mit github Pages oder netlify hosten, oder du machst es mit einem Anbieter wie gitbook
das sieht aus wie eine html datei, das könntest du so auch machen
verstehe nicht wie bin einfach zu dumm
Guck dir einem tutorial mal dazu an
hab ich schon .-.
Weiß jemand wie man ein bot panel für ein discord bot macht?
Meinst du so Dashboard mäßig?
Wenn du es leicht haben willst, nutz discord-ext-ipc und flask / flask_discord
Aber dann musst du den Bot und die Website auf einem Server laufen lassen
Und wie installiere ich das btw wo finde ich das ?
So, wie du auch andere Python packages installierst
Ich meine das mit der Webseite btw panel das es auf den bot funktioniert
Also das halt das panel mit dem bot geht
discord.Attachment
das ist relativ kompliziert, dafür müsstest du ein paar neue tools lernen, zb die, die human oben aufgezählt hat
Brauchche Hilfe:
Ignoring exception in command warnings:
Traceback (most recent call last):
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "c:\Users\King Silvio\Downloads\main.py", line 351, in warnings
await ctx.respond(embed=warnings_embed, ephemeral=False)
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 282, in respond
return await self.interaction.response.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 825, in send_message
await self._locked_response(
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1090, in _locked_response
await coro
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 219, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
The above exception was the direct cause of the following exception:```
Traceback (most recent call last):
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 375, in invoke
await injected(ctx)
File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: NotFound: 404 Not Found (error code: 10062): Unknown interaction```
code?
Moin, fänds ganz cool nen Flaggenraten-Discord Bot zu coden.
Ich weiß leider nicht, wie ich da rangehen könnte, ein Embed mit der Flagge mit der Antwort zu "koppeln" um dann zu checken ob die Antwort richtig ist. Wie könnte ich das machen?
die lösungen in einer dm speichern und bei jeder nachricht schauen ob es stimmt
da gibt es mehrere wege, du musst dich nur entscheiden wie du das ganze speicherst. zb dictionary oder json
wenn ja eine neue random lösung mit flagge selecten wenn ich mit einem X reagieren oder so
@novel ore
bedeutet in nem Dictionary müsste ich dann irgendwas und das land speichern?
ja also in dem fall zb den link zu einem flaggen bild
ja gerade im aufbau why
ja true.
Wie könnte ich das dann in nen Slash command einbauen?
line 282
Ist nur eine )
return await self.interaction.response.send_message(
Hab ich nicht
Darunter?
eine frage man kann ja mit is_owner machen das denn command nur server owner machen können oder?
Ja
nein, natürlich nicht 😉
commands.is_owner steht für den bot owner, nicht für server owner
@novel ore
in dem slash command lädst du dann einen eintrag mit land und flagge
hast du schon await ctx.defer() versucht?
@novel ore
kann es sein das du ihn 2 mal hostest
Ja debugen aber davor ging es schon nd
Warum sind die beiden sachen bei mir none?
Bot Owner [None - None]
Bot Users [0]
None my beloved!
wie meinst du
Wie kann ich die db file downloaden so das ich sie bei der Website hinzufügen kann?
[ERROR] Error while executing /unban
Traceback (most recent call last):
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Basti\Documents\Discord Bot\Öffentlicher Bot\Phoenix\cogs\moderation\moderation.py", line 177, in unban
await self.check_user(member.id)
^^^^^^^^^
AttributeError: 'str' object has no attribute 'id'
wie kann ich das bei dem check abfragen
wie deploy ich nh website auf github
@slash_command(description="Entbanne einen User aus dem Server")
@discord.default_permissions(ban_members=True)
@discord.guild_only()
async def unban(
self,
ctx,
member: Option(str, autocomplete=basic_autocomplete(unban_autocomplete)),
reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
):
async with aiosqlite.connect(self.DB2) as db:
member = ctx.guild.get_member_named(member)
await self.check_user(member.id)
Ich weiß ja nicht wie dein unban_autocomplete aussieht, aber versuchs so
Weil bei member, gibst du nur ein String wieder, aber dein check_user, erwartet die Id eines Members
Als integer
Traceback (most recent call last):
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Basti\Documents\Discord Bot\Öffentlicher Bot\Phoenix\cogs\moderation\moderation.py", line 178, in unban
await self.check_user(member.id)
^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
schick doch mal dein unban_autocomplete
Ich weiß ja nicht, was da zurückgegeben wird
async def unban_autocomplete(ctx: discord.AutocompleteContext):
x = await ctx.interaction.guild.bans().flatten()
x = [f'{y.user}' for y in x]
return x
@novel ore
async def unban_autocomplete(ctx: discord.AutocompleteContext):
x = await ctx.interaction.guild.bans().flatten()
x = [f'{y.user}' for y in x]
return x
@slash_command(
name='unban',
description=f"👋🏽{x}Entbanne einen User aus dem Server"
)
@discord.default_permissions(ban_members=True)
@discord.guild_only()
async def _unban(
self,
ctx,
member: Option(str, autocomplete=basic_autocomplete(unban_autocomplete), description="Wähle den User aus, den du entbannen willst", required=True),
reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
):
unban_embed = discord.Embed(
title=f"`✅` Unban {member.name}#{member.discriminator}",
description=f"Du hast den User {member.mention} auf dem Server **{ctx.guild.name}** entbannt.",
color=COLOR,
)
unban_embed.add_field(name="Moderator:", value=f"{ctx.author}", inline=False)
unban_embed.add_field(name="Grund:", value=f"{reason}", inline=False)
try:
async for ban in ctx.guild.bans():
if f'{ban.user}' == f'{member}':
await ctx.guild.unban(ban.user, reason=reason)
except (discord.Forbidden, discord.HTTPException) as e:
error_embed = discord.Embed(
title="`⚠️` Error",
description=f"Es ist ein Fehler aufgetreten.",
color=COLOR
)
error_embed.add_field(name=f"Beim Kicken von {member.mention} ist ein Fehler aufgetreten.", value=f"Bitte versuche es später erneut.", inline=False)
error_embed.add_field(name=f"Fehler Code:", value=f"`{e}`", inline=False)
print(e)
await ctx.respond(embed=error_embed, ephemeral=True)
return
await ctx.respond(embed=unban_embed, ephemeral=False)
``` Das meins probier das mal
du hast das mit der db ja nciht drinnen
ohne db geht es bei mir auch nur das mit check_user geht nciht
hä was laberst du von check_user
für was brauchst du denn nh db
weil man an und ausstellen soll ob man eine dm bekommen soll ioder nicht
ne kann es durch denn check ja nciht sein
async def unban_autocomplete(ctx: discord.AutocompleteContext):
x = await ctx.interaction.guild.bans().flatten()
data = [OptionChoice(name=f"{y.user}", value=str(y.user.id)) for y in x]
return data
@slash_command(description="Entbanne einen User aus dem Server")
@discord.default_permissions(ban_members=True)
@discord.guild_only()
async def unban(
self,
ctx,
member: Option(autocomplete=basic_autocomplete(unban_autocomplete)),
reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
):
async with aiosqlite.connect(self.DB2) as db:
member = await self.bot.fetch_user(member)
await self.check_user(member.id)
@novel ore
Sorry für die etwas späte antwort xD
Wie kann ich machen das anstatt eine Random Zahl von 10-20 genommen wird immer 20 genommen wird?
@commands.Cog.listener()
async def on_message(self, message):
if message.author.bot:
return
if not message.guild:
return
xp = random.randint(10, 20)
xp = 20
Danke

schau dir mal github pages an
Wie kann ich aus der Normalen Naricht ein Embed machen wo der user und die Rolle gepingt wird kriege es irgendwie net hin?
if new_level == 75:
role = message.guild.get_role(1112465062834229339)
await message.author.add_roles(role)
await message.channel.send(f"Glückwunsch du hast die {role.mention} Rolle erhalten!")
den text kannst du als description vom embed nutzen
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...
Krieg es net hin
Weil jetzt weiß er nicht mehr was role.mention bedeutet
embed = discord.Embed( description=f"{role.mention} **MESSAGE**" ) await message.channel.send(embed=embed)
?
sorry für die Störung, aber wie kann ich nochmal mit einem Button click die Nachricht löschen? 😅
Mit await ctx.message.delete() schonmal nicht...
lib?
discord4py (tut aber nicht wirklich was zur Sache, da das auch wie "normal" funktionieren düfte)
Doch eigentlich genauso
ne, funktioniert nicht irgendwie 😅
Hmm
fehlercode:
Weil funktioniert bei mir auch nutze auch die lib 🐢😂
😂
ich meine, is in den DMs, aber das sollte eigentlich kein Problem sein, oder?
lul
jetz gehts oder wie
Hey ne frage ich habe einen eigenen bot programmiert aber in Discord werden keine commands angezeigt warum?
Zeig mal deinen Code, bitte ohne Token. evtll ist er falsch eingerückt
Hier : beim ausführen kommt bei mir keine Fehlermeldung
was ist dein Fehler
Wie codet man am besten ein anti raid System
Bitte in Codeblöcken oder in einem Bild den Error schicken
zb```py
Konfiguration
max_message_count = 5 # Maximale Anzahl von Nachrichten, die ein Benutzer in einer bestimmten Zeitspanne senden kann
time_span = 10 # Zeitspanne (in Sekunden), in der die maximale Anzahl von Nachrichten erlaubt ist
max_mention_count = 5 # Maximale Anzahl von Erwähnungen, die ein Benutzer in einer Nachricht verwenden kann
Globale Variablen
message_count = {}
@bot.event
async def on_message(message):
if message.author == bot.user:
return
author_id = message.author.id
# Anti-Spam-Funktion
if author_id not in message_count:
message_count[author_id] = []
current_time = message.created_at.timestamp()
message_count[author_id] = [time for time in message_count[author_id] if current_time - time <= time_span]
message_count[author_id].append(current_time)
if len(message_count[author_id]) > max_message_count:
await message.delete()
await message.channel.send(f'{message.author.mention}, du sendest zu viele Nachrichten in kurzer Zeit.')
return
# Anti-Mention-Funktion
mention_count = len(message.mentions)
if mention_count > max_mention_count:
await message.delete()
await message.channel.send(f'{message.author.mention}, du erwähnst zu viele Benutzer in einer Nachricht.')
return
await bot.process_commands(message)```
Ja
Das ja nur für msg gibt ja auch noch das man zu viele Kanäle löscht oder erstellt
Ne
Schau dir einfach das Video von Timo an
Es gibt keinen Erorr und ich weiß nicht wie das geht bitte mach diesen Codeblock
#🔰・old-help-rules
Dann bitte schick deinen Code!
Weis wer, wie man das automod abzeichen bekommt?
Von wem ist er bot
Sapphire
das bekommst du wenn dein bot 100 automod regeln erstellt hat
wie meinst du 100 Automod regeln?
gibst da bei dc irgendeine anleitung
bzw eine liste
nutzt du pycord?
wenn du in die einstellungen von einem discord server gehst, kannst du da automod regeln festlegen. bots können sowas auch machen, und sobald dein 100 100 davon erstellt hat sollte er das badge bekommen
ja
und wie können das bots machen? einfach machen das die bots dies aktivieren?
das geht mit guild.create_auto_moderation_rule: https://docs.pycord.dev/en/stable/api/models.html#discord.Guild.create_auto_moderation_rule
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 ...
Wäre nice wenn man eigene private voicechannels eröffnen könnte und diese dann auch z.B mit nem interface bearbeiten könnte
hey ich wollte die seine moldel machen wie ezcord
Ich wollte machen das mein Bot YT abspielen kann
Code:
import discord
from discord.ext import commands
import youtube_dl
class Music(commands.Cog):
def __init__(self, bot):
self.bot = bot
commands.command()
async def join(selfself, ctx):
if ctx.author.voice is None:
await ctx.send("Du befindest dich in keinen Voice Channel!")
voice_channel = ctx.author.voice.channel
if ctx.voice_bot is None:
await voice_channel.connect()
else:
await ctx.voice_bot.move_to(voice_channel)
@commands.command()
async def disconnect(self, ctx):
await ctx.voice_bot.disconnect()
@commands.command()
async def play(self, ctx, url):
ctx.voice_bot.stop()
FFMPEG_OPTIONS = {"before_options": "-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5", "options": "-vn"}
YDL_OPTIONS = {"format":"bestaudio"}
VC = ctx.voice_bot
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)
@commands.command()
async def pause(self, ctx):
await ctx.voice_bot.pause()
await ctx.send("Pausiert ⏸")
@commands.command()
async def pause(self, ctx):
await ctx.voice_bot.pause()
await ctx.send("Fortgesetzt ⏯")
def setup(bot):
bot.add_cog(Music(bot))
Aber hier wird play rot unterstrichen mit dem Grund: Unresolved reference 'play' :35
Zeile 35:
vc:play(source)
voice.play(source)
Nope irgendwas stimmt mit play net
Was denn
Übersetz es doch
Ungelöster Verweis „play“ :35
Ungelöster Verweis 'play' 35
Ja und was soll ich jetzt ändern ist doch die Frage
Welche Version von youtube_dl?
2021.12.17
main
from discord.ext import commands
from music_cog import MusicCog
intents = discord.Intents.default()
intents.voice_states = True # Intents für Voice-Status aktivieren
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents) # Beispiel-Prefix
@bot.event
async def on_ready():
print("Bot ist bereit.")
await bot.change_presence(activity=discord.Game(name="Musik hören"))
bot.add_cog(MusicCog(bot))
bot.run("TOKEN")
Music file
from discord.ext import commands
from youtube_dl import YoutubeDL
class MusicCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.is_playing = False
self.is_paused = False
self.music_queue = []
self.YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True'}
self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
self.vc = None
def search_yt(self, item):
with YoutubeDL(self.YDL_OPTIONS) as ydl:
try:
info = ydl.extract_info("ytsearch:%s" % item, download=False)['entries'][0]
except Exception:
return False
return {'source': info['formats'][0]['url'], 'title': info['title']}
def play_next(self):
if len(self.music_queue) > 0:
self.is_playing = True
m_url = self.music_queue[0][0]['source']
self.music_queue.pop(0)
self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
else:
self.is_playing = False
@commands.command(name="play", aliases=["p", "playing"])
async def play(self, ctx, *args):
query = " ".join(args)
voice_channel = ctx.author.voice.channel
if voice_channel is None:
await ctx.send("Du musst in einem Sprach-Kanal sein!")
elif self.is_paused:
self.vc.resume()
else:
song = self.search_yt(query)
if type(song) == type(True):
await ctx.send("Konnte den Song nicht herunterladen!")
else:
await ctx.send("Song wurde zur Warteschlange hinzugefügt")
self.music_queue.append([song, voice_channel])
if not self.is_playing:
await self.play_music(ctx)
#🔰・old-help-rules
??
Wenn du auf die regeln Verweist, solltest du auch genau sagen, was du meinst
Oder soll Blacklight es riechen?
Die Color Klasse wird Falsch übergeben
Wie bekomme ich alle Cogs als Zahl?
len(bot.extensions)
kein ding
Frage, wenn ich in einem Slash-Command 4x eine Auswahl von Rollen optional habe, und wenn ich die auslasse, welchen Wert haben die dann?
inwiefern?
Naja, will einen Channel mit diesen erstellen, aber diese 4 sind optional.
Sind die dann None?
Wenn du die Optionen auslässt sind die None
Ah 👍. Dann müsste das mit
for roles in [abc, def, ...]:
if role is not None:
Blabla
``` funktionieren...
Try and see
@slash_command(description="Kicke einen User aus dem Server")
@commands.has_permissions(kick_members=True)
@discord.guild_only()
async def kick(
self,
ctx,
member: Option(discord.Member, "Wähle den User aus, den du kicken willst", required=True),
reason: Option(str, "Gib einen Grund an, warum du den User kicken willst", required=False, default="Kein Grund angegeben")
):
async with aiosqlite.connect(self.DB2) as db:
await self.check_user(member.id)
kick_embed = discord.Embed(
title=f" Kick {member.name}#{member.discriminator}",
description=f"Du hast den User {member.mention} aus dem Server **{ctx.guild.name}** gekickt.",
color=discord.Color.green(),
timestamp=datetime.datetime.utcnow()
)
kick_embed.add_field(name="Moderator:", value=f"{ctx.author}", inline=False)
kick_embed.add_field(name="Grund:", value=f"{reason}", inline=False)
kick_embed.set_author(name=f"{ctx.guild.name}", icon_url=member.avatar.url)
kick_embed.set_thumbnail(url=member.avatar.url)
kick_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
try:
await member.kick(reason=reason)
except (discord.Forbidden, discord.HTTPException) as e:
error_embed = discord.Embed(
title="`⚠️` Error",
description=f"Es ist ein Fehler aufgetreten.",
color=discord.Color.green(),
timestamp=datetime.datetime.utcnow()
)
error_embed.add_field(name=f"Beim Kicken von {member.mention} ist ein Fehler aufgetreten.", value=f"Bitte versuche es später erneut.", inline=False)
error_embed.add_field(name=f"Fehler Code:", value=f"```{e}```", inline=False)
error_embed.set_author(name=f"{ctx.guild.name}", icon_url=ctx.bot.user.avatar.url)
error_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
await ctx.respond(embed=error_embed, ephemeral=True)
return
async with db.execute("SELECT dm FROM DM WHERE user_id = ?", (member.id,),) as cursor:
dm = await cursor.fetchone()
if dm is None:
await ctx.respond("Ein Fehler ist aufgetrten", ephemeral=True)
elif dm[0] == 1:
User_embed = discord.Embed(
title="`⚠️` Kick",
description=f"Du wurdest von dem Server **{ctx.guild.name}** gekickt.",
color=discord.Color.green(),
timestamp=datetime.datetime.utcnow()
)
User_embed.add_field(name="Moderator:", value=f"```{ctx.author}```", inline=False)
User_embed.add_field(name="Grund:", value=f"```{reason}```", inline=False)
User_embed.set_author(name=f"{ctx.guild.name}", icon_url=member.avatar.url)
User_embed.set_thumbnail(url=member.avatar.url)
User_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
try:
await member.send(embed=User_embed)
except discord.HTTPException as e:
await ctx.respond("Dem User konnte keine DM gesendet werden.", ephemeral=True)
await ctx.respond(embed=kick_embed, ephemeral=False)
[ERROR] Error while executing /kick
Traceback (most recent call last):
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 372, in invoke
await self.prepare(ctx)
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 292, in prepare
if not await self.can_run(ctx):
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 400, in can_run
return await async_all(predicate(ctx) for predicate in predicates) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\utils.py", line 699, in async_all
for elem in gen:
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 400, in <genexpr>
return await async_all(predicate(ctx) for predicate in predicates) # type: ignore
^^^^^^^^^^^^^^
File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 2138, in predicate
raise MissingPermissions(missing)
discord.ext.commands.errors.MissingPermissions: You are missing Kick Members permission(s) to run this command.
Warum wird mir der error geprintet hab doch keinen print im Code
Du hast keine Kick Rechte
aber das wird ja vpn ezocrd abgefangen
wir kann ich machen das das nciht gepritnet wird
Dir die kick rechte geben 

wow ist aber ein öffentlciher Bot muss da anders hinbekommen
Kannst es mit dem on_application_command_error machen
@commands.Cog.listener()
async def on_application_command_error(self, ctx: discord.ApplicationContext, error: discord.DiscordException):
if isinstance(error, MissingPermissions):
pass
Kannst es so probieren
default also nur anzeigen wenn er die rechte hat
Ja so kann man es auch machen
will ich jja aben nicht
geht nicht
Dann mach halt ein If statement in deinem code
was magst du d3enn
if not ctx.author.guild_permissions.kick_members:
return await ctx.respond("Du hast keine rechte")
ephermal respond..
ik
Hat jemand geile vsc themes?
ne hab selber nichts
wie kann ich machen das wenn auf einem server in 5 sek mehr wie 5 kanäle erstellt wird das dann was passiert weiß nur das ich on_guild_channel_create brauch
Definiere "geil"
Was?
Halt coole idk xd
Echt so?
du musst dir mit timestamp abspeichern, wenn ein Channel erstellt wird. dann kannst du in den Event schauen, ob in den letzten 5 Sekunden zu viele Channels erstellt wurden
dafür brauchst du keine DB, das kannst du auch in einer Liste oder einem dictionary speichern
Ok ich versuch mich mal
du kannst ignored_errors an den bot übergeben
also so ungefähr:
ezcord.Bot(ignored_errors=[commands.MissingPermission])
dann wird das von ezcord ignoriert
Hans jetzt anders gemacht
Bist du heute nochmal Talk
So
!
ah alles klar
…
Was sollen wir jetzt mit deinem Echt so??
Soll ich es riechen
Kann wer helfen bitte?
Ausnahme: AttributeError
module 'discord' has no attribute 'ApplicationContext'
File "C:\Users\WorkHome\Desktop\....\.....\main.py", line 2, in <module>
import ezcord
AttributeError: module 'discord' has no attribute 'ApplicationContext'
du musst d.py deinstallieren und pycord neu installieren
Danke abi
Hilfe
Was heißt das
das etwas falsch eingereiht ist
@commands.slash_command(description="blabla.")
@commands.has_role(blabla0929302)
async def blabla(self, ctx):
desc = ""
counter = 1
async with aiosqlite.connect(self.DB) as db:
async with db.execute("SELECT user_id, credits_count, msg FROM credits WHERE msg > 0 ORDER BY credits_count DESC LIMIT 10") as cursur:
async for user_id, credits, msg in cursur:
desc += f"{counter}. <@{user_id}> - *{credits} Credits* \n"
counter += 1
am besten wäre foto mit zeilen
@urban glenkannst windows taste + shift + s drücken
meinte wegen screenshot
👍
ist in einer class
stimmt
zeig die mal also komplette datei
per dm
Wie codet man ein Feedback System?
Du öffnest deine Entwicklungsumgebung und fängst an code zu schreiben ^^
Kennt wer gute YouTuber für:
Python
Java
Javaskript
HTML
Entscheid dich doch erstmal für eine Sprache ._.
Ist eine allgemeiner Frage
Gibt viele youtuber
https://www.youtube.com/@programmingwithmosh
@molten abyss
I train professional software engineers that companies love to hire.
My courses: http://codewithmosh.com
My blog: http://programmingwithmosh.com
Connect on social media:
http://www.twitter.com/moshhamedani
https://www.facebook.com/programmingwithmosh
#python #javascript #chsarp
für Python kann ich Corey Schäfer und Tech with Tim empfehlen, die sind aber Englisch
Will nix sagen aber bei Python Platz eins Timo
bin mehr für Discord Bots als für Python Grundlagen 
Bei Timo lernt man ja Discord Bot's
Nicht direkt die Grundlagen für Python
||(Timo fühl dich bitte nicht angegriffen davon)||
programmieren mit Kopf ist auch supi
...
