#Allgemeine Hilfe
1 messages · Page 63 of 1
was hast du denn alles importiert?
also ich habe erstmal versuch das alles "nextcord
fastapi
aiohttp
jinja2
uvicorn
better-ipc
ezcord
aiosqlite" mit pip isnstall -r halt alles von mein text datei zu installieren nachdem das nicht geklappt hat wollte ich alles manuell installieren aber hat nicht geklappt weil dann diese error kam
Soweit ich weiß, funktioniert ezcord nicht mit nextcord,
Ja habs jetzt auf discord geändert aber pip wird immernoch nocht erkannt
wenn ich entwas mit pip install installieren möchte kommt dieses Error Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Python311\Scripts\pip.exe\__main__.py", line 4, in <module> ModuleNotFoundError: No module named 'pip'
now i try to uninstall python but there than this error shows up in the log Burn v3.11.1.2318, Windows v10.0 (Build 19045: Service Pack 0), path: C:\Users\krani\AppData\Local\Package Cache\{e15803b8-d809-47f3-8818-73f0d155cf58}\python-3.10.5-amd64.exe
Servus, eine Nachricht mit Buttons (Interaction) funktioniert nicht mehr wenn man den Bot einmal restartet. Wie kann man das umgehen? Habe schon was mit OnReady versucht aber ich weiß nicht ob das der Weg ist
ja das on_ready event ist schon der richtige ansatz, du brauchst persistent views
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...
Danke dir
Wenn ich bei einem COmmand ctx.defer() mache kann ich ja kein ephemeral=True verwenden gibt es da eine andere möglich keit wenn die interaction oder der command zu lange braucht um geshcikt zu werden
ctx.defer(ephemeral=True)
Hi, gibt es in Py-Cord auch bei Buttons Cooldowns, oder muss man das selber coden?
Moin ich brauche eure Hilfe ich hab hunger aber ich weiss nicht was ich essen soll habt ihr ideen?
döner
Hab ich schon vor paar Tagen 
dann ist es wieder zeit
das musst du selbst machen, ist aber gar nicht schwer. in diesem video ist es gut erklärt
https://www.youtube.com/watch?v=fPlFhYq_2TI
In this video, we will work on making a button with a cooldown in discord.py with Cooldown Mapping.
If you found this video helpful, please do consider liking the video, subscribing, and sharing it to someone who might find this video helpful (I know a lot of people say this, but it really does help the channel 🙂). If you have any questions, fe...
Danke 
Naja bei lieferando gibts keine guten
Und mein dönermann des vertrauens hat zu
komm nach Köln ich kann dir Döner Empfehlung geben
Klar sind nur 4 Stunden
Du kannst ephemeral und invisible machen
Bei invisible steht dann noch dass der bot nachdenkt
Wie kann ich den Bot ein Thread in einem Discord Forum eröffnen lassen? Würde gerne ein Embed reinsenden lassen für ein Vorschlagsystem
Hätte gedacht die ChannelID vom Thread einfach rein, aber leider nicht.
channel = await self.bot.fetch_channel(1188901288507867226) message = await channel.send(embed=embed)
Also@immer wenn ein Post eröffnet wird?
Ja habe es nun herausgefunden.
channel.create_thread()
Hab mich verlesen dachte du willst da eine Message reinschicke
pip install py-cord einf nur
will ja die dev version
dann geh auf den ihr github und installiere da die version die da unten steht
Hi! Kann mir irgendwer dabei helfen das zu fixen? Diese code block py for guild in user_guilds: if guild["id"] in bot_guilds.response["data"]: guild["url"] = "/server/" + str(guild["id"]) else: guild["url"] = INVITE_LINK + f"&guild_id={guild['id']}" will nicht funktionieren. Wenn ich es rausnehme funktioniert die Webseite
das ist der error der kommt File "c:\Users\krani\Desktop\Phytor ala maxed out\main.py", line 93, in guilds if guild["id"] in bot_guilds.response["data"]: ~~~~~^^^^^^ TypeError: string indices must be integers, not 'str'
Kurze Frage. Ich möchte das mein Bot eine Direktnachricht an einen User schickt mit Buttons. Jedoch schickt er die Nachricht, aber nicht die Buttons.
embed = discord.Embed(
title="ArcaneNetworks | Ticket",
description=f"Dein Ticket wurde geschlossen.",
color=discord.Color.red(),
)
await interaction.user.send(embed=embed, view=FBTicket(self.bot))```
```py
class FBTicket(discord.ui.View):
def __init__(self, bot):
self.bot = bot
super().__init__(timeout=None)
# Feedback-Channel
self.fbchannel = self.bot.get_channel(881316265564463124)
@discord.ui.button(label="", style=discord.ButtonStyle.primary, emoji=":star:", custom_id="1star")
async def button_callback3(self, button, interaction: discord.Interaction):
embed = discord.Embed(
title="ArcaneNetworks | Ticket-Feedback",
description=f"{interaction.user.mention} hat das Ticket mit 1 Stern bewertet.\n Das Ticket wurde von beansprucht.",
color=discord.Color.red(),
)
### Ticket bewerten
await interaction.response.send_message("Danke für deine Bewertung.", ephemeral=True)
await interaction.fbchannel.send(embed=embed)```
Warum hat der Button kein Label?
Bin mir nicht sicher ob das geht
Also ohne Label geht, aber ich glaube sowas wie :star: geht nicht, ich bin mir aber net sicher
Hatte mich daran inspiriert
Nop, müsste ich morgen einbauen
Ich mach mal morgen ein Thread mit dem kompletten Code
aber ja :star: ist invalid
label geht leer aber dann kannst du den parameter auch einfach weg lassen
ist default None und auch okay so
Ah ok, aber warum ist star invalid
ist kein gültiges emoji
⭐ das ist unicode, kannste auch so im code einfügen und das geht
mit Win + . kannst du emojis einfügen
Achso das habe ich gemacht. Discord hat es nur so translated
kannst den eins zu eins kopieren eig
Ja
Vlt geht <:star:> ja
Ist aber nicht einfacher oder schöner als einfach den Emoji zu nehmen
Alles gut das ist nicht das Problem
Bei mir wo ich mit emojis gearbeitet habe haben die emojis nur dann funktioniert wenn ich sie einmal hier auf discord geschickt habe und es dann copy pastet habe
Wie macht man das? @solid ingot
ist automatisch da wenn dein bot verifiziert ist
Discord gönnt nur verified bots
wie kann man eigentlich in embed fields blauen text schreiben?
ich weiß, dass das mit html code geht, aber weiß nicht mehr genau wie
ezcord.codeblock 😄
TOKEN=tkn``` ist die .env file so richtig?
ja
aber ohne strings
wie hier auch
alles klar
.
wie kann ich den titel eines embeds bearbeiten wenn ich nur das embed object habe? alles soll gleich bleiben nur der titel soll geändert werden. wie kann ich das am einfachsten machen?
ok danke
Moin
Undzwar
Mein Code funktioniert leider nicht so wie ich es haben möchte, der Button disabled sich nicht nach einer Interaktion
class StartButton(discord.ui.Button):
def __init__(self, label):
super().__init__(label=label, style=discord.ButtonStyle.green)
async def callback(self, interaction, button):
self.disabled = True
await interaction.response.send_message("Deine Schicht hat Begonnen", ephemeral=True)```
await interaction.message.edit(view=self)
wenn nur der button schon als view gilt, bin mir da nicht sicher
ja
Das hatte auch nicht geklappt, versuche es aber nochmal später
wie sieht denn die stelle aus bei der du den button and die message gemacht hast?
du musstest doch dafür eine View erstellen oder?
def cmd_count():
return bot.cmd_count
bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n{cmd_count()}\n{dc}"))
Das gibt dann im help cmd 0 raus jemand eine Idee wieso?
um die variable zu aktivieren müsstest du bei add_help_command noch eine variable definieren
also cmd_count=cmd_count zum Beispiel?
ja
ah okay
dann musst du aber statt {cmd_count()} dann {{cmd_count}} schreiben
ja habe ich beim beispiel auch xD
bekomme es nd hin 🙂
da kommt unexpected token
willst call?
grad schlecht bin private talk 😐
dann schick code
Wie kann ich 2 Buttons an eine Nachricht machen
also habe halt :
bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n
{lol=cmd_count}\n{dc}"))```
await ticket_channel.send(embed=embed, view=TDHClose(self.bot) TDHClaim(self.bot))
eine view in der du 2 buttons hast
du musst beide buttons zum selben view hinzufügen
ey lucky
ah
timo testest du es selber grad 🤔
was denn?
geht nd er fügt nur einen von denn views hinzu
wegen meinen pröblemchen
skill issue
code xD
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
pastebin hat eine schlechte codierung xD
was dann?
ist unübersichtlich in pastebin
so lucky als erstes lagerst du mal dein embed aus damit andere leute deinen code auch lesen können. dann machst du die vaiable in die runden klammern von add_help_command
embed = discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n
{{lol}}\n{dc}")
bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=embed, lol=cmd_count)
Na gut
#1191816988415250492
ach so geht das 😄
Dankeschön
jz kommt got an unexcepted keyword argument lol
hast du denn die aktuellste master branch version?
jz schon und jz geht es

Genau gemacht wie du gesagt hast ( #1191816988415250492 ) und geht nd kannst dir selbst angucken
bei version kann man auch einf nur dc=discord.version machen ohne die get function 😮
bzw geht des dann wahrscheinlich mit allen 🤔
discord.__version__ kannst du auch einfach in deinen ganz normalen string packen, das ändert sich ja nicht. aber prinzipiell geht es mit allen variablen
hm also versuche grad das da über die variable der bot owner genannt wird aber irgendwie gibt er immer das member object zurück
code?
def owner():
return discord.AppInfo.owner.display_name
File "D:\test\pycord\main.py", line 99, in owner
return discord.AppInfo.owner.name
AttributeError: 'member_descriptor' object has no attribute 'name'```
Habt ihr nh ahnung ob Excel eine API Key hat?
bin mir nicht sicher, aber als alternative könntest du google sheets benutzen
Wie excel eine api? Du meinst dann eher OneDrive oder sowas oder?
es gibt eine api für excel ja
kommt natürlich drauf an was du machen willst
https://www.youtube.com/watch?v=IgzDB-FJDL0&pp=ygUMZXhjZWwgcHl0aG9u hier ist eine excel api im video gezeigt ^^
Kostenloses Beratungsgespräch: https://weiterbildung.developerakademie.com/y
In diesem Videokurs lernst du, wie du Excel mit Python automatisieren kannst. Auch, wenn du noch nie in deinem Leben programmiert hast.
____ Links ____
Excel-Testdatei: https://github.com/JunusErgin/excel-python-tutorial/raw/main/Bestellungen.xlsx
Dokumentation: https...
Danke
Was kann ich gegen den error machen
Unknown interaction
manchmal geht mein command und manchmal gibt der mir diesen error wieso? weil der länger als 3 Sekunden gebraucht hat
code?
aso
await ctx.defer()
muss ich dann edit benutzen oder kann ich ganz normal interaction.response.send_message
wie davor
also ganz normal
@solid ingot dein bester freund
hab schon geschaut aber nichts zur Unknown interaction gefunden
hat er doch geschrieben schon
ya hab ich ja gesehen
ja was ist denn dann?
Kollege fragte nur ob er dazu was hat
ja aber er hat doch schon des gesagt xD
Klappt immernoch nicht
@slash_command(description="Starte dein Timer")
async def start(self,
ctx
):
embed = discord.Embed(
title="...",
description="... unter dieser Nachricht zu drücken",
)
embed.set_footer(text="...")
button = StartButton("Start")
view = discord.ui.View()
view.add_item(button)
await ctx.respond(embed=embed, view=view)```
Das ist mein Slash Command
Error?
Ignoring exception in view <View timeout=180.0 children=1> for item <StartButton style=<ButtonStyle.success: 3> url=None disabled=False label='Start' emoji=None row=None>:
Traceback (most recent call last):
File "C:\Users\yildi\PycharmProjects\m\.venv\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "C:\Users\yildi\PycharmProjects\m\cogs\start.py", line 39, in callback
await interaction.message.edit(view=self)
File "C:\Users\yildi\PycharmProjects\m\.venv\Lib\site-packages\discord\message.py", line 1434, in edit
payload["components"] = view.to_components() if view else []
^^^^^^^^^^^^^^^^^^
AttributeError: 'StartButton' object has no attribute 'to_components'```
Dann mach gleich eine View in der du den Button gleich drin hast
Im callback kannst du dann den Button deaktivieren und die Nachricht View aktualisieren
Das hier ist zB eine View in der nur ein Button ist
Dann musst du auch nicht erst eine View erstellen sondern kannst direkt view=ButtonView() (oder wie auch immer die dann heißt) benutzen
@discord.ui.button(label="Abmelden", style=discord.ButtonStyle.primary, emoji="")
async def button(self, button: discord.ui.Button, interaction: discord.Interaction):
modal = Modal(self.bot, title="Abmeldung", user_id=interaction.user.id)
self.user_id = interaction.user.id
await interaction.send_modal(modal)
der will irgendwie nicht das modal senden:
AttributeError: 'Interaction' object has no attribute 'send_modal'
Hallo Leute 👋🏻
Ich habe eine Frage. Und zwar weiß einer welches Event ich nutzen soll wenn ich eine Custom Boost Nachricht machen will wenn die Automatische Boost Nachricht von Discord ausgeschaltet ist?
Danke im Vorraus!
direkt gibt es das nicht
du kannst aber gucken ob jemand die <@&1018360496396714076> rolle bekommen hat
async def on_member_update(before: discord.Member, after: discord.Member):
role = discord.utils.get(member.guild.roles, name='Server Booster')
if not role in before.roles and role in after.roles:
# Der Benutzer hat den Server geboostet
sowas ungefähr
aber nur wenn die rolle davor noch nicht da war
denk dir was schönes aus :)
Aber wenn jemand den Server mehrmals Boosted wird ja trotzdem nur eine Nachricht angezeigt weil der Member die Rolle ja nur 1 mal bekommt
jap
Würde es auch gehen mit on_message das mein Bot die Nachricht von Discord einfach löscht und dann direkt die Custom Nachricht schickt dann würde es auch bek mehrfachen Boost mehrere Nachrichten geben
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(ButtonView(self.bot))
Error:
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 12, in on_ready
self.bot.add_view(ButtonView(self.bot))
^^^^^^^^^^^^^^^^^^^^
TypeError: ButtonView.__init__() missing 1 required positional argument: 'bot'
warum geht das nicht
zeiug mal die button view klasse
class ButtonView(discord.ui.View):
def __init__(self, modal_instance, bot, *args, **kwargs):
super().__init__(*args, **kwargs)
self.modal_instance = modal_instance
self.bot = bot
ja modal instance fehlt
wo?
also du gibst den bot als modal_instance in den konstruktor und die bot variable fehlt
das ist das 1. und 2. positional argument
du gibst dem konstruktor aber nur das 1.
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(ButtonView(self.bot, modal_instance=Modal))
oder wie
Und wenn Modal eine Klasse ist dann mit Klammern
Mach doch einfach self.bot, Modal()
Wenn du wirklich eine Instanz erwartest
oder modal_instance=Modal(), bot=self.bot
Und du hast ein klammer zu viel glaub ich
Ne
Ne doch nd
Ja hab gesehen grade
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 13, in on_ready
self.bot.add_view(modal_instance=Modal(), bot=self.bot)
^^^^^^^
TypeError: Modal.__init__() missing 2 required positional arguments: 'bot' and 'user_id'
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(modal_instance=Modal(), bot=self.bot)
BRUUUUUUH
es steht ja alles da
SRY
ne, wait:
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 13, in on_ready
self.bot.add_view(ButtonView(modal_instance=Modal(), bot=self.bot))
^^^^^^^
TypeError: Modal.__init__() missing 2 required positional arguments: 'bot' and 'user_id'
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(ButtonView(modal_instance=Modal(), bot=self.bot))
was muss ich genau einfügen
bei der User id
AAAAAAAAAAAH
send mal dem button
Welche Gründe kann es haben das die databse gelocked ist. Also beim hoster. Wurde da zu oft drauf zugegriffen?
das kann verschiedene gründe haben. der fehler tritt auf wenn eine verbindung aufgemacht wird, aber nicht geschlossen wird.
das kann aber auch komplizierte ursachen haben. ich hatte zb mal einen bug der den gesamten code geblockt hat, und dadurch wurde dann auch die datenbank gelockt, weil die verbindung nicht geschlossen werden konnte
Das heißt nur dass die grad schon verwendet wird
also heißt das ich sollte immer wenn ich an der db was mache das von ezcord zum schließen nutzen?
naja ezcord schließt automatisch. du musst schauen woran es liegt dass eine verbindung nicht geschlossen wird
denn wenn du dann ne neue vebindung aufmachen willst ist es wie ziblic schon gesagt hat, dass die DB dann schon verwendet wird
Naja das könnte sein weil ich bei jeder Nachricht eine db verbinden öffne die in meinem global chat geschrieben wird vielleicht war die eine db von er ersten Nachricht noch nicht geschlossen wie er die für die 2te aufmachen wollte. Kann das sein?
eher nicht
ok dann hab ich keine Idee
Mein Button deaktiviert sich nicht nachdem man damit interagiert hat
zeig mal deinen code
import discord
from discord import Interaction
from discord.commands import slash_command
from discord.ext import commands
class Start(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Starte dein Timer")
async def start(self,
ctx
):
embed = discord.Embed(
title="Schicht Beginn",
description="Um deine Schicht zu beginnen, bitten wir dich auf das **Grüne Knopf** unter dieser Nachricht zu drücken",
)
embed.set_footer(text=".")
button = StartButton("Start")
view = discord.ui.View()
view.add_item(button)
await ctx.respond(embed=embed, view=view)
def setup(bot):
bot.add_cog(Start(bot))
class StartButton(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("Deine Schicht hat Begonnen", ephemeral=True)```
um den button zu deaktivieren, musst du den button erst mit self.disabled = True deaktivieren und dann die button.nachricht bearbeiten
Also vor await interaction.response.send_message("Deine Schicht hat Begonnen", ephemeral=True)
Wenn ja, dann geht es nicht
Was bedeute diese error was fehlt ihm den? kann mir da jemand weiterhelfen^
return await before.channel.send(f"{member.mention} There is a problem with the TempVoice system. Please contact an admin and ask them to use the command `/tempy`!")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/abc.py", line 1616, in send
data = await state.http.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/discord/http.py", line 365, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access```
Ja aber was für Access ?
im button video ist ein beispiel
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...
zu nem channel oder guild oder rolle usw
Wie kann ich eine Option zu einen py @bot.slash_command hinzufügen? also wie hier:
daas geht mit choices
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...
in dem video ist ein beispiel
jaa aber das ist in py @slash_command()
ja genau
brauche es aber in py @bot.slash_command
ja das ist dasselbe
Du machst es ja in den funtkionsparametern
Bei deinen Tutorial Videos macht der Bot ja async autocomplete oder?
Wie funktioniert das dass man da trotzdem tippen kann und dann die Ergebnisse gefiltert werden so
Musst du extra einbauen oder meinst du ein Autocomplete aus der db des geht ganz normal
Ich kann dir nicht ganz folgen
Normalerweise ist das ja über choices, da kannste ja nh Liste reingeben und diese z.B. von einer Funktion bekommen
Aber halt nicht von einer async Funktion
Dafür kannste aber den autocomplete Parameter von Option benutzen aber da filtert der nicht die Ergebnisse wenn du was eintippst so
wenn ihr eine async funktion wollt, brauchst ihr autocomplete statt choices
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...
Das hier ist autocomplete oder?
ja genau
Und nicht choices
dann können die videos dynamisch vom youtube kanal geladen werden
So weit so gut
Das ist auch autocomplete aber wenn ich was eingebe ändert das halt nix an den angezeigten Optionsn
Wenn ich bei dir zB Cog eingeben kommen nur Videos mit Cog im Titel also halt in der Option
Wie kann das sein?
du müsstest noch einbauen dass die optionen gefiltert werden. auf die aktuelle eingabe kannst du mit ctx.value zugreifen und dann nur die werte zurückgeben, die die eingabe enthalten
falls du ezcord nutzt, kannst du auch ez_autocomplete dafür nutzen
Ne benutz ich noch nicht
Kann man auch Slash Commands den Usern, die keine Permissions darauf haben, auch ohne eine SlashCommandGroup ausblenden lassen? Und dass man auch die permissions davon auch hier anpassen kann?
Aber das isses danke
von pycord gibt es eine ähnliche funktion, die aber nur die optionen anzeigt, die mit der aktuellen eingabe anfangen: https://docs.pycord.dev/en/master/api/utils.html#discord.utils.basic_autocomplete
ansonsten kannst du es auch selbst checken mit einer if bedingung in einer for schleife zum beispiel
wenn du default permissions nutzt, werden den usern nur befehle angezeugt, auf die sie zugriff haben
heißt also, dass das hier nicht geht
nutze stattdessen einfach @discord.default_permissions, das ist die neuere variante
Was macht das?
Keine Ergebnisse für @discord.default_permissions gefunden. Meintest du Folgendes?
ah jop
die nutze ich dann, ist besser
mit der methode sehen user ohne zugriff den command gar nicht erst
im video werden denke ich auch alle anderen unterschiede erklärt
und man kann die permissions verändern als admin
ja in den server einstellungen
Yo
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Command Checks für Variante 2
► https://gist.github.com/Painezor/eb2519022cd2c907b56624105f94b190
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com...
Ist ja geil
Commands, die nur der bot owner ausführen darf, kann man aber mit @discord.default_permissions nicht verstecken, oder?
Weil dazu finde ich nämlich nichts in den Docs.
doch, du kannst die command nur für einen bestimmten server freigeben, auf dem nur du admin bist
achso, stimmt
Guten Abend meine Lieben 
Arbeite an einem kleinen Projekt und es wird immer größer, versuche gerade etwas Ordnung reinzubringen aber bin am verzweifeln. Wenn ich eine Ordnerstruktur habe wie in dem Screenshot unten wie importiere ich eine class aus: test.py in test2.py?
Ich habe mich jetzt einige Zeit umgeschaut und habe es jemanden so machen sehen
from ../testing import Test
Funktioniert aber nicht (hab auch ein wenig hin und her probiert) aber dachte mir kann man ja nach Monaten auch hier mal wieder eine Frage stellen 😄
moin @lethal sequoia, hast du noch eine main datei im hauptorder, oder startest du eins der test scripte?
Ich hab jetzt zum testen nur das test script gestartet. Aber da ich die class in einem Cog brauche müsste ich es doch sowieso so machen oder?
wenn du das ganze von einer main datei im hauptordner startest, kannst du den import so machen
from testing import test
Das weiß ich, wollte aber von dem script in dem unterordner darauf zugreifen
solange du das ganze von der main datei aus startest, kannst du denselben import auch in test2.py nutzen
Also kann ich in der Main Datei
from testing import test
machen und dann in dem cog einfach
import test
?
im cog auch from testing import test, aber nur wenn du die main datei startest
Es geht alles im davon aus von wo das Skript gestartet wurde
Wenn du von root startest dann schreibst du auch im 100. unterordner einfach Import utils zB wenn utils und main ganz oben sind
Bedeutet das, das dem Bot bestimmte Berechtigungen fehlen?
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
Er darf etwas halt nicht ja
Okay danke
Funktioniert! Vielen Dank! 🙂
Mit dem langen "namen" muss ich dann leben?
Habe es versucht mit ```py
@slash_command(name="test")
async def Test(self, ctx):
Test = test.Test()
print(Test.message())
await ctx.respond("Success!")
abzukürzen, bekomme aber den error
```discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: Test.message() takes 0 positional arguments but 1 was given```
Test ist einfach nur ```py
class Test ():
def message():
print("Test")
from testing.test import Test
Test.message()
Geht das?^
Ich liebe dich 
Jap, damit hat sich meine Frage komplett geklärt, vielen Dank 🙂
Darauf erstmal weiter SQL schreiben 🥲
Schönen Abend euch noch ✌️
🎉 
Wie kann ich das beheben?
TypeError: 'NoneType' object is not subscriptable
okay ist behoben
Zeig mehr Code
Also... die Userinfo zeigt bei den "Orangen" None an. Kann wer mir sagen was ich falsch gemacht habe?
@slash_command(description='・🚹│ Zeigt Personeninformationen an.')
async def userinfo(self, ctx, user: Option(discord.User, 'Die Person, dessen Infos du wissen möchtest.', required=False) = None):
account = c.fetchone()
if user == None:
if user is None:
user = ctx.author
embed = discord.Embed(
title=f"Infos über {user.name}",
description=f"Hier siehst du alle Details über {user.mention}",
color=discord.Color.blue(),
timestamp=discord.utils.utcnow())
time_created = discord.utils.format_dt(user.created_at, "R")
time_joined = discord.utils.format_dt(user.joined_at, "R")
bank_balance = account
embed.add_field(name='📌 Username', value=f'{user.name}', inline=True)
embed.add_field(name='📌 Spitzname', value=f'{(user.nick if user.nick else "❌ Besitzt keinen Spitznamen :(")}', inline=False)
embed.add_field(name='Orangen', value=f"{bank_balance} ", inline=False)
embed.add_field(name="Account erstellt:", value=time_created, inline=True)
embed.add_field(name="Server beigetreten:", value=time_joined, inline=True)
embed.add_field(name='Rollen:', value=f'{len(user.roles)}', inline=True)
embed.add_field(name='Höchste Rolle:', value=user.top_role.mention, inline=True)
embed.add_field(name='Bot?', value=f'{(" Ja!" if user.bot else " Nein!")}', inline=True)
embed.add_field(name='Booster?', value=f'{(" Ja!" if user.premium_since else " Nein!")}', inline=True)
embed.set_thumbnail(url=user.display_avatar.url)
embed.set_footer(text=f"Keesus's Zentrale 🚀", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
await ctx.respond(embed=embed)
eigentlich.. ja. doch. wenn man eine gewisse menge traffic bekommt kann das mit sqlite3 sogar recht schnell passieren. bei mir war das ab ~400_000 nutzern die vom bot u.a. auf nachrichten überwacht wurden der fall.
ein kurzzeitiger fix, gut für nochmal ~70_000, war es einfach konstant mit einer verbindung zu arbeiten und nur bei bedarf cursor aus einem pool zu verwenden. da musste man natürlich darauf achten, dass die auch wieder geschlossen werden. Ist allerdings auch nicht ideal und liefert wie gesagt ca. 12 % puffer ehe man wieder vor dem selben problem steht.
Bei meinem stelle ich wegen dem selben mumpitz gerade auf mysql (natürlich async) um.
Eine weitere alternative wäre erst infos zu sammeln, beispielsweise die gebrauchten infos von ~10 nachrichten in einer liste zu sammeln und nur wenn die liste 10 einträge erreicht hat einen befehl an die datenbank zu setzen. bulk aufträge sind effizienter als einzelne aufrufe.
Allerdings ist das auch wieder gefrickel, dass das problem nur eine weile verzögert bzw. aufschiebt bis wieder der selbe fall auftritt.
Auf der Plus Seite sind diese "fixes" halt schnell gemacht und verschaffen einem Zeit.
naja also bank_balance ist None, dH account ist None, d.h. c.fetchone() gibt None zurück, das heist es gibt keinen Eintrag in der Datenbank
laut datenbank gibt es aber einen eintrag
dann ist deine query falsch
habe leider kaum ahnung mit databases wo fixe ich das?
if user == None:
if user is None:
den Check brauchst du nicht doppelt und die obere version gar nicht. == nutzt du um z.B. genaue Werte, e.g. if a == 5 abzufragen.
is None
reicht völlig.
Leider wird aber bei embed.add_field(name='Orangen', value=f"{bank_balance} :ORANGE:", inline=False) immer noch None angezeigt.
Zeig mir mal bitte die Datenbank Struktur und deine Abfrage
account = c.fetchone()
ich vermute, dass c klassich für cursor steht.
Das sagt quasi "gib mir das aller erste ergebnis meiner (hier nicht vorhandenen) abfrage.
Wenn du Daten abrufen willst muss das mit einem Select statement passieren (ist identisch mit der asynchronen sqlite version)
Hier ist ein link zu denk docs, wie so eine abfrage aufgebaut werden muss. Die Grafiken darin haben mich beim DB bauen mehrmals gerettet..
... hoffe es hilft dir:
Geht sowas mit Staff rollen oder müsste ich da normale Checks verwenden?
die rollen kannst du dann in den servereinstellungen anpassen
SELECT * FROM accounts WHERE user_id = {die user id}
Verstehe, kannst du mir eigentlich erklären warum es einen Unterschied macht in welcher Reihenfolge ich die decorator hinschreibe? Wenn default_permissions nicht direkt an der Funktion steht funktioniert die nicht
wo muss ich das einsetzen?
Sowas wie c.execute wenn c dein cursor ist
Schau dir einfach mal ein Basic Tutorial dazu an
die reihenfolge sollte im normalfall keine rolle spielen
hier ist ein beispiel, das mit dem "?" ist wichtig.
Du solltest dir aber 1-2 videos dazu ansehen, sonst bringt dir der beispiel code wenig.. allein schon weil dein table sicher anders aufgebaut ist.
async def call_memberids_one_server(self, serverid: int) -\> Iterable[aiosqlite.Row]:
"""
Gathers all stored UserIDs for a specific server and returns them as a collection of tuples,
with one entry in each tuple, in a list.
:param serverid: ID of the server to receive user IDs from
:return: List of tuples containing UserIDs
"""
c = await self.connection.cursor()
await c.execute("""
SELECT UserID FROM activity WHERE GuildID = ?
""", (serverid, )
)
user_ids = await c.fetchall()
await c.close()
return user_ids
(backslash in "->" recht weit oben ignorieren)
wat soll ich sagen, so rum geht es nicht
ich kann auch ohne administrator diesen command benutzen
anders rum hingegen funktioniert alles wie geplant
war hierrauf die antwort ^
achso, der slash command decorator muss immer ganz oben stehen, alle anderen sind dann meist egal
komisch komisch
habs alles kapiert, allerdings sehe ich keine möglichkeit für subcommands andere default permissions zu setzen als in der command group?
ist das richtig
also hierbei kann ich selbst mit view_channel permissions nicht /config get benutzen
default permissions kannst du nur für die group festlegen, ja
hmm
selbst in den server settings sieht man die untercommands ja nicht
das ist doof
was genau möchtest du erreichen?
naja jetzt beispielsweise es gibt /config get und /config update
**get **können moderatoren (moderate_members) und update können nur admins
soweit ich das verstanden habe geht das mit diesen default permissions und servereinstellungen nicht
da bräuchte ich dann nen extra check aber der command wird trotzdem angezeigt
ja. der decorater macht es nur für die sichtbar, die die gewählten rechte haben.
soll eine breitere personengruppe, aber nicht alle, zugriff auf den command haben könntest du eine hybride strategie fahren.
Als Beispiel, Details müsstest du dann anpassen:
decorator beschränkt sichtbarkeit auf personen die mind. kick berechtigung haben.
wird ein bereich des befehls ausgeführt der nur für admins sein soll erfolgt ein weiterer check im code, hat die person keine adminrechte: return await ctx.respond("Kontaktiere für diese Funktion einen Admin oder den Server Besitzer").. sowas in der Art.
klingt doch nach einer guten vorgehensweise
mir gings ja nur darum ob es möglich ist die untercommands unsichtbar zu machen
aber ja ich kann ja auch einen check decorator bestimmt benutzen
naja danke
Hat Pycord etwas daran geändert wie man ephemeral messages versendet oder habe ich einen brainlag? Ich könnte schwören es war immer so
else:
embed = await EmbedBuilder.errorEmbed(self, ctx, description="License is invalid or already used!")
await ctx.respond(embed=embed, ephemeral=True)
Du kannst ephemerael Nachrichten nur senden wenn du auf eine nachricht respondest. ctx.send sendet eine Nachricht in den Kanal. Da kannst du ephemeral nicht verwenden.
Unglücklicher zufall, dass ich es gerade so hatte, dass es in der response sein muss ist mir klar. Bekomme keinerlei errors bei folgendem code aber epheremal ist es nicht
else:
embed = await EmbedBuilder.errorEmbed(self, ctx, description="License is invalid or already used!")
await ctx.respond(embed=embed, ephemeral=True)
Bot schon neugestartet? probier es doch mal ohne deine embed methode. Du übergibst ja an sie ctx, respondest du villeicht dort schon?
Oder was gibt denn deine EmbedBuilder Methode zurück? also der type
@slash_command(name="embedtest")
async def EmbedTest(self, ctx):
await ctx.respond("Success!", ephemeral=True)
In dem Command funktioniert es tatsächlich, ich responde in der methode nicht und returned auch eigentlich nur das embed object
async def errorEmbed(self, ctx, description):
embed = discord.Embed(title=f"Error", color=discord.Color.dark_red(), description=description)
embed.set_footer(text=f"placeholder | {datetime.now().strftime('%d.%m.%Y %H:%M')}")
return embed
(ich weiß ctx brauche ich da tendenziell nicht übergeben)
Es geht allgemein in diesem command nicht 
In der Console:
ERROR: Could not find a version that satisfies the requirement py-cord-dev==2.5.0rc5 (from versions: none)
ERROR: No matching distribution found for py-cord-dev==2.5.0rc5
gibt es die ver. nicht mehr??
ne
huhhh seid wann
schon länge
ich krach ab
genauer type ist:
<class 'discord.embeds.Embed'>
ja NH ka
du kannst pip install git+https://github.com/Pycord-Development/pycord benutzen
aber trzdm kacke
hat vor paar tagen noch funktionier aber aufeinmal nicht mehr? weird
Es liegt am ctx.defer ganz oben im command... 🥲

Wie mache ich in eine Int Funktion nur Zahlen?
wie meinst du das genau?
das ich @role mache unt nur zahlen dann kommen
dafür gibt es viele möglichkeiten. du könntest zb alle zahlen aus der nachricht rausfiltern, indem du alle zeichen mit .isdigit() überprüfst
ok
Wie kann ich machen das man nur in dem beliebigen Channel den command ausführen kann?
das kannst du bei slash commands in den server-einstellungen festlegen
kann man kein command machen
Hey, wie kann ich einen button mit einem modal auch noch nach dem neustart verfügbar lassen?
from discord.ext import commands
from TicketSystem.Views.CloseDropdownMenu import CloseDropdown
from TicketSystem.Views.TicketButtonsEm import TicketViewButtonEmMSG
from TicketSystem.Views.MainTicketView import TicketViewCreateTicket
from TicketSystem.Views.MainTicketView import Modal
class on_ready(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener(
'on_ready'
)
async def listener(
self
):
self.bot.add_view(
TicketViewCreateTicket()
)
self.bot.add_view(
TicketViewButtonEmMSG()
)
self.bot.add_view(
CloseDropdown()
)
self.bot.add_view(
Modal()
)
def setup(bot):
bot.add_cog(on_ready(bot))
persistent modal gibt es nicht. es reicht, wenn du den button persistent machst, mit dem du das modal öffnest
versuche ich ja bereits, aber irgendwie funktioniert es trotzdem nicht.
class TicketViewCreateTicket(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label="Ticket", emoji=":envelope_with_arrow:", style=discord.ButtonStyle.blurple, custom_id="TicketViewCreateTicket")
async def create_ticket(self, button, interaction: discord.Interaction):
await interaction.response.send_modal(Modal(title="Create your support request"))
also geht jz?
was ist ein @bot.user_command()
A shortcut decorator that invokes command() and adds it to the internal command list via add_application_command(). This shortcut is made specifically for UserCommand.
A class that implements the protocol for user context menu commands.
jo danke
wie mache ich ein button disabled nach 2 mal drücken
könntest die clicks in der klase tracken und nach dem 2. mal dann das item disablen
async def callback(self, button, interaction):
self.clicked += 1
if self.clicked >= 2:
button.disabled = True
await interaction.edit(view=self)

wenn du rechtsklick auf ein user machst und auf apps gehst das ist des
aso stimmt
kann mir bitte wer helfen in meinem linux server hat er bei der instalation von den requirements diesen error ausgegeben
welche python version hast du installiert?
Musst 3.11 benutzen
3.12 geht ned
alles gut habs gefixxt bekommen
Müssen? Er kann ja auch 3.10 oder 3.9 benutzen
wo?
bei integrationen
Alles klar
Was mach ich dann mit der Webhook Url
ich weiß nichts von einer webhook URL
kann mir bitte wer sagen wie ich java 18 o. 20 auf meine Dashserv server bekomme
probiere es mal bei djs support servern..
kann dir link per dm senden
Ja das wäre sehr lieb
hat dashserv dazu kein support eig?
also mein stand ist eig das die dabei helfen
Echt ich habe da nich nicht nachgeschaut
hm okay
Was bedeutet der Error "discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions"
dein bot hat keine berechtigung, etwas zu tun
Vlt hat er auch von discord aus nicht die rechte, was willst du denn machen?
Das wenn jemand neues auf den Server joint, der Nickname geändert wird.
Was ist denn dein Code?
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "C:\Users\delan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
TypeError: NameChangerOnJoin.on_ready() missing 1 required positional argument: 'bot'
Das ist aktuell mein Error.
Was tun wenn Bot not defined kommt?
Kann ich jz pauschal nicht sagen brauche da schon Kontext
Alles gut, habe es gelöst, ich habe nur noch eine Frage, gibt es die Möglichkeit, den ersten Buchstaben beim Namen Großschreiben zu lassen?
.capitalize()
. capitalize()
Im Internet finde ich, new_nickname.capitalize()
Ah alles klar! Super danke, wie verwende ich den?
.title() wenn jedes Wort groß soll
Auf einen String
Ist ein Attribut von jedem string, durch Python
Nicht mit einer If abfrage?
Verstehe ich nicht
mh.
Nein, ich komme gerade nur nicht hinterher...
import discord
from discord.ext import commands
class NameChangerOnJoin(commands.Cog):
def __init__(self, bot: discord.Bot):
self.bot = bot
@commands.Cog.listener("on_member_join")
async def on_member_join(self, member: discord.Member):
new_nickname = f"AfD - {member.name}"
await member.edit(nick=new_nickname)
def setup(bot: discord.Bot):
bot.add_cog(NameChangerOnJoin(bot))
Das ist mein Code
Wo denn?
Achso, ah cool ich probier das mal aus 😄
hat jemand eine ahnung was der fehler heißt in Pycord: "discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: RuntimeError: Session is closed"
Das hat nicht geklappt.
was ist der fehler
oder was passiert und was soll passieren
Kommt kein Error, nur der Name wird nicht groß geschrieben.
Kann eigentlich garnicht sein
code?
Was hast du denn jz geschrieben
import discord
from discord.ext import commands
class NameChangerOnJoin(commands.Cog):
def __init__(self, bot: discord.Bot):
self.bot = bot
@commands.Cog.listener("on_member_join")
async def on_member_join(self, member: discord.Member):
new_nickname = f"AfD - {member.name.capitalize()}"
await member.edit(nick=new_nickname)
def setup(bot: discord.Bot):
bot.add_cog(NameChangerOnJoin(bot))
RuntimeError, überprüf mal deine Verbindung
Das ist so nh simple Sache also das muss klappen
Am Code liegts nicht, vlt läuft dein bot 2 mal noch an einer anderen stelle?
Ich probier noch mal uno momento
Also klappen tut es wirklich nicht.
lad mich mal ein
Ist ein Privat Server geht nicht sorry
Habe es aber auch mit einem anderen Account versucht
Klappt trotzdessen nicht.
hast du noch eine Idee irgendwie funktionierts wieder nicht
Das ist halt ein Verbindungsfehler, keine Richtige Connection.
Starte neu oder so? 😄
nope gleicher fehler
er hat vergessen denn nickname zu resetten
Sollte er nicht trotzdem editiert, also überschrieben werden
anscheint nicht
wenn ich denn bot neustarte gehen die buttons nd mehr wie mache ich das so das die nach nem neustart immer noch gehen
da hat einer wohl die intents vergessen
intents.member = True fehlt?
es geht ja bei ihn wenn er denn nick resetted
ohne intents macht er nix xD
er hat intents
also in dem code von ihm nd den er geschickt hat
ja weil als ich gejoined bin hats geklappt
Der Code funktioniert einwandfrei! 😄
dann hat er denn nick von seinem acc geresetted und es ging
dann passt ja alles 😄
Im on_ready event bot.add_view() aufrufen
Und dann eine View instanz reingeben
Traceback (most recent call last):
File "C:\Users\tdius\Code\Python\MainBot\venv\Lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "C:\Users\tdius\Code\Python\MainBot\Commands\TicketSystem\Ticketsystem.py", line 15, in on_ready
self.bot.add_view(Ticketbutton())
File "C:\Users\tdius\Code\Python\MainBot\venv\Lib\site-packages\discord\client.py", line 1945, in add_view
raise ValueError(
ValueError: View is not persistent. Items need to have a custom_id set and View must have no timeout```
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(Ticketbutton())
steht eig im error was du machen musst 🤔
custom_id beim button und bei der view timeout=None in die init
oder timos video anschauen zu Buttons 👀
ich nutzt nie buttons
hm dann select

oder select
da steht aber Ticketbutton deswegen xD
ja ich weiss ich nutzt auch buttons aber nutzt buttons selten
class Ticketbutton(View):
def __init__(self):
super().__init__(timeout=None)
self.clicked = 0
@discord.ui.button(label="Close 🔒", style=discord.ButtonStyle.danger)
async def close_callback(self, button, interaction):
await interaction.response.send_message("Closing Ticket in 3 seconds...")
self.clicked += 1
if self.clicked >= 1:
button.disabled = True
await interaction.edit(view=self)
time.sleep(3)
await interaction.channel.delete()
@discord.ui.button(label="Claim ✔", style=discord.ButtonStyle.primary)
async def claim_callback(self, button, interaction):
await interaction.response.send_message("Claiming Ticket...")
self.clicked += 1
if self.clicked >= 1:
button.disabled = True
await interaction.edit(view=self)``` ist doch so
sehe keine custom_id
wofür custom_id
für persistent xD
Für Fortnite
wofür brauch man die
Im persistent zu haben
das die nach restart gehen
Schreib irgendwas rein
wo kommt die hin
Nach Close da einfach custom_id='close_button'
bei style
Wieso sollte man Vegan sein?
Ja da wo Label und Style auch ist

Kann mir jemand helfen diese frage zu beantworten bitte
sei doch kein Egoist
so nh
class Ticketbutton(View):
def __init__(self):
super().__init__(timeout=None)
self.clicked = 0
@discord.ui.button(label="Close 🔒", custom_id="huanbecker123", style=discord.ButtonStyle.danger)
async def close_callback(self, button, interaction):
await interaction.response.send_message("Closing Ticket in 3 seconds...")
self.clicked += 1
if self.clicked >= 1:
button.disabled = True
await interaction.edit(view=self)
time.sleep(3)
await interaction.channel.delete()
@discord.ui.button(label="Claim ✔", custom_id="huanbeckerin123", style=discord.ButtonStyle.primary)
async def claim_callback(self, button, interaction):
await interaction.response.send_message("Claiming Ticket...")
self.clicked += 1
if self.clicked >= 1:
button.disabled = True
await interaction.edit(view=self)
Ja zB
doch
ja
wäre geil
Klar
bin ich ehrlich
Hab vor paar Tagen Ente gegessen
Und benutz nicht time.sleep
Schlechte Idee
asyncio 😮
Schmeckt 👍
deswegen riecht es hier so
warum ist das so
ich weiss bin aber zu faul asyncio zu nutzen
Hä
Warum hat der Bot AfD im name?
Weil du den Button disabled hast
hmm wie mache ich es dann
Was denn haha
xD
denn button disablen
button.disabled
self.disabled = True aber wo
Schreib interaction.message.edit
Kenne mich mit buttons null aus 🙂
Ich glaub das ist was du willst
ich auch nd
ja danke
Ich kann mich nicht motivieren Python zu lernen

in dem kontext macht es wahrscheinlich sinn alle buttons zu deaktivieren, dafür kannst du button.disabled = True mit self.disable_all_items() ersetzen
dann ist Claim auch deaktiviert


und bitte mach einfach import asyncio und anstatt time.sleep(3) dann await asycio.sleep(3)
ist kein hexenwerk
doch
gibt es auch eine methode die alle buttons aktiviert 👀
Wie kann Ayliva in den deutschen charts sein?! (Spotify)
weil es einf so ist du musst es akzeptieren
ja
und tiktok deinstallieren
self.enable_all_items() ;)
Nein ich werde die nie aktivieren
oha
Zum glück sehe ich die nie 🙂
ja nh, merkst wie schlecht du bist

from ezcord.utils import count_lines
nö
naja gibts nicht
hm maybe warten bei mir geht es
sollte ja wurscht sein wie ich darauf zugreife aber gibts iwie nicht
aber habe auch den master branch
bei mir schon 🙂
hast auch geupdatet?
ka ich hab version 0.5.1
mehr als pip install ezcord kann ich doch nicht machen
doch
doch
den master branch kannst installieren zum beispiel oder pip install ezcord -U
was macht das U
upgrade
update
nagut
okay
danke
was für ein import brauche ich in pycord um @client zu nutzen? weiß das jemand zufällig?
einen import brauchst du dafür nicht, das kommt ganz darauf an wie du deine bot variable genannt hast
Wie kann ich ein Foto neben dem title machen?
hier ist ein zb
Das wahrscheinlich kein Titel sondern ein Author
Da musst du daa Bild hakt bei icon_url hinsetzen
Und du möchtest so rin Bild haben?
Dann entfern den Titel und schreib inter das Embed
embed.set_author(name=self.bot.user.name, icon_url=url)
Uns bei der url muss halt deine Bild url hin
weiss einer wie es gejt
was davon meinst du genau?
naja ist halt ein embed
z.B da steht nur 5 Stunden ich möchte das auch machen aber ich weiß nicht wie geht das
hab es so aber ich möche du
@solid ingot
bitte nicht pingen
kann mir einer helfen bei mir wird nicht angezeigt das der bot streamt
Was meinst du damit?
.
code?
activity = discord.Activity(type=discord.ActivityType.streaming, name="Chill_Fabo", url="https://twitch.tv/chill_fabo")
status = discord.Status.streaming
activity = discord.Activity(type=discord.ActivityType.streaming, name="Amex Studios", url="https://Amex-Studios.com")
status = discord.Status.streaming``` @ruby sparrow
mein pip will irgendwie nicht wie im tutorial funzen
Fatal error in launcher: Unable to create process using '"C:\Program Files\Python311\python.exe" "C:\Users\#####\AppData\Roaming\Python\Python311\Scripts\pip.exe" ': Das System kann die angegebene Datei nicht finden.
wenn ich jedoch py -3 -m pip benutze funzt es normal
(ich habe keine ahnung wie das zeug funzt ich habe den befehl nur von der doku kopiert und das hat funktioniert)
bitte ping wenn ihr antwortet
Haben sie Python richtige downloadet?
und mein installieren auch add to PATH angemacht?
ja habe ich
habs genau wie im tutorial gemacht
import discord
from discord.ext import commands
from discord.commands import Option
import os
import ezcord
intents = discord.Intents.all()
status = discord.Status.idle
bot = ezcord.Bot(
intents=intents,
status=status,
debug_guilds=[]
)
@bot.event
async def on_ready():
print(f"{bot.user} is online.")
if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
bot.run("token")
kann mir jemand sagen was man ändern muss damit es klappt?
Traceback (most recent call last):
File "c:\Users\skills\Downloads\ticket-bot-main (1)\ticket-bot-main\main.py", line 5, in <module>
import ezcord
File "C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\ezcord\__init__.py", line 7, in <module>
from .bot import *
File "C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\ezcord\bot.py", line 12, in <module>
from dotenv import load_dotenv
ImportError: cannot import name 'load_dotenv' from 'dotenv' (C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\dotenv\__init__.py)```
Wofür brauch ich dotenv im code?
Und ivh hab beides
Für .env
Ich nutze im code aber keine env
dann weg IDK
@solid ingot kannst du mir bitte helfen?
deinstallier ezcord und alles was mit dotenv zu tun hat
dann installier ezcord
wenn es immer noch nicht klappt danach schick deine pip freeze liste
danke 
weiß jemand zufällig wie ich eine private nachricht an den User schicken kann wenn er auf den server joint?
await member.send("Hallo")
Ignoring exception in modal <TicketSystem.Views.MainTicketView.Modal object at 0x000001C29FE24D10>:
Traceback (most recent call last):
File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
await value.callback(interaction)
File "c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\MainTicketView.py", line 105, in callback
await interaction.followup.edit_original_message(content=f"Ticket successfully created in {new_ticket_channel.mention}!", message_id=msg.id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Webhook' object has no attribute 'edit_original_message'
AttributeError: 'Webhook' object has no attribute 'edit_original_response'
hatte es mal so versucht, aber bringt irgendwie nichts.
habe da aber noch nh frage, kann man die pinn message von discord selbst auch direkt automatisch löschen lassen?
Laut den docs ist das ja einfach edit_message, versuche das so nochmal
Bei dir steht ja follow-up
Und nicht einfach nur edit Message Ding da
aber ist doch ein followup oder?
nein du musst wenn du die mesage editieren wills nur so machen:
"interaction.edit_original_response(content=...)"
würde klappen, aber bekomme folgenden hinweis, welchen ich angwendet habe:
c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\MainTicketView.py:109: DeprecationWarning: Interaction.edit_original_message is deprecated since version 2.2, consider using Interaction.edit_original_response instead.
await interaction.edit_original_message(content=f"Ticket successfully created in {new_ticket_channel.mention}!")
er sagt ja response, bei dir steht message
also lösung steht eig drinne
bei mir steht edit_original_response
achso er macht das mit webhook?
jop
alles gut, habs geändert und klappt nun. danke euch
meiste hilfe hat @urban glen gemacht

brauche immernoch hilfe
Solution of Python PIP Error
Moin wie macht man das ein button immer klappt auch nach n bot restart?
ah super danke 👍
@solid ingot 
entweder du macht es mit persistend views oder du machstt es mti dem on_interaction event
ich persönlich würde dir das on_interaction event empfehlen da kannst du alle callbacks in eine datei packen
wie mach ich das event?
in einem cog:
class Cog(commands.Cog):
def __init__(self,bot):
self.bot = bot
@commands.Cog.listener()
async def on_interaction(self, interaction: discord.Interaction)
if interaction.custom_id == "abc123":
await interaction.response.defer()
Ignoring exception in view <CloseDropdown timeout=900.0 children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Select a reason for closing the ticket.' min_values=1 max_values=1 options=[<SelectOption label='Finished :white_check_mark:' value='finished' description='- When the ticket is ready, select this.' emoji=None default=False>, <SelectOption label='User has left the server :name_badge:' value='left' description='- If the user has left the server, select this.' emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\CloseDropdownMenu.py", line 65, in select_callback
client = interaction.user.client
^^^^^^^^^^^^^^^^
AttributeError: 'Select' object has no attribute 'user'
interaction.client funktioniert ebenso nicht
was möchtest du denn genau mit dem client machen
der interacttion.client ist im grunde genommen nocht anderes als self.bot
Und als nicht cog? 
dann ist nur das anders warte:
@bot.event
async def on_interaction(self, interaction: discord.Interaction)
if interaction.custom_id == "abc123":
await interaction.response.defer()
einen user damit fetchen und halt hier, denke es liegt daran:
ich möchte wie beim ticket system alle nachrichten aus dem kanal zu einem transcript machen.
interaction.client ist dann der bot wieso willst du den bot fetchen? ich vermute mal du willst interaction.user fetchen. Also den der intteragiertt hat?
versuche mal eben was anderes
ich glaube aber, dass es an dem transcript mit dem chat_exporter liegt.
danke
Du brauchst eigt kein client im chat_exporter.
und bei dem user= await client.fetch_user(user_id)
probier mal user= await self.bot.fetch_user(user_id)
soll das einfach in den command oder über dem command?
ne.
ich brauche den client ja jetzt nur noch bei dem kanal
lag an der reihenfolge
https://max1385.no-friends.xyz/jIoxM88T.png
# Erstellen des Transcripts
transcript = await chat_exporter.export(
interaction.channel,
limit=100000,
bot=client,
tz_info="Europe/Berlin"
)
file = discord.File(
io.BytesIO(transcript.encode()),
filename="transcript.html"
)
await interaction.channel.delete()
msg = await log.send(file=file, delete_after=2)
link = await chat_exporter.link(msg)
logg = discord.Embed(
title='🔒 - Ticket has been closed',
description=f'Creator: `{user.name}`\nReason: `Finished ✅`\n- [Transcript]({link})',
color=discord.Colour.embed_background(),
)
logg.set_footer(text=f'Ticket was closed by {member.name}', icon_url=member.display_avatar.url)
await log.send(embed=logg)
Kann es sein, dass ich an der Reihenfolge etwas falsch mache?
Wie kann ich es denn wie bei dem KeksBot machen, wenn er das Transcript in den Kanal sendet?
Da wird die Datei auch nicht in den Kanal gesendet
Bei meiner anderen Funktion klappt es aber mit dem löschen
Keks bot Hosted das auf seiner Website
So mache ich das auch
Ist natürlich am besten aber komplizierter und du brauchst nh Website
Kann man das irgendwie machen, wenn man die Rolle über den Befehl angibt, dann kann man sie über den Button übertragen lassen kann man das ?
Kannst du nicht ein select menu mit rollen machen oder sowas
Programmierst du in Word?
ne, ist grade github am Handy paar Screenshots gemacht 
Wie gesagt Zeile 40 da steht delete after
Wenn du die Datei aber löscht dann gibt es das Transkript nirgendwo mehr
ja, aber das ist ein anderer Command. Und es funktioniert komischerweise
Also kann das nicht funktionieren
warte
?
also hier, das ist mein anderer command, wo ich es auch so gemacht habe und es funktioniert dort.
bei meinem jetzigen, wo ich das mit dem ticket system mache funktioniert es nicht
ich möche halt so was macehn
timo weiss du was kann das sein ?
funktioniert es denn so?
ja
achso und du willst wissen was das macht?
zum beispiel habe ich in meinem view order die ganzen dateien mit klassen und so und im init kann ich dann aus jeder datei alle klassen importieren, dadurch kann ich dann nur durch den ordner views alle klassen aus diesen unterdatein importieren
ist auch so am sinnvollsten was aber meiner meinung nach auch sinnvoll sein kanndas einfach alles in das event zu machen da du dann keiner persitant views brauchst
aber auch wenn ich selber etwas in init definiere kann es direkt über diesen ordnernamen importiert werden
und nicht from checks.init import is_staff oder so
wie meinst du das mit views?
persistant view ist dazu da das bei einem verbindungsabruch buttons, usw. wieder eine rückkopplung zum server tätigen
jaja ist mir schon klar was das ist aber was hat das mit dem thema zu tun
nein ich hab bloß geschrieben das das was du gemacht hast von der strucktur her bessr ist als wenn man die view klassen so in den code rein klatscht
wobei denn?
kann wer helfen
ping doch nd die ganze zeit
Was ist das Problem?
Habe nen neuen PC und weiß nicht mehr, ob man hierfür auch Git installieren muss
Laut Video geht’s ja ohne
wie meinst
Ob man das auch braucht https://git-scm.com/download/win
hm ich habe es installiert aber ob man es braucht versuche es einf mal ohne 😛
okay, werde ich
weiss einer warum geht es nicht
Hast du den richtigen Port eingestellt ?
Ja
hey leute ich habe das problem das wenn ich meinen neuen bot auf meinem server starte daser nach ein paar stunden ohne etwas zu machen viel leistung zieht ich habe schon nach while True loops geschaut und diese gefixxt aber es ändert sich wenig/nichts. hat da wer noch tipptt
jo, man brauch dazu auch git, hab's wieder installiert und jetzt läuft auch alles
verstehe trotzdem nicht, warum es bei meinem ticket system dann nicht funktioniert
was genau?
"C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\Scripts\python.exe" "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py"
[COG] Loaded 1 cog
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 786, in _load_from_module_spec
setup(self)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
bot.add_cog(setup(bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
bot.add_cog(setup(bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
bot.add_cog(setup(bot))
[Previous line repeated 993 more times]
RecursionError: maximum recursion depth exceeded
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py", line 19, in <module>
Bot.load_cogs(subdirectories=True)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
self.load_extension(cog)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 791, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.alle.setup' raised an error: RecursionError: maximum recursion depth exceeded
Process finished with exit code 1```
??
also ich möchte, dass in einen kanal ein log embed gesendet wird, in welchem man auf das transcript klicken kann. die file aber möchte ich nicht in dem kanal haben, sondern erst die file senden, und dann erst das embed
wenn ich das transcript dann aber öffne, sieht es so aus:
kann mir einer helfen ?
du sendest ja die file und dann denn log
du musst das transscript auf jeden fall in einen channel senden lassen sonnst kann er keinen link machen
ja, und bei der file möchte ich, dass diese wieder nach 1-2 sekunden gelöscht wird in dem kanal, und der user dann nur auf den link klicken kann
das geht nicht
die file muss vorhanden sein, da der aus dem message link von dem transscript einen link für Google macht
schon, aber ich habe einen anderen slash command, bei dem ich das genauso mache und dort funktioniert es. siehe hier:
https://discordapp.com/channels/1010915072694046794/1019974414487535736/1193186001829507165
dort wird die file danach auch direkt gelöscht aus dem discord kanal
wo lässt du es löschen?
das ist der code für meinen log-messages command:
da wo er es auch löscht
genau
wo löscht er es?
ah da
alles klar, versuche das mal bei dem ticket system
Könnte sein das es daran lieg
also bei meinem anderem command klappt es halt auch mit delete after = 1
versuche eben mal
Ok
oder eben eher an der erstellung des transcripts, möchte, wenn der kanal gelöscht wird, den ganzen kanal transcripten
# Erstellen des Transcripts
transcript = await chat_exporter.export(
interaction.channel,
limit=100000,
bot=client,
tz_info="Europe/Berlin"
)
weil bei dem anderen klappt es ja auch mit delete_after=1
bei mir gehts
so ja, aber versuch's mal so:
einfach nur ein embed mit dem link und ohne, dass die file noch in dem log channel ist
kann mir einer helfen ?
schick mal deine ordnerstruktur also wie viele files hast du denn in deinem cogs ordner drinnen?
hhm wie lädst du denn deine cogs in der main.py?
if name == "main":
Bot.load_cogs(subdirectories=True)
Bot.run(os.getenv("Mein Token"))
# Laden der Cogs + Logging
if __name__ == "__main__":
for subdir in ["alle"]:
cog_path = os.path.join("cogs", subdir)
for filename in os.listdir(cog_path):
if filename.endswith(".py"):
full_path = f"cogs.{subdir}.{filename[:-3]}"
bot.load_extension(full_path)
print(f"{full_path} geladen ✅")
versuchs mal so
@misty narwhal
Danke Test es Jetzt
also so müsste es dann aussehen. ich habe auch cogs mit unterordnern und so passt das bei mir
"C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\Scripts\python.exe" "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py"
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 786, in _load_from_module_spec
setup(self)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
[Previous line repeated 994 more times]
RecursionError: maximum recursion depth exceeded
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py", line 21, in <module>
Bot.load_extension(full_path)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 791, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.alle.setup' raised an error: RecursionError: maximum recursion depth exceeded
Process finished with exit code 1
das kommt bei mir
Soll ich dir die setup.py schicken ??
ja
import discord
from discord.ext import commands
from discord.commands import slash_command
import ezcord
class Base(commands.Cog):
def __init__(self, bot: discord.Bot):
self.bot = bot
@slash_command(description=f"Here You are gonna Get The setup From AS › Bot ")
async def hello(self, ctx: discord.ApplicationContext):
await ctx.respond(
embed = discord.Embed(),
title="Setup",
description=Dash.amex-studios.com or use /setuptool,
color=discord.Color.Blue()
)
def setup(Bot: ezcord.Bot):
Bot.add_cog(setup(Bot))```
du musst unten den namen der class laden, nicht den datei namen
heißt:
ja
würde ich nicht so sagen, persönliche Präferenz irgendwie
PyCharm ist halt expliziet auf Python-Entwicklung ausgelegt und mit VSC kannst du noch so paar andere Sachen mit machen
Bleib einfach bei PyCharm, vor allem hast du ja auch noch die Professional Version
Ich Programmiere auch Mit js und websiten
In PyCharm?
Aber Nur noch 20 Tage oder so
Nein in VSC
jo, dann
habe halt vsc weil ich hier und da auch mal was anderes teste und deswegen
ja lerne grade Lua Go und Java
aber in beiden kannst du discord bots machen 
JAJA Java Mc plugins machen und Bots coden HAHHA
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects```
wenn ich Pip install Py-cord mache
C:\Users\vison\AppData\Local\Microsoft\WindowsApps\python3.10.exe: can't open file 'c:\\Users\\vison\\OneDrive\\Desktop\\Amex Studios\\AS Bot\\main.py': [Errno 2] No such file or directory
PS C:\Users\vison\OneDrive\Desktop\Amex Studios\AS › Bot> ```
??????
ok teste gleich
okay, danke dir 🙂
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects``` @urban glen
ja
Geht nicht du musst es da lassen
bei mir gehts so
file wird im kanal gelöscht und du hast dann nur den link
😄
ich lasse das mit dem channel is praktisch
jo
Kann wer helfen?
@solid ingot wie hast Du das in deinem, Dashboard gemacht, dass angezeigt wird, ob der Bot sich auf dem Server befindet oder nicht?
Ich habe versucht, dass in ner for Schleife über die Discord-API abzufragen, aber das dauert dann ja ewig mit den einzelnen Abfragen für jeden Server.
Kannst du nicht die Id vom Server mit bot.get_Guild benutzen und dann hast du halt entweder den Guild oder None
Dadurch weißt du’s ja
Ich nutze mein Dashboard mit PHP und ich habe kein Bot in meinem Projekt.
um grunde genau so wie in der dashboard tutorial reihe
Wie soll denn das ohne bot funktionieren?
einf die videos schauen oder den code ansehen dann weißt es 😄
meines Wissens werden die server des users der des dashboard benutzt angezeigt nicht die vom bot
Ja natürlich aber wenn er wissen will ob der bot auf dem Server ist
Dann brauch er schon nen bot?
man hat einen Bot beim dashboard code
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-dashboard/tree/851db04fa96b76a9270ce6594fbe852cfd9b030c
Discord Dev Portal ► https://discord.com/developers/applications
Danke an Nikos für die Unterstützung beim coden und an Pascal für das Thumbnail ❤️
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Hey...
Timo erklärt das wie er es macht in dem video drüber
Ja Kollege aber er sagt er hat eben keinen
ja dann geht es wohl logischerweise nd?
Das versuche ich ja zu sagen😭
.
ja aber verstehe eh nd was er dann abfragt wenn er den bot ja nd benutzt 😅
🤷♂️
fragt er bei jeden ob die bot id in den server members ist 🤔
meines Wissens dauert des bei manchen paar Tage?
As i said: Discord API Abfrage..
gehts genauer
https://discord.com/api/v10/guilds/ {guildId} /members/{botId}
Wenn http Code 200, dann ist er aufm Server
Wenn nicht, dann nicht..
@tawdry leaf @tawdry leaf talk
#💬・chat
srry timo
Hey leute habt ihr ein paar methoden so grundlegend um weniger cpu auf eurem server zu beanspruchen
cpu kannst du nicht groß beeinflussen
problem ist nach einiger zeit immer RAM
ram ist gar nicht mein problem die cpu ist nur nach einigerzeit zeimlich hoch
@solid ingot hast du dazu vlt. eine idee?
der erste schritt ist herauszufinden was viel ram verbraucht
na ram verbraucht der immer nur 50-60mb mehr nicht
achso dann cpu meinte ich
nach sowas wie while true loops habe ich ja schon verbessert aber was sind noch so typische verbraucherquellen?
mir wurde auch gesagt das intents viel leistung ziehen können deswegen wollte ich noch fragen ob diese intents so passen
du solltest natürlich nur die intents anmachen, die dein bot braucht
sonst kann es viele gründe dafür geben, schau einfach mal welches deiner systeme am meistens verbaucht
warum?
ich mach immer intents.all
Moin gibt es eine API mit der man checken kann ob eine Vanity frei ist?
einf es testen 🤔
Möchte ein vanity notifier bot machen :p
also eben mit dem vanity
wesbiten ja api weiß nd
alles klar
Moinoo, kann mir wer evtl. helfen?
Error:
[ERROR] Error in event on_member_update
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/client.py", line 399, in _run_event
await coro(*args, **kwargs)
TypeError: Welcome.on_member_update() missing 1 required positional argument: 'after'
Code:
@bot.event
async def on_member_update(member, before, after):
if before.premium_since is None and after.premium_since is not None:
embed = discord.Embed(
title=f"Vielen Dank für deinen Boost, {after.mention} 🚀",
description="> Danke, dass du den Server geboostet hast! Damit unterstützt du uns sehr! ❤️\n"
"> Du erhältst damit Zugang zu exklusiven Channel und eine neue Rolle. Viel Spaß damit! 🥳\n",
color=COLOR_RANDOM(),
timestamp=discord.utils.utcnow())
embed.set_thumbnail(url=after.avatar.url)
embed.set_footer(text="Keesus's Zentrale 🚀", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
channel = bot.get_channel(WELCOMECHANNEL)
if channel is not None:
await channel.send(embed=embed)
es gibt keine "member"
async def on_member_update(before, after)
before und after sind jeweils member objekte
siehe hier
Ich brauch mal hilfe unzwar hab ich nh db_manager datei die alle methoden zur kommunikation mit der datenbank macht und auf jeden fall würde ich gerne einen 2. bot benutzen weil ich den auf einem anderen server benutzen möchte mit anderem branding aber ich möchte nicht alles copy pasten. Kann ich das irgendwie verknüpfen ohne es so redundant doppelt zu haben?
du kannst wenn du eine zweite main datei im selben directory erstellt mit dem zweiten bot ganz normal auf die datei zugreifen
hab ich auch dran gedacht, ich hab den auf sparkedhost laufen. Da könnte ich das gelcihe repo konfigurieren und dann nur eine andere startup datei also?
ja das sollte gehen
spätestens wenn dein bot verifiziert ist darfst du nur noch die benötigsten intents nutzen. und wenn dein bot keine messages lesen muss kann man dadurch evtl auch leistung sparen, das weiß ich aber nicht genau
Das ist ja nervig
Als ob ich alle intents kenne
:p
es gibt 3 so schwer ist das nicht
Welche denn?
Hat jemand einen deutschen python vollkurs? (Youtube)
die siehst du alle im developer portal
Ok danke
dort müsstest du sie ja auch alle einzeln angeschaltet haben wenn du immer .all nutzt
Die 3 Buttons?
jo hab alles geschafft 🫶

👍🏽
👎


Weiß wer wie man ein pycord event erstellen kann was jeden Tag um 20 Uhr aufgerufen wird? Also nicht ale 24h wie man das mit asyncio machen könnte sondern wirklich so das man einstellen kann wann das passieren soll
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
UTC Zeitzone
► https://time.is/de/UTC
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....
@slow cosmos
Wie mit async
Du kannst discord.ext.tasks benutzen
wie kann ich das machen?
@solid ingot
du kannst zum beispiel nur ein system laden und schauen wie viel es verbraucht
aber in cogs geht das doch nicht wirklich oder versteh ich gerade einfach nicht das was du meinst
doch, gerade mit cogs geht es am besten, weil du einfach einzlene cogs laden kannst
ach stimmt so meinst du das
Wie kann mab bei ctx.respond 3 embeds in einer nachricht senden
embeds=[embed1, embed2, embed3]
ah das s hat mir bei embeds gefehlt danke
Wie kann man in python cogs eine slash command group machen. In der main.py habe ich aktuell die command group definiert, wenn ich die jetzt aber in verschiedenen anderen pycord cog files nutzen will bekomme ich den Error:
discord.errors.ExtensionFailed: Extension 'cogs.welcome_messages.setup_welcomemessages' raised an error: NameError: name 'welcome_messages' is not defined
Dann level.command
füge ich das dann einfach bei jedem command ein
Das anstatt @slash_command
oköö danke
Kann man in pycord embeds hex farben benutzen?
ja so
c = "0x459acb"
int_colour = int(c,16)
Nach 0x kannst du deine hex einfügen. Im Embed kannst du bei colour= dann int_colour einfügen
danke
Hat da noch wer eine idee weil das geht nicht bei mir irgendwie. Kann daran liegen das ich die cogs in verschiedenen Dateien gespeiechert habe und dort die command group nicht angezeigt wird. Wenn ich allerdings in jedem cog die group definiere bekomme ich den error das der slash command nicht eindeutig ist
die groups können immer nur in einem cog verwendet werden
und weil eine group als ein command gilt kansnt du den gleichen command nicht 2 mal erstellen
Warum int_colour?
Es geht auch glaube ich so: color=0xFFFFFF
ja python wandelt es dann in int um automatisch
aber du kannst halt nicht diesen hex code in ein Embed übergeben zum Beispiel
ja
wie hatte man nochma einen Typing Animation gemacht (bei slash command) und danach die nachricht dann halt kam ?
man macht den Slash Command
und da, wo eig. die nachricht geschickt wird kommt anstatt 'sending command' 'Bot is thinking...'
dafür gabs einen bestimmten code aber weiß ned mehr wie der hieß
ctx.defer()
wie kann ich machen das er commad nicht an gezeig wurd
was meinst du?
dass der Befehl nicht darüber angezeigt wird, z.B. /test
nicht:
await ctx.respond()
# sonder so:
await ctx.channel.send()
genau so. Du kannst es ja einfach mal so testen und dann siehst du ja ob es so geht

guck sie dir an
wenn er bot nicht auf server ist?