#Allgemeine Hilfe
1 messages · Page 73 of 1
klappt also
nicht ganz wird x2 gesendet
jap
Schau am besten im Taskmanager
Wenn du da 2 mal "Python" stehen hast irgendwo, dann beende die Task
wie kann ich machen wenn man auf ein Button drückt dann wird die Server ID von die Datenbank gelöscht wie geht das?
jo jz danke euch
Welche DB nutzt du denn?
ezcord
das ist aiosqlite xD
ja
Dann sag das auch
naja du bekommst durch ctx.guild die id des Servers bei den der button gedrückt wurde
und dann kannst du dir eine methode dazu schreiben wie sonst auch
Also der SQL befehl könnte sein:
"DELETE FROM die_tabelle WHERE serverid = ?", (interaction.guild.id,)
ja
Würde gerne einen Check machen ob man in der DM ist, wie mach ich das mit ctx?
wie meinst
also wozu genau
Hab nen /command der nur auf nem Server funktionieren soll und wenn man in der DM ist nö schreibt
kannst den auch einf guild_only machen dann wird er in der dm nd angezeigt
:O
garnicht mehr angezeigt? Das ist nice
wie mach ich das
@slash_command(description="Löse ein Gutschein Code ein", guild_only=True)```
zum Beispiel so
dankiii 
Hey kann mir jemand sagen wie ich folgenden code in ein Cog packen kann?
@bot.slash_command()
async def userinfo(
ctx,
user: Option(discord.Member, "Gib einen User an!", default=None) # type: ignore
):
if user is None:
user = ctx.author
embed=discord.Embed(
title="Benutzer Infomationen",
description=f"Informationen über: {user.mention}",
color=0x7f17d3
)
embed.set_thumbnail(url=user.display_avatar.url)
embed.add_field(name=" ", value=" ", inline=False)
embed.add_field(name=" ", value=" ", inline=False)
embed.add_field(name=" ", value=" ", inline=False)
embed.add_field(name="Benutzer Name", value=user.name, inline=True)
embed.add_field(name="Anzeige Name", value=user.display_name, inline=True)
embed.add_field(name="ID", value=user.id, inline=False)
time_R = discord.utils.format_dt(user.created_at, "R")
time_d = discord.utils.format_dt(user.created_at, "d")
embed.add_field(name="Account erstellt", value=f"{time_d} ({time_R})", inline=True)
await ctx.respond(embed=embed)
Wenn ich denn Code in der main.py Datei habe Funktioniert es aber sobald ich ihn in eine Cog packe geht es nicht mehr
Ich weiß das der Code in eine class muss und das bei Zeile 1 "bot." weck muss aber trotzdem funktioniert es 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...
wieso nicht da ist alles was du brauchst
weil ich etwas übersehen habe als ich mir CodingKeks sein code angesehen habe
ich habe bei "async def userinfo()" (Zeile 2 bis 5) das "self," vergessen
Traceback (most recent call last):
File "/home/container/main.py", line 703, in <module>
bot.run(get_config("bot")["tempvoice"])
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 766, in run
return future.result()
^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 745, in runner
await self.start(*args, **kwargs)
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 709, in start
await self.connect(reconnect=reconnect)
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 601, in connect
await self.ws.poll_event()
File "/home/container/.local/lib/python3.11/site-packages/discord/gateway.py", line 605, in poll_event
await self.received_message(msg.data)
File "/home/container/.local/lib/python3.11/site-packages/discord/gateway.py", line 555, in received_message
func(data)
File "/home/container/.local/lib/python3.11/site-packages/discord/state.py", line 818, in parse_interaction_create
interaction = Interaction(data=data, state=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 171, in __init__
self._from_data(data)
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 201, in _from_data
self._guild = Guild(data=self._guild_data, state=self)
^^^^^
NameError: name 'Guild' is not defined. Did you mean: 'guild'?```
Kann mir bitte einer Helfe ich weiß nicht mehr weiter
Wo hast du Guild definiert?
ah ne ist nh package fehler
danke
alles gut habe es maby
@dusty tiger nach 20 minuten geht der bot einfach wieder offline wegen dem gleichen fehler
Traceback (most recent call last):
File "/home/container/main.py", line 703, in <module>
bot.run(get_config("bot")["tempvoice"])
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 766, in run
return future.result()
^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 745, in runner
await self.start(*args, **kwargs)
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 709, in start
await self.connect(reconnect=reconnect)
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 601, in connect
await self.ws.poll_event()
File "/home/container/.local/lib/python3.11/site-packages/discord/gateway.py", line 605, in poll_event
await self.received_message(msg.data)
File "/home/container/.local/lib/python3.11/site-packages/discord/gateway.py", line 555, in received_message
func(data)
File "/home/container/.local/lib/python3.11/site-packages/discord/state.py", line 818, in parse_interaction_create
interaction = Interaction(data=data, state=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 171, in __init__
self._from_data(data)
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 201, in _from_data
self._guild = Guild(data=self._guild_data, state=self)
^^^^^
NameError: name 'Guild' is not defined. Did you mean: 'guild'?```
warum wird margin top gelb unterstrichen?
Wenn du drüber hoverst steht es da
Kann ich beim userinfo command, die profil abzeichen einblenden?
guild und nicht Guild
Discord zeigt meinen Slash Command nichtmehr an 💀
Start noch mal dein dc neu
Hab ich schon 50 mal gemacht, lag daran dass der Cog in nem anderen Ordner war auf einmal
ist er bot on ?
Weiß wer wie ich mit self.bot eine Kategorie gette?
Hey, weiß einer von euch noch wie man den User getted der den bot eingeladen hat?
@commands.Cog.listener()
async def on_guild_join(self, guild):
hier das event glaube den rest weißt du
Ich weiß schon wie das Event heißt mir geht es um die Methode wie man den User kriegt der den bot eingeladen hat xD
guild.owner.name bro
Warum owner??? Es kann auch jmd mit Manage Server perm sein
oh das meinst du timo hat dazu ein video gepostet glaub ich
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...
und wie 😂 ich finde das nicht in der pycord dokumentation
Pycord is a modern, easy to use, feature-rich, and async ready API wrapper for Discord. Features: Modern Pythonic API using async/ await syntax, Sane rate limit handling that prevents 429s, Command...
ich finde es ja da nicht 😂
idk
habe das von den pycord docs genommen ```import discord
bot = discord.Bot()
@bot.command()
async def hello(ctx):
embed = discord.Embed(
title="My Amazing Embed",
description="Embeds are super easy, barely an inconvenience.",
color=discord.Colour.blurple(), # Pycord provides a class with default colors you can choose from
)
embed.add_field(name="A Normal Field", value="A really nice field with some information. The description as well as the fields support markdown!")
embed.add_field(name="Inline Field 1", value="Inline Field 1", inline=True)
embed.add_field(name="Inline Field 2", value="Inline Field 2", inline=True)
embed.add_field(name="Inline Field 3", value="Inline Field 3", inline=True)
embed.set_footer(text="Footer! No markdown here.") # footers can have icons too
embed.set_author(name="Pycord Team", icon_url="https://example.com/link-to-my-image.png")
embed.set_thumbnail(url="https://example.com/link-to-my-thumbnail.png")
embed.set_image(url="https://example.com/link-to-my-banner.png")
await ctx.respond("Hello! Here's a cool embed.", embed=embed) # Send the embed with some text
bot.run("TOKEN")``` bekomme die ganze zeit
AttributeError: module 'discord' has no attribute 'Bot'
kann wer helfen?
Select Menu (Dropdowns) kennt sich einer damit aus?
Stell doch deine Frage einfach
ich will das man mit einem Select menu das man sich verifiziert
discord.Bot gibt es in py-cord soweit ich weiß nd mehr.
Nutz commands.Bot
Und jetzt ?
Mach das doch
ich weiß nicht wie das geht
@native helm https://youtu.be/MO-qFfHjcDE
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...
Musst du googlen und videos schauen
- es gibt mehrere wege
Kommt drauf an wie du es haben willst
z.B. das man nh Rolle bekommt beim Verifizieren oder so
@fierce dove Ich habe das ganze video geschaut
und bei den imports dann?
from discord.ext import commands
Das kann man aber auch googeln
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Layno OS\.venv\lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "C:\Users\vison\Desktop\Layno OS\commands\admin\LRP_Dein-Start.py", line 62, in select_callback
await interaction.response.send_message(embed=embed, ephemeral=True)
UnboundLocalError: local variable 'embed' referenced before assignment``` Fehler codet Kommt
can me help some one play
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Layno OS\.venv\lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "C:\Users\vison\Desktop\Layno OS\commands\admin\LRP_Dein-Start.py", line 63, in select_callback
await interaction.response.send_message(embeds=[V_embed, rp_embed], ephemeral=True)
UnboundLocalError: local variable 'V_embed' referenced before assignment```
Bei mir steht ständig: py aiohttp.client_exceptions.ServerDisconnectedError: Server disconnected oder ```py
sqlite3.OperationalError: database is locked
nö
ich habe das problem das ein fehler kommt " 'NoneType' object has no attribute 'url' " das passiert wenn ein user kein profiel bild hat wie kann ich es machen das da was anderes gesendet wird einfach ein bestimmtes bild dafür
Mit If abfragen?!
habe es schon
@worldly phoenix https://youtu.be/L7eODnl-Iyk
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...
Hier kannst du die user-bilder immer geladen haben
Geht. Das?
Ja, ist nicht mehr aufgetreten. Habe im moment schlechtes internet. Das wäre meine Einzige erklärung denn beim Hoster geht es.
du kannst auch display_avatar.url machen.
Dann wird ein discord standard bild gesetzt, wenn der user keins hat
Danke
Was ist die maximale anzahl von Nachrichten die man in einem Clear command löschen kann?
Error: ```py
[ERROR] Error while executing /clear
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\discord\commands\core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\lenna\OneDrive\Desktop\System\cogs\purgeCmd.py", line 20, in clear
ctx.respond.edit_message(f"✅ {ammount} Nachrichten wurden in {ctx.channel.mention} gelöscht.", ephemeral=True)
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'function' object has no attribute 'edit_message'
await ctx.respond(
f"`🔄️` Löschvorgang...",
ephemeral=True)
await ctx.channel.purge(limit=ammount)
ctx.respond.edit_message(f"`✅` **{ammount}** Nachrichten wurden in {ctx.channel.mention} gelöscht.", ephemeral=True)
Wie mache ich das denn dann?
ctx.repond.edit_Message gibt es nicht 🤨
Muss ich mir das await ctx.respond( f"`🔄️` Löschvorgang...", ephemeral=True) als Objekt definieren um es dann zu bearbeiten?
await ctx.edit
Ja ich glaube so müsst es gehen
message = await ctx.respond(
f"`🔄️` Löschvorgang...",
ephemeral=True)
await ctx.channel.purge(limit=ammount)
message.edit(f"`✅` **{ammount}** Nachrichten wurden in {ctx.channel.mention} gelöscht.", ephemeral=True)
So?
Okay
Du kannst glaube auch
await ctx.edit()
Nehmen
Okay
Der ganze Error bitte
[ERROR] Error while executing /clear
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System\.venv\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\lenna\OneDrive\Desktop\System\.venv\Lib\site-packages\discord\commands\core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\lenna\OneDrive\Desktop\System\cogs\purgeCmd.py", line 20, in clear
await ctx.edit(f"`✅` **{ammount}** Nachrichten wurden in {ctx.channel.mention} gelöscht.")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Interaction.edit_original_response() takes 1 positional argument but 2 were given
Und Code bitte
import discord
import ezcord
from discord import Option
from discord.commands import slash_command
class Clear(ezcord.Cog):
@slash_command(description="× Lösche den verlauf eines Channels")
@discord.default_permissions(manage_messages=True)
@discord.guild_only()
async def clear(self, ctx: discord.ApplicationContext, ammount: Option(int, "Die Anzahl der Nachrichten, die gelöscht werden sollen.", required=True)):
if ammount > 200:
return await ctx.respond("`❌` Die Maximale wert ist **200**!", ephemeral=True)
elif ammount < 0:
return await ctx.respond("`❌` Der Minimale wert ist **1!**", ephemeral=True)
else:
await ctx.respond(
f"`🔄️` Löschvorgang...",
ephemeral=True)
await ctx.channel.purge(limit=ammount)
await ctx.edit(f"`✅` **{ammount}** Nachrichten wurden in {ctx.channel.mention} gelöscht.")
def setup(bot):
bot.add_cog(Clear(bot))
Probier mal so aus wie ich es meinte
Warte
Eigentlich müsste es gehn
Habe auch in meinen Code await ctx.edit
Geht auch nicht
Och
Wieso geht es dann bei mir nicht?
Wir brauchen Timos Hilfe
Ka
import discord
import ezcord
from discord import Option
from discord.commands import slash_command
class Clear(ezcord.Cog):
@slash_command(description="× Lösche den verlauf eines Channels")
@discord.default_permissions(manage_messages=True)
@discord.guild_only()
async def clear(self, ctx: discord.ApplicationContext, ammount: Option(int, "Die Anzahl der Nachrichten, die gelöscht werden sollen.", required=True)):
if ammount > 200:
return await ctx.respond("`❌` Die Maximale wert ist **200**!", ephemeral=True)
elif ammount < 0:
return await ctx.respond("`❌` Der Minimale wert ist **1!**", ephemeral=True)
else:
await ctx.respond(
f"`🔄️` Löschvorgang...",
ephemeral=True)
await ctx.channel.purge(limit=ammount)
await ctx.edit(content=f"`✅` **{ammount}** Nachrichten wurden in {ctx.channel.mention} gelöscht.")
def setup(bot):
bot.add_cog(Clear(bot))
Probiers so
so sollte es eig klappen
Wow
Es hat Funtioniert Danke dir
Kein Ding
Übrigens, diese Abfrage brauchst du eig garnicht
Das kannst du auch bei der Option festlegen
Mit min_value und max_value
@vocal wedge
Danke für den vorschlag, ich probiere das mal aus.
Und ammount wird mit einem m geschrieben xD
Also amount
async def clear(self, ctx: discord.ApplicationContext, ammount: Option(int, "Die Anzahl der Nachrichten, die gelöscht werden sollen.", required=True, min_value=1, max_value=200))
``` so?
ja sollte so klappen.
Probiers einfach mal aus
Jo
Funktioniert, danke dir.
Kein Ding
Wie bekomme ich bei dem eigentlich noch die genaue anzahl von den Nachrichten die gelöscht wurden?
import discord
import ezcord
from discord import Option
from discord.commands import slash_command
class Clear(ezcord.Cog):
@slash_command(description="× Lösche den verlauf eines Channels")
@discord.default_permissions(manage_messages=True)
@discord.guild_only()
async def clear(self, ctx: discord.ApplicationContext, amount: Option(int, "Die Anzahl der Nachrichten, die gelöscht werden sollen.", required=True, min_value=1, max_value=200)):
await ctx.respond(
f"`🔄️` Löschvorgang...",
ephemeral=True)
deleted = await ctx.channel.purge(limit=amount)
await ctx.edit(content=f"`✅` **{len(deleted)}** Nachrichten wurden in {ctx.channel.mention} gelöscht.")
def setup(bot):
bot.add_cog(Clear(bot))
So vielleicht
Kann aber auch falsch sein xD
Probiers
👍🏽
Wenn ich den Bot starte kommt der Fehler ```py
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\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 "C:\Users\lenna\OneDrive\Desktop\System\cogs\embedCmd.py", line 85, in <module>
class LinkButtonsRules(discord.ui.View):
File "C:\Users\lenna\OneDrive\Desktop\System\cogs\embedCmd.py", line 88, in LinkButtonsRules
view = discord.ui.View()
^^^^^^^^^^^^^^^^^
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\discord\ui\view.py", line 186, in init
loop = asyncio.get_running_loop()
^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: no running event loop
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System\main.py", line 22, in <module>
bot = Bot()
^^^^^
File "C:\Users\lenna\OneDrive\Desktop\System\main.py", line 8, in init
self.load_cogs()
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\ezcord\bot.py", line 318, in load_cogs
self.load_extension(cog)
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\discord\cog.py", line 912, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\lenna\OneDrive\Desktop\System.venv\Lib\site-packages\discord\cog.py", line 781, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.embedCmd' raised an error: RuntimeError: no running event loop
Process finished with exit code 1```
Der Fehler kommt wenn ich in der Button Klasse die Link Buttons wieder ein agumentiere.
class LinkButtonsRules(discord.ui.View):
contact = discord.ui.Button(label="⁘ Kontakt", url="https://discord.com/channels/1219292043801657364/1222181530084966421")
view = discord.ui.View()
view.add_item(contact)
@discord.ui.button(label="📚", style=discord.ButtonStyle.primary, disabled=True, custom_id="deco_2")
async def button_emoji_rules(self, button, interaction):
await interaction.response.send_message("📚", ephemeral=True)
bot_adden = discord.ui.Button(label="⁘ DisPost adden",
url="/")
view2 = discord.ui.View()
view2.add_item(bot_adden)
Du probierst einen Task aufzurufen der schon gestartet ist
Könntest im on_ready zum Beispiel abfragen ob der Test schon läuft
Und nur wenn er nicht läuft ihn starten
Kann mir noch jemand dabei helfen?
wie mach ich das
Damit @turbid oasis
ja egal ich checks eh ned
Die Methode einfach in eine If abrage im on_ready machen
Probier mal die asynchrone Funktion außerhalb der Button-Klasse zu definieren
Und füg die dann mal der Button-Klasse als Methode hinzu
Okay
Was verstehst du daran denn nicht? Bzw wo kann man helfen? 😅
also if discord.ext.... == true return
probier mal 'if not' und dann DeinTaskName.is_running()
Damit überprüfst du dann im on_ready ob der Task schon gestartet ist
Und wenn er das nicht ist, dann startest du ihn in der If Abfrage
So...
Naja das hier im if
Das ist fast richtig
wieso nur fast?
Lies den 2. Teil hiervon nochmal
Und ansonsten einfach mal ausprobieren und schauen was für neue Fehler kommen 🙂
ich versteh es ned
Naja, das was du jetzt Überprüfst ist einfach die Methode aus der Dokumentation. Die musst du halt noch entsprechend anpassen
wie genau
Steht hier ziemlich genau drin
was ist mein task name
Probier mal eher sowas, ist schwierig zu erklären
class LinkButtonsRules(discord.ui.View):
contact = discord.ui.Button(label="⁘ Kontakt", url="https://discord.com/channels/1219292043801657364/1222181530084966421")
view = discord.ui.View()
view.add_item(contact)
bot_adden = discord.ui.Button(label="⁘ DisPost adden",
url="/")
view2 = discord.ui.View()
view2.add_item(bot_adden)
async def button_emoji_rules(button, interaction):
await interaction.response.send_message("📚", ephemeral=True)
LinkButtonsRules.button_emoji_rules = button_emoji_rules
Probier's aus
da muss ich jz aber ewig warten
Und dann schau mal ob der Fehler noch kommt oder nicht
Kannst ja auch zum testen die Zeit Verringern...
Klappt sowas @vocal wedge ?
Aber der Button soll ja schon dabei sein.
@discord.ui.button(label="📚", style=discord.ButtonStyle.primary, disabled=True, custom_id="deco_2")
async def button_emoji_rules(self, button, interaction):
await interaction.response.send_message("📚", ephemeral=True)
Kannst du ja im gleichen Prinzip einfügen
Ne discord.errors.ExtensionFailed: Extension 'cogs.embedCmd' raised an error: RuntimeError: no running event loop
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...
Ansonsten ist das hier auch super erklärt
Habe mir das schon angeschaut, leider wird da aber nicht erklärt wie man einen Link Button in einer Button view klasse wie ich definiert.
Ansonsten liegt das Problem vermutlich noch woanders würde ich schätzen
@solid ingot Hast du noch eine idee?
Okay
Mal schauen, Ping mich mal bitte wenn du eine Lösung hast, ist interessant
Und klappt's @turbid oasis ?
Mache ich
Bitte gerne dann 
Wie kann man mit pycord infomationen über denn server abrufen wie z.b der Owner, das erstell Datum, anzahl an Channel/Rollen usw.?
Am besten verwendest du für solche Abfragen ezcord
Und wie mache ich das mit ezcord?
Und was muss ich machen um ezcord benutzen zu können?
ezcord installieren -> pip install ezcord
@fresh fable https://youtu.be/SsY8JOzuGfQ
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
EzCord Docs ► https://ezcord.readthedocs.io/
EzCord GitHub ► https://github.com/tibue99/ezcord
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https:...
Und wie mache ich das dann mit dem abrufen der Informationen?
Gibt es da auch ein Video zu?
Und dann gibt es https://ezcord.readthedocs.io/en/latest/pages/
Am besten Docs Lesen, kann dir da aber gleich auch noch mal was zu schicken.
Ok
Wenn ich mich nicht Täusche irgendwie so:
guild = ezcord.Bot.get_guild(self, 1219292043801657364)
channels = guild.fetch_channels()
roles = guild.fetch_roles()
print(channels)
print(roles)
ticket soll geschlossen werden geht aber nicht @limpid wolf sry4ping
Ja der kann nicht auf den Pool zugreifen also hat keine dB Connection
Mit deiner dB ist alles Fine du hast nur den Code verkackt
Vorallem du meintest ja, dass es beim ersten Mal funktioniert
self.bot.pool gibt es halt nicht
Also denke ich mal, sieht so aus im Error
.
Keine Ahnung, hab noch nicht mit aiomysql gearbeitet
damn, alles gut
Kann auch sein dass das richtig ist aber du kannst halt irgendwie mit Self.bot nicht drauf zugreifen
Das stand ja so im Error
verstehe, so ein müll haha
Wie mache ich es das ein embed gesendet wird und dabei eine rolle die nicht im embed ist gepingt wird muss man das ans embed dranhängen oder wie?
als beispiel
das müsstest du dann als ganz normalen content machen, also unabhängig vom embed noch den ping als text hinzufügen
thx
Kein Ding, nice das du es hinbekommen hast
❤️ 🙏
Wie mache ich es das man auf einen Text klicken kann in dem fall im embed title es funktioniert ja sonst mit text dies funktioniert jedoch nicht im title
[Text](https://www.google.com/)
ja das funktioniert ebend nicht
Achsoo habe deine Nachricht nicht richtig gelesen xD
Im embed title ist das nicht möglich
wie dann das?
?
Schick doch mal den ganzen Embed
Dann editier es halt.
Nutz shareX für screenshots
Dann kannst du es verpixxeln
Aber ich vermute mal, dass dies im embed-author ist.
Da kann man hyperlinks nutzen
ups das bild
Entweder das ist in der description oder in author vom embed
Du kannst hyperlinks überall nutzen, außer im Titel
Ja okay ich probiers mit author
Oha wieso so viel weg gemacht? xD
Sind da so viele Invite Links oder so ?
xD
Ah das ist nicht author, dass ist in der Description.
Author ist da drüber, mit dem kleinen Bild.
Also ist das die Description
Also ich will nur datetime ausprinten...
<module 'datetime' from 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.11_3.11.2032.0_x64__qbz5n2kfra8p0\\Lib\\datetime.py'>
import datetime
print(datetime)```
Was mache ich falsch?
Datetime ist der Name vom Package, probier mal datetime.datetime
print(datetime.datatime)
^^^^^^^^^^^^^^^^^
AttributeError: module 'datetime' has no attribute 'datatime'. Did you mean: 'datetime'?
Du hast dich verschrieben du Profi
Datetime und nicht datatime
ups xD
so heißt es jetzt <class 'datetime.datetime'>
() am Ende?
Danke xD
Noch eine Frage wie holt man sich die avatar url bzw das image da ich in einem embed creator immer im footer das bild haben möchte icon_url=ctx.author.avatar_url funktioniert nämlich nicht
Hi, kann mir jemand helfen bei der Einrichtung Cloudflare? Was genau muss ich mache für panel & node einzurichten.Danke
Was funktioniert denn daran nicht?
Und schau dir doch mal Timos Video zu den docs an, sowas kann man da ganz einfach finden
error halt
Ja damit kann ich absolut nichts anfangen, müsste schon den Error sehen
versuch mal
icon_url=ctx.author.avatar.url
Funktioniert
Aber wie hole ich mir das Server-Icon
ctx.guild.icon.url
Kann man in einer Config.json gifs, Videos und so sachen als link haben und dann bei discord als Video, gif da steht halt dee Link da, aber man kann es ohne auf den Link zu schicken anschauen?
,
nichts verstanden bro
Wie macht man es das man in ankündigungskanälen die nachrichten automatisch veröffentlich werden es gibt dafür nix im internet bzw in der dokumentation
also ein auto publish
Damit @violet pendant
egal bra habe getestet
Und davor am besten Checken mit Channel Type ob es ein announcement Channel ist
ka
Wie kann ich beim Boosten meines Servers eine Nachricht mit dem Bot in einen Channel senden?
Es funktioniert auf verschiedene Arten.
Geht das so? @solid ingot
from discord.ext import commands
import ezcord
import discord
class BoosterMsg(ezcord.Cog):
@commands.Cog.listener()
async def on_member_update(self, interaction):
# booster_role_id = //
booster_channel = await self.bot.fetch_channel(1219294234872516618)
# member = interaction.user
booster_embed = discord.Embed(
description="# :nitro_flex: Danke für deinen Boost!\n"
f"> Danke, dass du unseren Server **{interaction.guild.name}** geboostet hast. Dafür erhälst du die Booster Role und eine Überraschung die du dir im Ticket abholen kannst.",
colour=0xffb5fc,
image="https://cdn.discordapp.com/attachments/1178378490777698324/1178428836027846816/Testoo_2.png?ex=6612fee0&is=660089e0&hm=6a343b212fe213647f4bab4be7c174f314eb9c23191c624ea58ad165df555a77&"
)
# await member.add_roles(birthday_role)
await booster_channel.send(f"{interaction.user.mention}")
await booster_channel.send(embed=booster_embed)
def setup(bot):
bot.add_cog(BoosterMsg(bot))
teste es xD
Wie?
Habe kein Nitro
kannst es doch auch mit einer anderen rolle testen xD
Wie meinst du?
Geht ja nur darum ob das gesendet wird wenn jemand boostet
ja kannst du doch mit der server boost rolle prüfen 😉
Gibts noch nicht
gibt es eig immer..
Ne, bei mir hat noch keiner gehostet
aso
@tawdry leaf Habe das in einem Close Ticket Button. Und den Button können nur Teamler drücken. Möchte aber das den Ticket erstellern noch ein Tanscript gesendet wird.
dann speichere dir den ticket ersteller ab
Wie?
naja sobald der button gedrückt wurde eben eine sql methode ausführen um den user zu speichern in der datenbank gibt bei #1027677692730036294 bestimmt ein beispiel dazu
Hi, wie kann ich in einer Nutton Class den Button deaktivieren, sobald ich ihn drücke
import discord
from discord.ext import commands
from discord.commands import slash_command
class Button(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(TutorialView())
@slash_command()
async def button1(self, ctx):
await ctx.respond("Klicke hier", view=TutorialView())
@slash_command()
async def button2(self, ctx):
button = TutorialButton("Kekse sind cool")
view = discord.ui.View()
view.add_item(button)
await ctx.respond("Klicke hier", view=view)
@slash_command()
async def url_button(self, ctx):
button = discord.ui.Button(label="GitHub", url="https://github.com/tibue99")
view = discord.ui.View()
view.add_item(button)
await ctx.respond("Klicke hier", view=view)
def setup(bot):
bot.add_cog(Button(bot))
class TutorialView(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label="Keks", style=discord.ButtonStyle.primary, emoji="🍪", custom_id="keks", row=2)
async def button_callback1(self, button, interaction):
await interaction.response.send_message("Keks", ephemeral=True)
@discord.ui.button(label="Pizza", style=discord.ButtonStyle.primary, emoji="🍕", custom_id="pizza", row=1)
async def button_callback2(self, button, interaction):
button.disabled = True
# Alle Buttons deaktivieren
# for child in self.children:
# child.disabled = True
await interaction.response.edit_message(view=self)
class TutorialButton(discord.ui.Button):
def __init__(self, label):
super().__init__(label=label, style=discord.ButtonStyle.green)
async def callback(self, interaction):
await interaction.response.send_message("Hey!", ephemeral=True)
@thick haven da ist ein zb
Ich möchte aber das der Button beim callback deaktiviert wird aslo wenn der button in ner seperaten klasse is
def __init__(self, label):
super().__init__(label=label, style=discord.ButtonStyle.green)
async def callback(self, interaction):
await interaction.response.send_message("Hey!", ephemeral=True)```
class TutorialButton(discord.ui.Button):
def __init__(self, label):
super().__init__(label=label, style=discord.ButtonStyle.green)
button.disabled = False
async def callback(self, interaction):
button.disabled = True
await interaction.response.send_message("Hey!", ephemeral=True)
``` ich glaube mal so geht das
Woher soll er wissen was button ist
du kannst auch mit self. machen
Der Button geht tzd noch
demm idk
[ERROR] Error while executing /poll create
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 59, in create
await ctx.send_modal(PollModal(bot=self.bot))
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\ezcord\i18n.py", line 289, in _localize_modal
return await INTERACTION_MODAL(self, modal)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\interactions.py", line 1178, in send_modal
await self._locked_response(
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\interactions.py", line 1243, in _locked_response
await coro
File "C:\Users\nicor\OneDrive\Desktop\helper stern\venv\Lib\site-packages\discord\webhook\async_.py", line 220, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction``` **code** ```py
@poll.command(description="Create a Poll")
@discord.guild_only()
async def create(self, ctx):
await ctx.send_modal(PollModal(bot=self.bot))
Oh mann
idk warum :D
Error
ist doch da..
@vocal wedge hier ist er error
Kann es sein das du schlechtes Internet hattest?
ne
hab gefix
Nice
Oh Mann 
ja
Wie kann man beim Embed leere Zeilen einfügen?
Ich möchte nicht das footer so nah am Text ist sondern eine leere Zeile dazwischen ist, es funktioniert aber nicht, egal ob ich ein neues field erstelle wo Name und value " " sind oder ob ich \n benutze, geht beides nicht
da müsstest du ein unsichtbares zeichen einfügen nach dem \n, zb beispiel so
ok
Es ist jemand gejoint und ich bekomme diesen Fehler.
Code:
from discord.ext import commands
import ezcord
import discord
class BoosterMsg(ezcord.Cog):
@commands.Cog.listener()
async def on_member_update(self, interaction):
# booster_role_id = //
booster_channel = await self.bot.fetch_channel(1219294234872516618)
# member = interaction.user
booster_embed = discord.Embed(
description="# :nitro_flex: Danke für deinen Boost!\n"
f"> Danke.",
colour=0xffb5fc
)
# await member.add_roles(birthday_role)
await booster_channel.send(f"{interaction.user.mention}")
await booster_channel.send(embed=booster_embed)
def setup(bot):
bot.add_cog(BoosterMsg(bot))
die parameter von on_member_update sind falsch
^Kann ich nach einem interaction.edit() keine neue anchricht senden mit interaction,.respond
hallö
import discord
import ezcord
from dotenv import load_dotenv
colors = {
logging.DEBUG: "blue",
logging.INFO: Fore.MAGENTA,
}
# call this function before creating the bot
ezcord.set_log(
log_format=ezcord.LogFormat.default,
colors=colors,
webhook_url="webhook_URL",
)
log.debug("This is a debug message")
log.info("This is an info message")
ezcord.custom_log("CUSTOM", "This is a message with a custom log level")
bot.add_help_command()
intents = discord.Intents.all()
bot = ezcord.Bot(intents=intents,
language="de",
owner_id="1206653752338288781",
ready_event=ezcord.ReadyEvent.table_vertical_bold
)
bot.add_status_changer(
[
discord.Game("Bitte Warten"),
],
)
if __name__ == "__main__":
bot.load_cogs(
"commands",
custom_log_level="CMDS",
log_color="blue",
subdirectories=True
)
bot.load_cogs(
"events",
custom_log_level="EVENTS",
log_color="blue",
subdirectories=True
)
load_dotenv()
bot.run(os.getenv("TOKEN"))```
Welche brauche ich denn?
hat wer ne idee was genau ich für den sprachkanal graphen machen soll, also was genau soll der graph anzeigen, habe bisher nur den Nachrichten graphen
Code
language="auto", default_language="en",``` Fehler
Klick auf den Link im embed
Aber Funktioniert das sonst wenn jemand boosted?
Klar
Okay, also brauche ich als parameter after, before?
Ja
Aber dein Code is zurzeit eh nicht so gut.
Dein Code is grad so, dass bei ner Member Änderung dann nh Booster Message geschickt wird.
d.H. wenn ich jetzt mein Profilbild ändern würde, würde eine Booster Nachricht kommen.
async def on_member_update(self, before, after):
if before.premium_since is None and after.premium_since is not None:
print(f"{after.mention} hat den Server gerade geboostet")
So könntest du es machen
hey könnte mir einer helfen bei dem Logging in ezcord?
Das geht?
Das is der weg wie man das macht, ja.
Weil Dein Code is grad so, dass bei ner Member Änderung dann nh Booster Message geschickt wird.
d.H. wenn ich jetzt mein Profilbild ändern würde, würde eine Booster Nachricht kommen.
Okay, wird das denn wenn ein Member 2 mal hintereinander boostet auch 2 mal gesendet?
Okay, wie kann ich denn anzeigen wie viele Boosts der Server dann hat? Also z.b. (Server boosts 1 )
Ich bin nicht allwissend.
ich schaue selber in den Docs nach, probier du doch auch mal da nach zu schauen
Okay
Kann mir jemand sagen was das Problem bei der error meldung sein könnte?
Traceback (most recent call last):
File "C:\Users\Py Coding\Desktop\FoxBot\main_FoxBot.py", line 6, in <module>
from discord.commands import Option, slash_command
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands\__init__.py", line 26, in <module>
from .context import *
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands\context.py", line 69, in <module>
class ApplicationContext(discord.abc.Messageable):
File "C:\Users\Py Coding\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands\context.py", line 271, in ApplicationContext
@discord.utils.copy_doc(Interaction.respond)
^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'Interaction' has no attribute 'respond'. Did you mean: 'response'?
Ich bekomme es einfach nicht hin, die letzte Zeile Verwirrt mich halt
AttributeError: type object 'Interaction' has no attribute 'respond'. Did you mean: 'response'?
response
?
Guck doch auf dem error

interaction.response
@fresh fable
und nicht respond
Code
ja das kann ich auch lesen aber das einzige wo ich respond stehen habe ist in meinen Crogs und da müss ja respond stehen
Hab ihn schon gesagt
@fierce dove
er hat respond geschrieben bei button
ich habe keine buttons
Denn send doch code
guilds_count = len(self.guilds)
guilds = self.guilds
count = 1
print(f"{colorama.Fore.WHITE}[{colorama.Fore.RED}INFO{colorama.Fore.WHITE}] {colorama.Fore.RESET} DisPost on {colorama.Fore.RED}{guilds_count}{colorama.Fore.RESET} Servers:")
for guild in guilds:
print(f"{colorama.Fore.WHITE}[{colorama.Fore.BLUE}{count}{colorama.Fore.WHITE}] {colorama.Fore.RESET}{guild.name} ({colorama.Fore.RED}{guild.id}{colorama.Fore.RESET})")
count += 1
So okay oder kann man den auch noch an einer Stelle verbessern?
Ist ok
Ok
wo ist denn der fehler?
Ich weiß es ja net
habe keine buttons
Doch hast du
@ruby sparrow Habe ich es wo Falsch hingepackt?
Der Bot ist auf 4 Servern
Ja ?
Aber da wird ja kein Server trotz der loop angezeigt
Sicherlich doch hast du
Ich gucke gleich
👍🏻
import discord
import ezcord
import yaml
import colorama
with open("lang/embeds/de.yaml", encoding="utf-8") as file:
de = yaml.safe_load(file)
with open("lang/commands/cmd.yaml", encoding="utf-8") as file:
lang = yaml.safe_load(file)
class Bot(ezcord.Bot):
def __init__(self):
super().__init__(intents=discord.Intents.all(), language="en")
post_count = 0
self.load_cogs()
guilds_count = len(self.guilds)
guilds = self.guilds
count = 1
print(f"{colorama.Fore.WHITE}[{colorama.Fore.RED}INFO{colorama.Fore.WHITE}] {colorama.Fore.RESET} DisPost on {colorama.Fore.RED}{guilds_count}{colorama.Fore.RESET} Servers:")
for guild in guilds:
print(f"{colorama.Fore.WHITE}[{colorama.Fore.BLUE}{count}{colorama.Fore.WHITE}] {colorama.Fore.RESET}{guild.name} ({colorama.Fore.RED}{guild.id}{colorama.Fore.RESET})")
count += 1
if __name__ == "__main__":
bot = Bot()
bot.localize_commands(lang, "en-US")
bot.run()
Schaue dir gerne meinen Code an, ich finde keine button
guilds = self.guilds
print("[INFO] DisPost on {} Servers:".format(guilds_count))
for index, guild in enumerate(guilds, start=1):
print("[{}] {} ({})".format(index, guild.name, guild.id))```
#🔰・old-help-rules
Das geht?
Ja müsste
Kann ich da wieder colorama verwenden?
ja
Was muss ich im code suchen um denn button zu finden?
Wieso willst du ein f string
Weil kann ja einfach mit VS Code alle Dateien durchsuchen lassen
Muss ích ja für colorama?
Sonst wird das ja alles als Text geprinted.
import discord
import ezcord
import yaml
import colorama
with open("lang/embeds/de.yaml", encoding="utf-8") as file:
de = yaml.safe_load(file)
with open("lang/commands/cmd.yaml", encoding="utf-8") as file:
lang = yaml.safe_load(file)
class Bot(ezcord.Bot):
def __init__(self):
super().__init__(intents=discord.Intents.all(), language="en")
async def on_ready(self):
post_count = 0
self.load_cogs()
guilds_count = len(self.guilds)
print(f"{colorama.Fore.WHITE}[{colorama.Fore.RED}INFO{colorama.Fore.WHITE}] {colorama.Fore.RESET} DisPost on {colorama.Fore.RED}{guilds_count}{colorama.Fore.RESET} Servers:")
for index, guild in enumerate(self.guilds, start=1):
print(f"{colorama.Fore.WHITE}[{colorama.Fore.BLUE}{index}{colorama.Fore.WHITE}] {colorama.Fore.RESET}{guild.name} ({colorama.Fore.RED}{guild.id}{colorama.Fore.RESET})")
if __name__ == "__main__":
bot = Bot()
bot.localize_commands(lang, "en-US")
bot.run()```
Was meinst du?
Damit ich einen button habe kann muss ja irgend etwas im Code stehen und das kann VS Code automatisch aus allen dateien suchen
Wird immer noch nicht richtig angezeigt.
Steht nix in meinen Dateien
Und das hat was mit Contest zu tun
@ruby sparrow Wenn ich nach respond suche kommt das alles
Geh mal in help.py
bin ich
zeig mal den code
import discord
from discord.ext import commands
from discord.commands import slash_command
class Help(commands.Cog):
def __init__(self, bot):
self.bot = bot
#--------------------------------------------------------------------------------------------------------------------#
@slash_command(description="🦊 x ʟᴀꜱꜱ ᴅɪʀ ᴅᴀꜱ ʜᴇʟᴘ ᴇᴍʙᴇᴅ ᴀɴᴢᴇɪɢᴇɴ!")
async def help(
self,
ctx:discord.ApplicationContext
):
embedImg = discord.Embed()
embedImg.set_image(url="https://cdn.discordapp.com/attachments/1223227226238222398/1223227288628232272/Commands.png?ex=66191630&is=6606a130&hm=2211e4207ff49e9dee941bedfb3cc1c1a171f18dd67a389d21b0dc821995147b&")
embedTxt = discord.Embed()
embedTxt.add_field(name="", value="", inline=False)
embedTxt.add_field(name="", value="\n\u200b\n\u200b", inline=False)
embedTxt.add_field(name="", value="", inline=False)
embedTxt.set_foother(text="Bot created by FeuerFuchs")
await ctx.respond(embeds=[embedImg, embedTxt])
#--------------------------------------------------------------------------------------------------------------------#
def setup(bot):
bot.add_cog(Help(bot))
Komm mal dm
So? ```py
from discord.ext import commands
import ezcord
import discord
class BoosterMsg(ezcord.Cog):
@commands.Cog.listener()
async def on_member_update(self, before, after):
if before.premium_since is None and after.premium_since is not None:
# booster_role_id = //
# member = interaction.user
booster_channel = await self.bot.fetch_channel(1219294234872516618)
booster_embed = discord.Embed(
description="# :nitro_flex: Danke für deinen Boost!\n"
f"> Danke, dass du unseren Server {after.guild.name} geboostet hast.",
colour=0xffb5fc
)
# await member.add_roles(birthday_role)
await booster_channel.send(f"{after.user.mention}")
await booster_channel.send(embed=booster_embed)
def setup(bot):
bot.add_cog(BoosterMsg(bot))
Probier's!
Warum schickst du zwei nachrichten?
Dan gebe ich dir Spätestens Montag eine Rückmeldung.
await booster_channel.send(message=f"{after.user.mention}", embed=booster_embed)
``` So?
nein
Also content anstatt message?
Es gibt kein "message"-parameter
Ja.
Okay
Ignoring exception in view <ManageTicket timeout=None children=4> for item <Button style=<ButtonStyle.danger: 4> url=None disabled=True label='⁘ Close ⁘' emoji=None row=None>:
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System\.venv\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "C:\Users\lenna\OneDrive\Desktop\System\cogs\embedCmd.py", line 262, in button_close
bot=self.bot,
^^^^^^^^
AttributeError: 'ManageTicket' object has no attribute 'bot'
Was mache ich dann da?
async def button_close(self, button, interaction):
today = datetime.now()
formatted_date = today.strftime("%d.%m | %H:%M")
transcript = await chat_exporter.export(
interaction.channel,
limit=450,
bot=self.bot,
tz_info="Europe/Berlin"
)
self.bot -> interaction.client
Okay
Kann mir jemand Helfen, ich bekomme den User nicht gegettet um ihm ein Transcrpit zu senden.
Code & Error
Gibts nicht, ich habe halt bei einem Close Button das das Transcript an den Ersteller des Tickets gesendet wird, aber der User selber kann das Ticket ja nicht Schließen.
Ich kann damit nicht viel anfangen
Kann ich dir das Mal per dm schicken?
Mach
Oky
@discord.ui.button(label="Close", style=discord.ButtonStyle.blurple, emoji="🔐", row=1, custom_id="close_ticket")
async def close_ticket(self, button, interaction):
team_role_id = await db.get_teamrole(interaction.guild.id)
if team_role_id in [role.id for role in interaction.user.roles]:
server_id = interaction.guild.id
embed = discord.Embed(
title="Close Ticket",
description="Deleting Ticket in less than `5 Seconds`... ⏳\n\n"
"_If not, you can do it manually!_",
color=discord.Color.dark_red()
)
await interaction.response.edit_message(view=self)
await interaction.followup.send(embed=embed)
transcript = await chat_exporter.export(interaction.channel)
if transcript is None:
return
transcript_file = discord.File(
io.BytesIO(transcript.encode()),
filename=f"transcript-{interaction.channel.name}.html",
)
log_channel_id = await db.get_logs_channel(server_id)
log_channel = interaction.client.get_channel(log_channel_id)
message = await log_channel.send(file=transcript_file)
link = await chat_exporter.link(message)
topic = interaction.channel.topic
ticket_owner_name = topic.split("Ticket for ")[1].split(".")[0]
ticket_owner = discord.utils.get(interaction.guild.members, name=ticket_owner_name)
if ticket_owner:
userembed = discord.Embed(
title="Your ticket has been closed",
description=f"Your ticket has been closed.\n"
f"{interaction.channel.name}\n"
f"You can find the transcript [here]({link}).",
color=discord.Color.blue(),
)
await ticket_owner.send(embed=userembed)
await asyncio.sleep(5)
await interaction.channel.delete()
else:
embed = discord.Embed(
title="Unauthorized",
description=f"You do not have the necessary role close tickets.",
color=discord.Color.red()
)
await interaction.response.send_message(embed=embed)```
????
Warum schickst du einfach random code, ohne was zu erklären??
ticket_owner_name = topic.split("Ticket for ")[1].split(".")[0] Was macht das?
Man kann in nem Channel eine Beschreibung setzen.
Und in dem Code von @ruby sparrow ist es vermutlich so, dass der ticket owner name als beschreibung gesetzt wird.
Also wird mit dieser Zeile der Name des Ticket Owners genommen
Und nächstes mal kannst du auch einfach erklären und nicht random nh Code schicken ohne was dazu zu sagen!!
ja ok
Meine Ticket Topic sieht so aus, wie bekomme ich da den User raus?
Das kann komplizierter werden bei dieser beschreibung
Würde aber nicht empfehlen es so zu machen
am besten mit einer datenbank.
Guild Id, Channel Id und Member ID zu diesem Channel speichern.
Und dann einfach abfragen anhand der Channel ID wer der Ticket Owner ist
Okay, ich versuche es
Wenn du keine DB willst, kannst du auch durch die Beschreibung nach der ID iterieren und damit den User getten
Und wie komme ich an die ID?
Aber db ist auf Dauer sinnvoller
Ka aber es gibt vllt ne Methode um die Beschreibung zu getten und dann einfach nach der ID suchen
Ich versuche es mal mit einer db
Aber weis nicht, das letzte mal als ich versuche habe eine db zu machen kamen nur Fehler
DBs sind gar nicht so schwer. Schau dir einfach die Videos von Timo dazu an da wird alles echt gut erklärt
Okay
user = guild.get_member(int(channel.topic.split('[')[1].split(']')[0]))```
Danke lara, habe das jedoch jetzt mit einer Datenbank gelöst, wodurch ich jetzt auch viel Mehr abfragen kann

gefixxt?
in welcher klasse benutzt du das (wenn es nd geht)
ja
wieso geht nicht , ephemeral=True ```py
await ctx.respond("The setup was completed successfully", ephemeral=True)
fehler?
komm nix
Main
?
Auf deine Frage
Wie meinst du?
Hey, ich habe ein kleines Problem mir den Dashboard tutorials . Ich bin gerade dabei den Bot zu erstellen.
Doch nach dem genauen befolgen des tutorials und nochmals überprüfen weiß ich immer noch nicht weiter.
Ich habe die Serverroute erstellt und wollte den Bot starten . Doch ich bekam den Fehler raus das "self" fehlt . ich habe jedoch alles nach dem Video gemacht bzw. denke ich das . Aber ich muss ja ein Fehler gemacht haben weil sonst würde es ja gehen . Wäre sehr freundlich wenn mir einer helfen könnt.
code und fehler kommen jz:
Kannst du deine Main classe mal senden, bis auf den Token?
habe denn token mit einer .env datei geladen der íst dann nd in der main
oder meinst du ein anderen Token
Also erstes solltest du in Zeile 8 anstatt deafault() -> all() machen.
okay , habe ich gemacht.
Hast du auf Developers alle intents aktiviert?
https://discord.com/develooers hm?
Uff
https://discord.dev reicht auch aus xD
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
Aso, wusste ich nicht.
Wozu hast du denn?
das war so in dem Tutorial damit der bot und das dashboard miteiner funktionieren
Achso, okay. Ja das kann gut sein, ehem im Fehlercode steht ja das das self Objekt fehlt.
Ja genau, aber ich weiß nicht wo ich es einbauen soll
Versuch mal hinter dem self, bot oder Client zu schreiben.
Okay ein Moment .
habe das jz anstelle des unterstriches Client oder Bot probiert , war aber trotzdem der gleiche fehler .
Dann weiß ich es leider auch nicht, tut mir leid. Bestimmt kann dir aber jemand anderes Helfen.
Okay, trotzdem danke
Gerne
Hey Zusammen Könnte mir einer helfen Mit termius
Jo, was los?
Ich weiß nicht wo ich Meinen Public Key Hinzufügen soll
ich habe bei meinem hoster meinen Public key hin gemacht
Von Terminus?
wie meinst du
Hast du dir schon einen Termius Key erstellt?
Dann solltest du das ersteinmal machen
Nein ich mache das mit Puttygen
Achso, ja Dan mach das so.
Schaue sofort
habe passwort Und alles ausgeblendet
@vocal wedge Geht schon Habe es jetzt mit Putty gemacht
Okay, wenn du noch irgendwo hilfe brauchst sag einfach Bescheid.
lade grade das panel herunter und gleich ein them
Sagt mal, kann man von einem SelectMenu aus auch mit einem Modal responden?
Klar
Musst ja erstmal ein modal bilden und dann normal responsen. Modals kannst du auch bei Buttons, Slash Commands, Apps und ein paar anderen wegen responden. Das einzige was meines Wissens nach nicht geht ist ein modal auf eine Message zurückzugeben
I know.
War mir nur nicht sicher, ob das auch bei einem SelectMenu geht.
Kannst halt einfach abfragen welche Option der user angeklickt hat und dann kannst du mit ìnteraction.user.send_modal() ein modal senden
Ich weiß schon wie ich das mache
und wenn du mal meinen Namen anschaust, merkst du, dass ich eine andere Lib nutze ^^
Hast versucht neu zu istallieren?
9x
auch schon bei github mit @develop und so
Hast du mal nach geschaut ob auch wirklich alles Deinstalliert wude?
yo
Uff
wie kann ich ein bild in mein canva hinzufügen mit easy_pil
Erstelle ein Objekt mit deinem Bild, welches du hinzufügen möchtest:
image_element = ImageElement(url='BILD_URL')
Füge nun das Bild in Canva hinzu:
canva.add_element(image_element)
von welcher lib ist ImageElement
Uff, war ein Fehler, mach da easy_pill hin
Probiere das:
from PIL import Image
# Öffne ein Bild
image = Image.open("beispielbild.jpg")
# Bearbeite das Bild
image_resized = image.resize((width, height))
# Speichere das bearbeitete Bild
image_resized.save("bearbeitetes_bild.jpg")
danke
Hallo weiß wer wie ich es mache das nach dem ich den embed editiere das die file dann auch verschwindet?
@commands.slash_command(name = "help", description = "Do you need a small overview!")
async def help(self, ctx:discord.ApplicationContext):
emb = discord.Embed(description=f"""# {Emojis.settings_emoji} Help menu
{Emojis.dot_emoji} Here you can see all the commands that {bot.user.name} has
Please use the Buttons below to explore the\ncorresponding commands\n### Table of contents:
> {Emojis.dot_emoji} Mod commands
> {Emojis.dot_emoji} Fun commands
> {Emojis.dot_emoji} Level System commands part 1
> {Emojis.dot_emoji} Level System commands part 2
**Bot links:**
{Emojis.dot_emoji} Support server:
{Emojis.dot_emoji} Githup:
""", color=bot_colour)
file = discord.File('assets/images/shiro_help_banner.png', filename='shiro_help_banner.png')
emb.set_image(url=f"attachment://shiro_help_banner.png")
await ctx.respond(embed=emb, view=HelpMenüSelect(), file=file)
files=[] vermutlich
Laut internet
oder attachment=[]
jo danke jetzt geht's
👍🏽
Meine Commands laden nicht wenn ich denn bot auf mehreren server habe
hast du ein event
knnst du kurz call
ne
Jungs es ist 2 Uhr
und?
Wir bei PG
#💬・chat ?
Hast du die Debug Guild noch drin ?
Mach mal das Leerzeichen vor member weg. Ist eines zu viel da
Weiß wer wie ich das machen das die so "clean" sind also alle immer die gleiche länge haben (die schwarzen felder)
ja
Das hat nix mit dem Problem zutun
Könnte sein das du ein Falsches "Option" importiert hast
Wie kann ich alle Member die eine Rolle haben in einem Count + 1 zählen?
news_ping_count = 0
for role in interaction.guild.users:
if role.id == 1222901589526974605:
news_ping_count += 1
Error:
Ignoring exception in view <SelectRoleOption timeout=None children=2> for item <Select type=<ComponentType.string_select: 3> placeholder='⁘ Wähle eien Option' min_values=1 max_values=1 options=[<SelectOption label='→ Level Rollen' value='→ Level Rollen' description='× Siehe dir unsere Aktivitäts Rollen an.' emoji=None default=False>, <SelectOption label='→ Belohnungs Rollen' value='→ Belohnungs Rollen' description='× Dies sind unsere Belohnungs Rollen!' emoji=None default=False>, <SelectOption label='→ Hobby Rollen' value='→ Hobby Rollen' description='× Hobbys die du Auswählen kannst.' emoji=None default=False>, <SelectOption label='→ Benachrichtigungs Rollen' value='→ Benachrichtigungs Rollen' description='× Rolle für alle Benachrichtigungen.' emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\lenna\OneDrive\Desktop\System\.venv\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "C:\Users\lenna\OneDrive\Desktop\System\cogs\embedCmd.py", line 391, in select_role
for role in interaction.guild.users:
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Guild' object has no attribute 'users'
Um diesen Fehler zu lösen, kannst du die Docs zur hilfe nehmen. https://docs.pycord.dev/en/stable/api/models.html#discord.Guild
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 ...
Bei "Guild" gibt es keine "users"
Ja, aber muss ich self nehmen?
???????
Sondern members
Okay
Okay, habe dazu iwi nichts gefunden.
Musst da nur nach discord.Guild suchen und dann such einfach das was am ähnlichsten für users is
Ok
Das muss raus, da er die Commands nur auf dem Debug Guild anzeigt
Keine Ergebnisse für show_categories gefunden. Meintest du Folgendes?
hm keine docs für ezcord
Keine Ergebnisse für ezcord gefunden. Meintest du Folgendes?
nvm
#🔗・bots für sowas
Verstehe das nicht.
Ich hab mal ne Frage, wie heißt die permissions im code für timeout member
ich hab timeout_members und timeout_member versuch aber das gibt es nicht
@quasi frost
danke
Wie kann ich jetzt machen das, das Embed jede Minute gesendet wird??
Code:
async def livestock(self, ctx):
num_lines = self.count_lines()
embed = discord.Embed(
title="Stock",
description=f"""**__1 Month Stock__** :
 Tokens → {num_lines}""",
color=discord.Color.blue()
)
await ctx.channel.send(embed=embed)```
Das embed soll jede minute gesendet werden?
Dann solltest du loops nutzen
@tasks.loop(minute=1)
async def deine_lool(self):
...
habs danke
eyoo. wie mach ich dass damit statt 1000 bekomme. einfach 1.000 bekomme? also einen punkt pro tausender
z.B. so:
print("{:,.0f}".format(1000).replace(",", "."))
Das sollte man aber wissen
soll das hier stehen
den ich suche nach den timeout permissions
also:
@discord.default_permissions()
moderate_members
ja habs nachher auch herausgefunden hahaha
hab drauf geklickt
ahhh
Da steht ja (timeout)
nicht gesehen sorry
Ich bin mir ziemlich sicher was das wird
Falls du an einen Boost Bot denkst dann ist es das nicht
Ne nur den stock
An 1m boosts
das soll halt zeigen wei viele Tokens in stock sind
Stark
sieht ja interessant aus auf deinem server dann 🤣
den Boost Bot reselle ich
des andere ist was anderes
auch sehr fragwürdig
Ich habe in meinem Code ein Channel Select. Dort habe ich auch public_threads Kanäle aktiviert. Aber trotzdem werden keine public_thred Kanäle angezeigt. Ich bin auch mal alle Kanälle durchgegangen und hab es mir geprintet (Bild 2). Dort sieht man das einige Kanäle vorhanden sind und auch public_thread sind
Werden sie nur nicht angezeigt oder werden sie auch nicht gefunden wenn du den Namen des public_thread in den Dropdown reinschreibst?
Also so
Werden auch nicht gefunden wenn ich den Namen eingebe
Hat der Bot genug rechte?
Ja
Schick mal die Liste die kommt wenn du pip freeze eingibst
Und bitte achte darauf dass du deinen Token nicht leakst. Ich hab deine Nachricht jetzt gelöscht aber bitte resette deinen Token trotzdem @rough karma
was isn das
Hast du noch eine Idee
Deine Python-Version ist vermutlich zu alt
welche liste
das was halt kommt wenn du pip freeze in die Konsole eingibst
Wie kann ich custom emojis in einen code machen
und muss der emoji auf meinem server sein?
Ja der emoji muss auf deinem serevr sein mach dann \dein emoji
Danke
Danke
Weiß jnd wie man diese Apps codet? Also wenn man lange auf eine Nachricht drück
@message_command(name="Zeige die ID")
async def get_id(self, ctx, message):
await ctx.respond(f"Hier ist die Message ID: {message.id}")```
@jaunty jasper
du sollst das in der konsole eingeben und nicht in deinen code schreiben
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...
@jaunty jasper
Dankeschön
Thx
https://twevis.com/upload/sxd8trg4peyy.png was meint er mit "unhashable?"
Zeig doch mal dein on_ready

Weiß wer wie ich das machen das die so "clean" sind also alle immer die gleiche länge haben (die schwarzen felder).
Ich weiss nd wieso aber ich krieg missing permissions
error
Traceback (most recent call last):
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\commands\core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Arien\Documents\Code\Python\MainBot\cogs\kick.py", line 11, in kick
await ctx.user.kick(reason=reason)
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\member.py", line 713, in kick
await self.guild.kick(self, reason=reason)
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\guild.py", line 3040, in kick
await self._state.http.kick(user.id, self.id, reason=reason)
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\http.py", line 367, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\bot.py", line 1130, in invoke_application_command
await ctx.command.invoke(ctx)
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\commands\core.py", line 376, in invoke
await injected(ctx)
File "C:\Users\Arien\Documents\Code\Python\MainBot\venv\Lib\site-packages\discord\commands\core.py", line 139, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
code
import discord
import ezcord
from discord.ext import commands
from discord.commands import slash_command
class Kick(ezcord.Cog):
@slash_command()
async def kick(self, ctx, user: discord.User, reason: str = "No reason"):
await ctx.user.kick(reason=reason)
embed = discord.Embed(
title="User kick",
description=f"Kicked {user.name},"
f"\nReason {reason}!",
color=discord.Color.green())
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(Kick(bot))```
und rechte hat der bot
Du willst dich selber kicken?
nein
ctx.user.kick -> user.kick
oh
Wieso machst du deinen Code dann so
doch
ka hab seit 3-4monaten nd mehr gecoded und bin nd mehr so gut
aha jetzt gehts
es geht um {guild_name} also mein bot geht an und es kommen auch keine errors, aber wenn ein user joint wird garnichts mehr geprinted. kann jemand weiterhelfen?
Mach den ctx-parameter raus aus der on_member_join-function
Ja aus der function
also da nh
.
hast es doch gemacht
ja geht aber nicht
Dann fang nicht mit Discord Bot's an
Sondern erstmal mit den Standards
Error???
Bro das musst du selber beheben können
will ich aber, bin noch dabei es zu lernen:)
Lern erstmal die Standards, das ist sozusagen der leichteste Fehler
bin nicht gut genug
dann kannst du mir es ja zeigen
Dann mach erstmal kleine sache, arbeite dich erstmal richtig an die Python Basics bevor du discord bot's machst
Falls du lesen kannst, steht da das ctx nicht definiert ist
Also hoffe ich mal weißt du jetzt was zutun ist
es raus machen
Weil das das erste ist, was man mit python lernt
Denk mal bisschen nach.
Wenn du im on_member_join kein ctx brauchst, aber ein member, dann könntest du ja probieren ctx mit member zu ersetzten
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 ...
Hier findest du alle Attributes und Methoden die du mit discord.Member nutzen kannst
danke
hab aber kommt wieder error
Zeig mal wie dein Code gerade aussieht
wieso hast du es jetzt zu ctx umbenannt??
ich sollte doch ctx mit member ersetzen
Aber doch nicht da
wo dann?
...
Ne ich lass es.
Bitte lern erstmal das Grundlegende von python
habs doch
hat geklappt
und ich lerne was dabei, in dem mir andere menschen meine probleme lösen:)
Dennoch sollte man sich erstmal mit der Sprache an sich beschäftigen, bevor man direkt in sowas einsteigt
Also ich hab so auch python gelernt
Aber man sollte halt nicht erwarten das einem bei allem geholfen wird und man halt auch mal selber bisschen was machen muss
Ohne davor etwas mit der Sprache gemacht zu haben und direkt mit discord bots starten ist genauso, wie wenn ein erstklässler 2+5 lernt und dann denkt das er Mathe komplett beherrscht.
Man sollte sich davor trotzdem mit der Sprache beschäftigen, weil man ja sonst nicht versteht weshalb man z.B. def method oder async def method nutzt.
Oder wofür decorators da sind
Jo klar, war damals wahrscheinlich auch nicht das schlauste von mir aber ich habs geschafft :D also möglich ist es schon aber es gibt deutlich einfachere wege
import chat_exporter
ist rot unterstrichen was muss ich installen das es weg geht?
pip Install chat-exporter @pulsar sundial
hab ich geht trtz nicht
Hmmm
Mach Mal pip freeze
hab
Schick Mal Bild
idk
also du willst ihn helfen, er will wissen wieso es nd geht, aber du fragst wieso es nicht geht? hö
Hmmm
uninstall mal und installiere es wieder
gibt es eig eine methode das server spezifische nitro banner eines users zu bekommen? finde in den docs nur immer user.banner
Er versucht wenigstens zu helfen ...
Hast du es denn mit user.banner probiert?
Vielleicht klappt es ja trotzdem damit
wenn der user aber für einen server ein spezifisches hat wird es nicht angezeigt
tut mir leid habe mich falsch ausgedrückt meine beim bot?
ok ....
Ist es möglich für den bot zu sehen welche permission in den Server Einstellungen für die Integration gemacht wurden?
also der bot geht an, und es kommen auch keine error aber der /help command geht nicht also er wird garnicht gefunden kann jemand helfen
Achte auf die Einrückung.
Dein slash command ist gerade außerhalb von der klasse
ah danke
kannst übrigens auch einen Command-Hyperlink machen :) </commandname:commandid>
wie wo?
was bringt das
Keine Ergebnisse für </commandname:commandid> gefunden. Meintest du Folgendes?
Sieht vielleicht besser aus
egal verstehe es nicht
hab seit gestern mehr gelernt
was verstehst du daran denn nicht?
Wie gelernt??
Das hat nix mit Programmieren zutun
Das ist ein feature von discord
ja???
jetzt
kann jemand helfen der command funktioniert nicht
Du rufst embed auf bevor du es instanzierst
Schau einfach nochmal an wo du embed definierst
Jup
Hast du mittlerweile schon?
Nee
Ich meine kann er sehen welche Einstellungen für den eigenen /test Command z.B. eingestellt wurden so
Achso, das ist was anderes als für Frage oben 😅
Das geht noch nicht meines Wissens
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
Jmd ne Idee warum der nd ausgelöst wird?
Cog wird geladen, Intents sind aktiviert
Wie hast du die Intents im code denn aktiviert?
Denn du benötigst die Intents voice_states
intents = discord.Intents.all()
und hab sie auch nochmal extra aktiviert
oke
Wie sieht denn der weitere on_voice_state_update Code aus?
Keine Ergebnisse für GuildAppCommandsPermission gefunden. Meintest du Folgendes?
@urban glen
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
print(0)
if member.id == self.bot.user.id:
return
print(1)
if before.channel is None and after.channel is not None and after.channel.id == 1215017931188998157:
await member.send("Willkommen im Support-Channel! Ein Supporter wird sich gleich um dich kümmern.")
print(2)
guild = member.guild
channel1 = guild.get_channel(1215018155877863516)
embed = discord.Embed(
title="Support",
description=f"{member.mention} hat den Support betreten.",
color=discord.Color.green()
)
await channel1.send(embed=embed,view=SupportButton(user=member))
after.channel.connect()
after.channel.play(discord.FFmpegPCMAudio("join.mp3"))
Hmm
wird aber halt gar nichts getriggert
Benutze pycord
Ehrlich?
Hab mich wohl unklar ausgedrückt
Hab verstanden welche guild permission die Integration hat und nicht pro Command, aber kann's auch falsch verstanden haben
Wusste ich nicht, musst mal schauen ob es das da auch gibt, so geht's aber zumindest pro Command
Also gibt es generell
Ansonsten vllt direkt an die API fragen
Print 0 kommt net?
nope. aber nen print das der cog lädt kommt
Hier nochmal mit Formatierung, das on_ready wird ausgeöst, on_voice_state_update nicht
und ja, Serport is absichtlich so geschrieben
Find nix
hast nh idee?
hab den fehler
Was wars?
lag daran, dass ich nen 2. on_voice_state_update event drin hatte .-.
dann hab ich jetzt aber noch eine frage, wie kann ich etwas in dem after channel abspielen lassen? :d
hab ewig nd mehr gecodet und hatte das nd mehr aufm schirm lol
After.channel.connect?
Müsste das eigentlich sein
Und dann ganz normal über play
after.channel.connect()
after.channel.play(discord.FFmpegPCMAudio("join.mp3"))
hab das so drin, funkt aber nd
Connecten geht aber?
nope, der joint nd hab ich gerade gemerkt
kommt aber auch kein error beim connecten
Aber eigentlich auch eher sowas wie
voice_client=after.channel.connect()
voice_client.play(discord.FFmpegOderSoKaGenauWieDasHeißt)
Kannst du sonst nochmal deinen Code schicken?
Oder ist das noch der gleiche?
is der gleiche
Awaite das mal
Beides
Bzw vermutlich das play nicht
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if member.id == self.bot.user.id:
return
if before.channel is None and after.channel is not None and after.channel.id == 1215017931188998157:
await member.send("Willkommen im Support-Channel! Ein Supporter wird sich gleich um dich kümmern.")
guild = member.guild
channel1 = guild.get_channel(1215018155877863516)
embed = discord.Embed(
title="Support",
description=f"{member.mention} hat den Support betreten.",
color=discord.Color.green()
)
await channel1.send(embed=embed, view=SupportButton(user=member))
voice_client = await after.channel.connect()
audio_source = discord.FFmpegPCMAudio("join.mp3")
voice_client.play(audio_source)
while voice_client.is_playing():
await asyncio.sleep(1)
await voice_client.disconnect()```
Probier mal so
voice_client = await after.channel.connect()
voice_client.play(discord.FFmpegPCMAudio("join.mp3"))
Hatte jtzt so, jtzt kam aber das:
Ignoring exception in on_voice_state_update
Traceback (most recent call last):
File "C:\Users\User\enable\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\User\enable\cogs\n.py", line 74, in on_voice_state_update
voice_client.play(discord.FFmpegPCMAudio("join.mp3"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 312, in init
super().init(source, executable=executable, args=args, **subprocess_kwargs)
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 165, in init
self._process: subprocess.Popen = self._spawn_process(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 185, in _spawn_process
raise ClientException(f"{executable} was not found.") from None
discord.errors.ClientException: ffmpeg was not found.
Exception ignored in: <function AudioSource.del at 0x0000020807B7D940>
Traceback (most recent call last):
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 115, in del
self.cleanup()
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 245, in cleanup
self._kill_process()
File "C:\Users\User\enable\venv\Lib\site-packages\discord\player.py", line 194, in _kill_process
proc = self._process
^^^^^^^^^^^^^
AttributeError: 'FFmpegPCMAudio' object has no attribute '_process'
also der kanns nd abspielen halt
Immerhin gejoint 😅
xD
hm, das mit path könnte sein, hatte extra das runtergeladen
Aber der Code stimmt an sich jetzt
find ich gut xd
Schau mal ob ffmpeg in PATH drin ist
ffmpeg_path = os.path.join(os.getcwd(), "bin", "ffmpeg")
os.environ["PATH"] += os.pathsep + os.path.dirname(ffmpeg_path)```
Also musst halt os importieren
Aso, ist nicht im bot Ordner drin?
Dachte im bin vom bot ordner
also in den systemvariablen isses im PATH
Hast du den Rechner seitdem neu gestartet?
Der PATH aktualisiert sich immer erst nach einem Neustart eigentlich
Ansonsten musst du halt im bot über os wie im Code oben dem bot Zugriff geben quasi
Sag mir mal Bescheid wenn's geklappt hat 🙂
Jup, hat geklappt ._.
ich glaube, ich sollte nd mehr um 00:00 oder später iwas am pc machen
das bringt nur unglück
Wie
Wo kann ich es angucken,
?*
kann mann die youtube api mit autocomplete verbinden
In deinem code
youtube = build('youtube', 'v3', developerKey=os.environ['YOUTUBE_API_KEY'])
@commands.command()
async def autocomplete(ctx, *, query):
request = youtube.search().list(
part='snippet',
q=query,
type='video',
maxResults=5
)
response = request.execute()
suggestions = [item['snippet']['title'] for item in response['items']]
await ctx.send("\n".join(suggestions))```
Sowas meinst du?
Ja danke
Musst du halt nur noch in dem autocomplete machen dann, aber theoretisch geht's
Jo
Weis wer warum das geht (Python ist instaliert)
PS C:\Users\julian\Desktop\Dashboard> pip install -r r.txt
pip : Die Benennung "pip" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad
korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ pip install -r r.txt
+ ~~~
+ CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\julian\Desktop\Dashboard> ```
Weil du pyhton falsch installiert hast 🤔
Okay dann gucke ich gleich mal
wie macht man das den richtig
@ruby sparrow
was muss ich den davon nehmen?
jerzt deine windons aussuchen
jerzt ruder laden
okay hab
jerzt neu öffen
hab
jerzt öffen
hab
jerzt install now
jerzt warten
jerzt sollte es gehen
ok mach das
Jetzt vc code öffnen und denn dein Python auswählen
Wo auswählen?
Send Bild🤔
Was Größer?
Mach pip install
hab
Und
`PS C:\Users\julia\Desktop\Dashboard> pip install -r r.txt
PS C:\Users\julia\Desktop\Dashboard> pip install -r r.txt
PS C:\Users\julia\Desktop\Dashboard>
`
es geht
das freut mich
Danke❤

