#Allgemeine Hilfe
1 messages · Page 69 of 1
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Schüler\Documents\Bots\FALCON\module\commands\Economy.py", line 21, in daily
current_kekse = random.randint(1, 10)
^^^^^^^^^^^^^^
AttributeError: 'Colour' object has no attribute 'randint'
@slash_command(name="daily", description="")
async def daily(self, ctx):
user_id = ctx.author.id
current_streak = await db.get_streak(user_id)
current_kekse = random.randint(1, 10)
Ne alles ist richtig eingerückt
Was genau klappt nicht mehr?
Die option wird gelb unterstrichen, funktionieren tut es glaub noch
Hover doch mal über das Gelbe.
Dann sollte eigentlich stehen was los ist
call expression not allowed in type expression
Ich verstehe deine Frage nicht
Das ist kein richtiger Fehler bei mir zeigt das manchmal rot an aber kA warum das ist
hm, triggered mich
Das ist kein richtige Fehler du brauchst keine Angst zu haben
Zeig da eine Lampe an oder
Hey Leute mein Bot zeigt Keine Commands mehr in VSC an
[ARSONA] Loaded 4 cogs
2024-02-12 18:13:48 INFO discord.client logging in using static token
2024-02-12 18:13:54 INFO discord.gateway Shard ID None has connected to Gateway (Session ID: e1e74df275d424498e4970e0d916948b).
[INFO] Bot is online with EzCord 0.5.1
╔══════════╦═════════════════════╗
║ Bot ║ Arsona#3350 ║
║══════════╬═════════════════════║
║ ID ║ 1206572117387386890 ║
║══════════╬═════════════════════║
║ Discord ║ 2.3.2 ║
║══════════╬═════════════════════║
║ Commands ║ 0 ║
║══════════╬═════════════════════║
║ Guilds ║ 1 ║
║══════════╬═════════════════════║
║ Latency ║ 124ms ║
╚══════════╩═════════════════════╝ ```
funktionieren die commands denn?
also ist nur das ezcord ready event falsch oder nicht
wait
Halloo, man hört auch mal wieder was von mir.
Auf jedenfall ich benutze seit neustem wieder PyCharm und mein Problem ist, wenn ich py-cord in einer .venv 3.12 installieren will krieg ich einen Error:
Der Error ist unten im Anhang ist zu groß 
Py-cord kann man nicht mit python 3.12 nutzen.
Nur Python 3.8 - 3.11
kracht es dolle
Doch Die Pycord Master Branch sollte mit python 3.12 funktionieren
ja die master branch xd
Führe den folgenden Befehl aus, um den Pycord Master-Branch zu installieren.
pip install git+https://github.com/Pycord-Development/pycord```
**Hinweis:** [Git](https://git-scm.com/downloads) muss bei dir installiert sein.
Ah danke Nikos :D
Aber weißt du wie ich die version runter stellen kann, da easy-pil ja auch nd mit 3.12 geht
Ich habe mich nur an die Infos von pypi angehalten xD
über python.exe ig
andere python version installieren und dann den interpreter auswählen i guess
wie stell ich ein das es nd die .venv ist
😂
Ich brauche hier Hilfe:
def blacklist_check():
async def predicate(ctx):
if is_user_blacklisted(ctx.author.id):
await ctx.respond("Du stehst auf der Blacklist und kannst diesen Befehl nicht verwenden.", ephemeral=True)
return False
return True
return commands.check(predicate)
An sich geht das System, aber er antwortet nochmal mit dem hier (siehe Bild) und ich will das nicht
Der Fehler hat aber nix mit dem Code zu tun den du geschickt hast
@raven lotus tolle Feature mit Blacklist gibt es bei so einem Package namens ezcord
Seid wann
*Seit
Ne
ik, aber ich weiß nicht wie das geht
ich schon 😄
bot.add_blacklist
bruder
was denn los 😭
das hilft mir nicht, ich habe es mir angeschaut und ich checke es nicht 😦
SAMMA
Lucky rastet aus
bot.add_blacklist(db_name="blacklist",db_path="blacklist.db")
Ja aber
fertig 🙂
😮
Bruder
Ja
Nö
Ich will wissen wie man das bei Commands macht
hmm
@ was
sorry aber ich verstehe nicht ganz was du nicht verstehst 😅
sag nicht es sind alle Commands
darf ich ein beispiel machen 😄
Das sind Commands mit dem ezcord Blacklist
also du magst nicht des automatische sondern selber die slash cmds machen
bitte 🙏
was fallen du ins wort
Ich darf das
Nein, ich will z.B. jemanden auch hinzufügen
🤨
was meinst du mit hinzufügen blacklisten?
/Admin Blacklist @tawdry leaf Grund: ist böse
😑
dm?
ja
thx Lucky
no problem
Kann man bei der Ezcord Blacklist auch einstellen, wer nur die Commands benutzen darf?
[ERROR] Error while executing /daily
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Schüler\Documents\Bots\FALCON\module\commands\Economy.py", line 24, in daily
current_keks = random.randint(1, 10)
^^^^^^^^^^^^^^
AttributeError: 'Colour' object has no attribute 'randint'
es gibt owner_only
@slash_command(description="🍪 × Hole dir deine täglichen kekse ab!")
@commands.cooldown(1, 86400, commands.BucketType.user)
async def daily(self, ctx):
user_id = ctx.user.id
current_streak = await db.get_streak(user_id)
current_keks = random.randint(1, 10)
Von wo kommt Random her?
Also import?
wie kann ich checken ob der user die rolle hat?
if role in user.roles
wie kann ich was in eine liste hinzufügen wenn ich self.list = [] nutze
self.list.append(was du reinmachen willst)
Mahlzeit zusammen,
Gestern ging noch alles heute nicht mehr ,... Sobald ich den Bot starte kommt diese Fehlermeldung. Jemand eine idee ?
RuntimeWarning: coroutine 'BotBase.load_extension' was never awaited
bot.load_extension(f"cogs.{filename[:-3]}")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback```
Der Bot startet aber es gehen keine Commands
ich möchte die aktuelle zeit im status vom bot haben aber der updated nich die zeit
time = datetime.now().strftime("%d-%m-%Y %H:%M:%S")
benuzt d8u py-cord oder discord.py
Nutz die tasks Loop Methode
Ok
await bot.load_extension(...)
ok
Kleine Frage: ezcord.Blacklist. Ist das Serverübergreifend oder für jeden Server individuell
server übergreifend
In discord.py muss man das mit await machen
k
Wie funktioniert eigentlich dieses ezcord Blacklist mit so konfigurations Sachen, man muss da ja irgendwas konfigurieren. Finde dazu in der ezcord Dokumentation aber nichts
hm wie kannst du dazu nichts finden 😂
Hatte ja gestern auch schon ein "problem" mit option, beim hosting sehe ich das:
auf meinem pc funktionierts btw, hab pip freeze kopiert
Hallo weiß wer warum VSC aufeinmal mir alle command wo ich Options benutzte unterstreicht obwohl ich nichts geändert hab?
Aber der code geht er unterstreicht mir aber das es falsch ist
bei mir auch
Aber das komische ist es geht ja alles
ja
@cloud cedar @hard pivot das ist meines Wissens ein pylance fehler und deswegen kommt der error
Und wie kann ich das beheben?
hm bei panel weiß ich es grad nd habe es sonst nur bei pycharm hier gesehen
Zeig mal deine requirements.txt
Gibt es ne alternative die ich in VSC nutzten kann?
Weil wie ich grade rausgefunden hab bringt ausschalten nicht so viel (seh nicht mehr wenn wirklich was falsch sein sollte)
bei der pycharm kann man des ausmachen aber des ist eig eher das es als warning bei problems ist
also als error hat es meines Wissens keiner so wie du oder ihr
Ja also ein Error giebt es nicht es wird halt unterstrichen
ja das kannst du ausstellen
wie
Noch aktuell?
ja
Schonmal #🔍・pycord-help befolgt?
ich probiers nochmal
weiss nicht wann und wo ich auf dem dashboard pip ausführen kann
Habe überlesen, dass es sich um das Panel dreht. 😄
soll ich dir die ganze datei schicken?
sind 283 sachen
warum kopierst du ganze pip freeze
hab einfach die von meinem computer kopiert, brauch wahrscheinlich nur die 10 von discord
dann ist deine ganze datei falschmach da nur sachen rein die du brauchst
hab kein bock die rauszusuchen
bro
mach ich jetzt aber
das ist meistens nur 4 sachen
ich schau mal
Oh, sorry. Scheine wohl extrem blind zu sein. Leider gibt es nur kein Example. Noch ne andere Frage zu ezcord Blacklist, dass kann dann nur ich und eine andere Person ausführen die commands dazu, wenn man die config entsprechend einstellt richtig?
ImportError: cannot import name 'SlashCommandOptionType' from 'discord.enums' (/home/container/.local/lib/python3.10/site-packages/discord/enums.py)
was genau muss ich den dafür importen?
hä
das macht kein sinn was du schreibst
alles du importierst in die requirements.txt datei
und anstatt bei import discord, schreibst du py-cord so einfach ist das
ja
ich hab
py-cord
aiosqlite
easy-pil
owner_only dann kann es nur der owner aber wieso sprecht ihr 2 nicht also denke mal du und quark meinst du mit du und eine andere person?
nein sowas gibt es nicht es können alle admin des servers bei den eingestellten server
Ja, meine ich. Was meinst mit sprechen?
naja du schreibst das grad was er gestern gefragt hat 😄
Ist Visual studio Code
mach mal rechtsklick drauf gibt es da was
maybe dm nachrichten nicht hier senden xD kannst dm für mehr info
halt normales menü
habe halt nd des problem
ok ich schau mal
Ok
Aber stimmst du mir da zu bei dem was sich da schrieb
Hab das problem gelöst hab jetzt die version die was davor da war genommen
ne weil es nd geht xD
nice
Ist es eigentlich sinnvoller immer eine neue Button class zu machen oder eine class die Buttons generriert und dann nur noch das callback hinzuzufügen?
weil ich hab so um die 100 button jetzt schon
Ich mach normalerweise gleich views für die verschiedenen Zwecke
Kann man ein Modal in einer View class machen?
Ein Modal ist quasi eine eigene View
Kann ich das also nicht in eine discord.ui.View klatschen?
Du kannst nicht als View ein Modal angeben sondern musst extra mit send_modal antworten
ah ok verstehe
Wie stellst du dir das denn vor?
Dachte es geht änlich wie bei @discord.ui.select oder so
Selbst wenn, sie stellst du dir das vor?
Die View gibst du ja dann beim senden einer Nachricht an
Und dann soll beim senden das Modal aufpoppen?
Das macht ja kein Sinn
Das kann nur als Antwort auf eine interaction, z.B. Button drücken oder so passieren
Wie kann ich so ein drehend avatar machen also wie beim server icon
[ERROR] Error while executing /memory
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Schüler\Documents\Bots\FALCON\module\commands\memory.py", line 214, in memory
message = await interaction.original_response()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'EzContext' object has no attribute 'original_response'
message = await interaction.original_response()
master branch?
Jo, wie kann ich Buttons persistent machen? Ich habe den timeout auf None gesetzt, jedem Button eine custom ID gegeben und auch der on_ready die View Klasse übergeben. Was fehlt da noch?
ne
deswegen error
oha
das wars eigentlich
Ich sehe grade die Stelle in der on_ready ist markiert. Scheinbar soll ich noch die ganzen Parameter wie bot etc. übergeben. Aber ich soll sie alle mit "bot= ..." übergeben. Wie definiere ich die ohne das der Wert weg ist frage ich mich
wie bitte?
die parameter, die du im konstruktor haben willst müssen natürlich auch im on_ready gegeben werden
wenn du add_view benutzt
Ja genau, ich muss doch alle Parameter mit übergeben die von der View benötigt werden. Aber dafür muss ich die ja erstmal wieder neu definieren oder? Wenn ich die einfach so reinschreibe wird es als Fehler gewertet. Da ist mein Brain grade stuck 😅
Kannst du so eingeben wie du sie im kosntruktor stehen hast
aber da ctx zu übergeben wird wohl nicht funktionieren und macht auch nicht wirklich Sinn
Hab das in meinem Command übergeben weil ich den ctx.author brauchte
Wenn der ct.author und der user der den Button clickt der gleiche ist kannst du auch interaction.user nehmen. Ich weiß jetzt nicht was du in deinem view machst deswegen kann ich dir leider nicht sehr weiterhelfen
Das mit dem ctx hat inzwischen geklappt. 👍 Aber das Ursprungsproblemchen mit dem Konstruktor besteht immer noch. 😅
class MoneyLending(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.betrag = None
self.spieler = None
self.pfand = None
self.db_lock = asyncio.Lock()
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(ButtonView(self.bot, self.betrag, self.spieler, self.pfand))
async with self.db_lock:
self.db = await aiosqlite.connect("DGS.db")
await self.db.execute(
"""
CREATE TABLE IF NOT EXISTS Lending (
user_id INTEGER PRIMARY KEY,
user_name TEXT,
provided_money REAL DEFAULT 0
)
"""
)
await self.db.commit()
Ich hab die Werte die ich brauche im Konstruktor erstmal als None definiert. Jetzt kann ich die Buttons auch nach dem Bot Neustart benutzen. Aber wie kann ich die so definieren, dass sie den selben Werten entsprechen, wie sie sie auch vor dem Neustart hatten? Geht das überhaupt einfach so? Muss ich doch bestimmt erstmal in der Datenbank zwischenspeichern oder
Außerhalb der Klasse definieren oder nötigenfalls in der DB speichern.
Alles klar
Außerhalb der Klasse wird nicht funktionieren, weil ja alles „gelöscht“ wird nach einem Neustart. Datenbank würde funktionieren denk ich mal
jup
weiß jmd wieso bei mir seit neuestem folgendes unterstrichen wird aber einwandfrei funktioniert?
wenn ich '[]' nutze ist's nicht mehr unterstrichen, aber nix funktioniert mehr 💀
HTML und CSS kann man doch auch in Pycharm Professionall programmieren oder?
ist bei mir auch so, keine Ahnung
wtf
Soweit ich weiß ja
Würde dir aber webstorm empfehlen
ja brauche ich eig nur für die tutorialreihe mit dem bot dashboard
Du kannst auch webstorm holen
Gibt es hier jemanden, der sich mit diesem Thema auskennt? Ich benötige Hilfe dabei, sicherzustellen, dass nur zugelassene Benutzer autorisiert werden können. https://discord.com/developers/docs/tutorials/configuring-app-metadata-for-linked-roles#registering-your-metadata-schema
Hier findest du das Main-Datei Template 🗿
Wenn ich pycord über masterbranch installiere klappt alles, wenn ich das dann aber importieren möchte steht da das das package nicht gefunden wurde
was soll ich jz machen?
Hab nachgeguckt es wird nur der ordner .dist runtergeladen
nicht wie bei anderen ordnern der main ordner
Führe den folgenden Befehl aus, um den Pycord Master-Branch zu installieren.
pip install git+https://github.com/Pycord-Development/pycord```
**Hinweis:** [Git](https://git-scm.com/downloads) muss bei dir installiert sein.
Weis jemand wie man fixen kann hatte das noch nie
weiß wer warum er unten die nachricht nicht bearbeitet
view = discord.ui.View()
view.add_item(discord.ui.Button(label="+1 Day",
style=discord.ButtonStyle.green,
custom_id="add_day",
emoji=":heavy_plus_sign:",
row=0
))
view.add_item(discord.ui.Button(
label="+1 Week",
style=discord.ButtonStyle.green,
custom_id="add_week",
emoji=":heavy_plus_sign:",
row=0
))
view.add_item(discord.ui.Button(
label="+1 Month",
style=discord.ButtonStyle.green,
custom_id="add_month",
emoji=":heavy_plus_sign:",
row=0
))
view.add_item(discord.ui.Button(
label="+1 Year",
style=discord.ButtonStyle.green,
custom_id="add_year",
emoji=":heavy_plus_sign:",
row=0
))
view.add_item(discord.ui.Button(
label="-1 Day",
style=discord.ButtonStyle.red,
custom_id="remove_day",
emoji=":heavy_minus_sign:",
row=1
))
view.add_item(discord.ui.Button(
label="-1 Week",
style=discord.ButtonStyle.red,
custom_id="remove_week",
emoji=":heavy_minus_sign:",
row=1
))
view.add_item(discord.ui.Button(
label="-1 Month",
style=discord.ButtonStyle.red,
custom_id="remove_month",
emoji=":heavy_minus_sign:",
row=1
))
view.add_item(discord.ui.Button(
label="-1 Year",
style=discord.ButtonStyle.red,
custom_id="remove_year",
emoji=":heavy_minus_sign:",
row=1
))
view.add_item(discord.ui.Button(
label="Order",
style=discord.ButtonStyle.green,
custom_id="order",
emoji=":white_check_mark:",
row=1
))
view.add_item(discord.ui.Button(
label=f"Max ({time_str})",
style=discord.ButtonStyle.grey,
custom_id="max",
emoji=":chart_with_upwards_trend:",
row=1
))
await msg.edit(embed=em, view=view)```
wo hast du denn die variable vergeben
Wieso gibts du die discord.ui.View() an?
bei einem ctx.respond. das geht habe ich auch schon ausprobiert wenn ich dieses msg.edit oberhalb von der view variable anbringe dann wird das geschickt
benutze die methode so da ich sie so umbauen kann das es resurcensparender ist
Wäre hilfreich einen kompletten Code zu sehen. Wir wissen weder, wie die Nachricht vorher aussah oder ob dort bereits eine View drinnen ist.
sehe da nirgends msg=
Ich schon
Achso
Wie kann ich das fixen und was bedeutet es überhaupt
Der findet eine Datei nicht
Deswegen Server disconnect
Wie kann ich beim modal überprüfen ob diese value überhaupt angeben wurde?
if self.children[0].value is None:```
wenn ich das gerade richtig aus dem Kopf abrufen kann. Schaue zur Not dann nochmal im Code.
dankeschön
Hat geklappt so?
ja habs halt nur bisschen anders gemacht
Okay super. 🙂
hey jungs wichtige frage bekomms gerade nicht gebacken
wenn ich ein thread in einem forum post erstelle will ich das der bot ein tag auswählt wie geht das?
thread = await abmeldung_channel.create_thread(name=f"┃⏰-{interaction.user.name}", embeds=[embed1], tags="𑁉 ABMELDUNG")
check es trotz docs nicht idk
- Erstelle die Tags mit dem Bot damit sie eine ID haben
- Gehe alle Tags von dem Kanal durch und Speicher das Tag Objekt das du brauchst
- Bearbeite dann deinen Tread und füge den Tag hinzu
So hab ich es gemacht
Du brauchst auf jeden fall ein tag object um den tag hinzuzufügen
Ja wie in Schritt 2 gesagt
Ausgehend vom Discord Bot Dashboard tutorial - Wie kann ich ein select menu machen, welches als auswahlmöglichkeiten alle rollen eines servers hat?
Und wie kann man machen das sich die Seite nicht neu lädt wenn man auf einen link klickt wie beim CookieBot Dashboard?
ich vermute das das select menu wie immer gemacht wird. und um ein rollen select menu zu machrn gibt es ein @discord.ui.role_select(). guck dir vielleicht mal die docs oder die pycord guide dazu an
ich meine kein select menu in discord sondern ein drop down in html
ih dann keine ahnung sorry
[COGS] Loaded 1 cog
[ERROR] Error in event on_connect
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Arsona-Network.de\.venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\vison\Desktop\Arsona-Network.de\.venv\Lib\site-packages\discord\bot.py", line 1164, in on_connect
await self.sync_commands()
File "C:\Users\vison\Desktop\Arsona-Network.de\.venv\Lib\site-packages\discord\bot.py", line 709, in sync_commands
check_guilds = list(set((check_guilds or []) + (self._bot.debug_guilds or [])))
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate list (not "str") to list
Signed in as A - System
[INFO] Bot is online with EzCord 0.5.3
╭─────────────────┬─────────────────────┬────────┬──────────┬────────┬─────────╮
│ Bot │ ID │ Pycord │ Commands │ Guilds │ Latency │
│─────────────────┼─────────────────────┼────────┼──────────┼────────┼─────────│
│ A - System#1568 │ 1207379710275878962 │ 2.4.1 │ 0 │ 1 │ 118ms │
╰─────────────────┴─────────────────────┴────────┴──────────┴────────┴─────────╯``` Fehler Code
ich weiß nicht Ganz was das bedeutet ich kann aber mal sagen was der code machen soll
Also der bot ist für einen mc server und da ist erstmal nur der /help command drin
Was genau versuchst du da?
Hi, kann mir jmd sagen wie ich ddas event anstuern kann wenn ich bei einem Pageinator die seite wechsel
Meinst du mit nem Button oder wie?
Timo sollte meines Wissens dazu nen Video gemacht haben.
Wenn ich die Seite wechsel ob es dafür ein event gibt
warum brauchst d denn ein event dafür? müsste man nicht mit dem button callback was machen können? kennne mich mit oaginatoren aber nicht aus
Ich ebend auch nicht XD
Es gibt kein Event für seiten wechseln
Okay, aber wei soll ich das machen, wenn ich eine seite wechsel will ich mein dropdwon updaten
du nutzt nh liste für die embeds / context
Dann musst du dir nur die logik ausdenken
Kannst ja dein eigenes Event dazu packen. 😄
sprich
if index == 5:
await interaction.response.edit_message(embed=embeds[5], view=....) ```
oder du greifst einfach auf das object zu und änderst so alles
Naja ich mcöhte ja keine setite fewtlegen
aber kann ichd as nutzen?
https://docs.pycord.dev/en/stable/ext/pages/index.html#discord.ext.pages.Paginator.page_action
ja kannst du
- liste erstellen
- embeds / context hinzufügen
if embeds > 0:
paginator = pages.Paginator(liste)
await paginator.respond(ctx.interaction)
else:
await ctx.respond(embed=liste[0])```
Naja das hier ist mein code```py
#print(data["data"])
pages = []
i = 1
embed_strings = []
options = []
for order in data['data']:
order_str = f"**{i}.** Order ID: {order['id']} | Package: {order['name']} | Status: {order['status']}"
i += 1
embed_strings.append(order_str)
chunks = [embed_strings[i:i + 10] for i in range(0, len(embed_strings), 10)]
for index, chunk in enumerate(chunks):
embed = discord.Embed(title="Your Orders", color=int(get_config("colors")["green"], 16), description='\n'.join(chunk))
pages.append(Page(embeds=[embed]))
for option in chunks[0]:
print(option)
order_id_match = re.search(r'Order ID: (\d+)', option)
package_match = re.search(r'Package: (\w+)', option)
options.append(discord.SelectOption(label=f"{order_id_match.group(1)} | {package_match.group(1)}", value=f"{order_id_match.group(1)}"))
select = Select(placeholder='Select an order', options=options)
view = View()
view.add_item(select)
paginator = Paginator(pages=pages, custom_view=view)
await paginator.respond(interaction, ephemeral=True)```
Funktionierts?
Naja also das was ich schickt hat funktionieren die seiten und auf seite 1 auch das dropdown aber wnen ich die seite wechsel soll der inhalt also die auswhl punkte von dem dropdown geändert werden
erstell nh klasse und pass es an wie du es brauchst
dasd ding ist ich muss ja irgenwie das triggern
Ja
musst du dir die events anschauen
die die Klasse bereitstellt
wo kann man nochmal hintergründe und so zu bildern hinzufügen (also auf welcher website)?
Naja da ist ja mein problem das heir ist das einigste was ich mir vorstellen kann aber ichw eiss auch ned wie ichd as eeinabuen kann
https://docs.pycord.dev/en/stable/ext/pages/index.html#discord.ext.pages.Paginator.page_action
def update_custom_view
This module provides an easy pagination system with buttons, page groups, and custom view support. Example usage in a cog: API Reference: Page: Attributes content, custom_view, embeds, files. Metho...
Ja das weiss ich aber der paginator muss ja wissen, ah der hat ne seite gewechselt
current_page
gibt dir den index zurück
Musst du halt nur bisschen überlegen
wie du das löst
hey, keine ahnung wass ich nicht importiert habe aber mein hosting geht nicht.
Traceback (most recent call last):
File "/home/container/main.py", line 2, in <module>
from discord.commands import Option
File "/home/container/.local/lib/python3.10/site-packages/discord/commands/init.py", line 27, in <module>
from .core import *
File "/home/container/.local/lib/python3.10/site-packages/discord/commands/core.py", line 49, in <module>
from ..enums import MessageType, SlashCommandOptionType, try_enum
ImportError: cannot import name 'SlashCommandOptionType' from 'discord.enums' (/home/container/.local/lib/python3.10/site-packages/discord/enums.py)
container
requirements:
py-cord==2.4.1
easy-pil==0.1.9
aiosqlite
fehlendes package
welches
nutz lieber nh ältere Version von pycord
SlashCommandOptionType
ist das ein eigener install?
Nein gehört zu Pycord
2.4 ist noch zu frisch
Welche soll ich nehmen
aufjedenfall eine vor 2.4
Reicht 2.3
Liegt am WorkingDirectory vom Hoster
meld dich da lieber an den Support von denen
mach mal pip uninstall pycord
wir probieren mal was
pip install git+https://github.com/Pycord-Development/pycord
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - Pycord-Development/pycord
mach das mal so
Hi, ich bin dabei mir für meinen Modmail Bot ne eigene Klasse mit allem Möglichem in meiner main.py zu bauen.
Hätte später jemand, der davon Ahnung hat, mal Zeit, da mit mir drüber zu schauen?
Weil ich hab sowas noch nicht gemacht und will wissen, ob das so geht, was ich da geschrieben hab 😅
Wann hättest du Zeit? Aber wird wahrscheinlich eher bei mir Knapp. Falls es bei mir doch gleich geht pinge ich dich einfach?
Wird nicht vor 21:30 😅
Ja kein Ding, verständlich ^^
Wie kann man ein Animeten Profilbild bei Bots machen
@void creek https://youtu.be/F4Wpu_aMrnY
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Discord Bots können seit heute animierte Profilbilder haben! Wie ihr so ein Avatar hochladen könnt, zeige ich euch in diesem Video!
hast du eine idee woran es liegen könnte
habe es mir nd angeschaut
alles gutt habe es gerade gefixxt row reihe war zu lang
ah
@limpid wolf doch noch da? 
hm wollte eigentich in 5min schlafen gehen
Hm ja aber jetzt haha
Oha
deswegen hört es auf zu stinken xD

@solid ingot kan ich beim ezcord status changer auch discord.watching nehmen
Priobieren geht über Timo pingen
Tolles sprichwort weißte
jo
ja kannst du kekw
steht doch bei den docs 
Ne
doch
kekse aber zackig
ok
ich warte
hm kekse
so
bot.add_status_changer(
[
discord.Activity(
type=discord.ActivityType.watching,
name="YouTube"
),
]
)
Wie dann
Doch geht
nö
Doch
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Discord Bots können seit heute animierte Profilbilder haben! Wie ihr so ein Avatar hochladen könnt, zeige ich euch in diesem Video!
Hier findest du das Dashboard Template 🗿
Hi, ich habe mal eine frage ich nutze ein AutoCompletion für meinen /-Command und ich bekome die lsite für das AutoC
['Paper (1)', 'PurPur (2)', 'Fabric (3)', 'Forge (4)', 'Bungeecord (5)', 'Wordpress (6)', 'Basic (7)', 'THE ISLE (8)', 'Euro Truck Sim 2 (9)', 'American Truck Sim (10)', 'Satisfactory (11)', 'Python (12)', 'CurseForge Modpacks (13)', 'ARK (17)', 'Terraria (18)', 'tModLoader (19)', 'Next Cloud (20)', 'TVS - Temp Voice System (21)', 'TS - Ticket System (22)', 'ECS - Embed Creator System (23)', 'BCS - Button Creator System (24)', 'MH - MySQL Handler (25)', 'Python Lifetime (27)', 'Palworld (29)', 'Webhook Test (31)', 'Test V1 (32)']
aber wenn ich den Command eingebe fehlt die 32 und auch wenn ich danach suche wird da nix gefunden
Ne eght auch ned
Komisch der hat meines Wissens ja kein Discord Limit der autocomplete
Hm okay
Doch, 25
Soweit ich mich erinnere
Zumindest was angezeigt werden kann, wie sieht denn dein Autocomplete aus?
ja aber man kann mehr haben als angezeigt ich habe da ein time converter drin und der hat mehr als 25 values
data = await self.api_request(f"{get_config('wemx')['api_endpoint']}/api/v1/packages?paginate=1000")
result_list = [f'{item["name"]} ({item["id"]})' for item in data['data']]
print(result_list)
return result_list````
Und in der Option?
async def addpackage(self, ctx: discord.ApplicationContext, package: Option(str, "Select a WemX category", autocomplete=get_packages) ,role: Option(discord.Role, "Select a role")):
Du heißt da kein autocomplete handler Von ezcord oder so
Wenn du was eingibst dann wird ja sicher nicht danach gesucht oder?
Genau und nein Ezcord nutze ich nicht
Kann mir jemand erklären warum diese Options eigentlich diese Warnung im VSCode ausgeben? Ist der Code aus dem YT Video. Funktioniert auch, nur diese Warnungen versuche ich zu deuten...
Habs gefunden. Die Beschreibung der Optionen soll wohl mit einem decorator erfolgen.
2x discord.Option()?
Geht das überhaupt?
Habs gerade nochmal getestet, aber klappt
Okay. ^^
Aber geht jetzt alles?
Jip, passt soweit alles.
Super. 🙂
Wenn ich mit Madplotlib ein Diagramm der Serveranzahl machen will, muss ich das einfach mit Datum in einer Datenbank speichern, oder geht das einfacher?
Kannst du bestimmt auch anders regeln, aber nötigenfalls geht das auch über die Datenbank 🙂
Ja, wenn du zu dem Datum die Anzahl Server in der Datenbank speicherst kannst du daraus ein Diagramm machen.
Meint ihr ich soll immer on ready oder fest jeden tag um 12 Uhr oder so speichern?
Mach doch nen Task, der um 00:00 Uhr triggert. 😄
wie gib ich den bot auch bei einer modal class an auch gleich?
Wie meinst Du das?
hab schon
Musst du limitieren auf 25 mit [:25]
Mach auch der Einfachheit zuliebe einfach nur ne Liste mit den Option-Names und iteriere dann mit enumerate da durch und lass die zahl automatisch einsetzen.
@thick haven
Wieso bekomme ich diesen Fehler ?
[ERROR] Error while executing /clear
Traceback (most recent call last):
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\YT197\Desktop\Allgemein\Dev\Python\NØVΛCØRD\cogs\mod\clear.py", line 41, in clear
await ctx.respond("Messages Deleted", ephemeral=True)
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 282, in respond
return await self.interaction.response.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 825, in send_message
await self._locked_response(
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1090, in _locked_response
await coro
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 219, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
from datetime import datetime
from utils.config import *
class ClearCommand(commands.Cog):
def __init__(self, bot: discord.Bot):
self.bot = bot
@slash_command(description="clears messages in a channel")
@commands.has_guild_permissions(manage_messages=True)
async def clear(
self,
ctx,
msgs: Option(int, "The number of messages to delete"),
reason: Option(str, "The reason for the deletion"),
):
await ctx.defer()
channel = ctx.channel
async for message in channel.history(limit=msgs):
await message.delete()
em0 = discord.Embed(color=MainColor)
file0 = discord.File("img/Delete.png", filename="Delete.png")
em0.set_image(url="attachment://Delete.png")
em1 = discord.Embed(
title="Messages Deleted",
color=MainColor,
timestamp=datetime.now(),
)
em1.add_field(name="Moderator", value=ctx.author.mention, inline=False)
em1.add_field(name="Reason", value=reason, inline=False)
em1.add_field(name="Messages Deleted", value=msgs, inline=False)
file1 = discord.File("img/Imageline.png", filename="Imageline.png")
em1.set_image(url="attachment://Imageline.png")
em1.set_footer(text=self.bot.user.name, icon_url=self.bot.user.avatar.url)
em1.set_thumbnail(url=self.bot.user.avatar.url)
await ctx.respond("Messages Deleted", ephemeral=True)
await ctx.send(embeds=[em0, em1], files=[file0, file1])
def setup(bot: discord.Bot):
bot.add_cog(ClearCommand(bot))
Falcher Code. Müsste was mit deiner Interaction sein.
await self.interaction.response.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```
Das ist dein Fehler.
Habe das nicht mal in meinem Code
In ner anderen Class? Wo du Buttons definiert hast evtl?
Welche Buttons ?
Habe keine Buttons definiert
Ach nvm, die Interaction ist einfach nur fehlgeschlagen.
Ja und ich weiß ned warum
Deleted er die Nachrichten? Hat er die Permissions dazu? Und den richtigen Intent?
Alles da
Ich hab mal irgendwo gesehen das wer eine database.db in seinem projekt hat, was eine Art Datenbank ist die wie eine Tabelle angezeigt wird. Wie kann ich das in PyCharm (Pro) machen?
SQL Viewer installieren
warum wird die datenbank nicht erstellt
class Booster(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.db_path = "booster.db"
async def open_db(self):
db_exists = os.path.exists("booster.db")
if not db_exists:
db = await aiosqlite.connect("booster.db")
await db.execute('''
CREATE TABLE IF NOT EXISTS boosters (
user_id INTEGER PRIMARY KEY,
boost_count INTEGER DEFAULT 0
)
''')
await db.commit()
await db.close()
return await aiosqlite.connect("booster.db")
async def create_tables(self):
db = await self.open_db()
await db.execute('''CREATE TABLE IF NOT EXISTS boosters (user_id INTEGER PRIMARY KEY, boost_count INTEGER DEFAULT 0)''')
await db.commit()
await db.close()
async def on_ready(self):
await self.create_tables()
Wer sorgt dafür das on_ready aufgerufen wird? Brauchst du nicht noch @commands.Cog.listener() als decorator?
glaube ja
wie kann man eine db sich anschauen?
DANKE GEHT
Kannst dir z.b. in VSCode nen Addon Installieren. SQL Viewer (hat jemand weiter oben bereits geschrieben). Hab selbst jetzt in meinem VSCode den "SQLite Viewer" installiert.
hoffe mein bot bleibt bis um null an haha
das gibts für vs? hab immer ne website benutzt, danke
gibts bei pycharm leider nicht
VSC oder auch VS sind beide sehr sinnvoll, gibt viele NuGets und Packages, deswege besser als pycharm 😂
Natürlich nur Ansichtssache
oh, ich meinte vsc
doch geht
Vs gibt's aber auch
ich finde es da aber nicht
habs irgendiwe geschaft
A free online SQLite Explorer, inspired by DB Browser for SQLite and Airtable. Use this web-based SQLite Tool to quickly and easily inspect sqlite files on the web.
das kannst du auch benutzen
Gibt's in pycharm aber auch als schon integrierte Funktion
Database Tools heißt das meine ich
@lofty rock dsas habe ich
https://plugins.jetbrains.com/plugin/index?xmlId=com.github.gitofleonardo.simplesqlitebrowser
A simple plugin that helps you to view your sqlite databases in Intellij Platform. It's also good to directly double-click the database file to open it in your Android...
@solid ingot welches plugin nutzt du um DBs zu sehen?
schau ich mir gleich mal an
ok
Wie kann ich von allen Discord Servern auf die mein Bot ist die Member anzeigen lassen (Ohne Bots)
wie willst du es ohne bot machen?
Ich meine das nur die User anzegeigt werden sollen ohne die Bots die auf dem Dc sind. Nur wirkliche member
ja
Und wie mache ich das ?
/help command zu machen !
Kann mir jmd helfen
Traceback (most recent call last):
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-WemX\cogs\wemx.py", line 342, in next_button
await interaction.message.edit(embed=self.create_embed(self.get_current_page_data()), view=self)
AttributeError: 'Button' object has no attribute 'message'```
Musst button und interaction tauschen
Okay jetzt kommt derfer() nicht gefunden
Traceback (most recent call last):
File "C:\Users\jurek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-WemX\cogs\wemx.py", line 341, in next_button
await interaction.defer()
AttributeError: 'Interaction' object has no attribute 'defer'```
Interaction.response.defer()
danke
Hi, weiss jmd warum er das dropwdown nie entfernt aber dafür einfach ein zweitest hinzufügt obwolh ichd as alte doch lösche?
self.remove_item(orders_dropwdown(f"{self.current_page}"))
self.update_buttons()
self.add_item(orders_dropwdown(f"{self.current_page}"))
await self.message.edit_original_response(embed=self.create_embed(data), view=self)```
du musst nach dem remove_item auch die message editen
das mit update_buttons geht glaube nd so xd
Hm eght auch ned dupliziert das einfach nur
self.remove_item(orders_dropwdown(f"{self.current_page}"))
await self.message.edit_original_response(view=self)
self.update_buttons()
self.add_item(orders_dropwdown(f"{self.current_page}"))
await self.message.edit_original_response(embed=self.create_embed(data), view=self)```
ich komme nicht weiter wenn man was ins ticket schreib soll der user eine dm bekommen mit der nachricht die da rein geschrieben wurde aber ich bekomme das nicht ganz hin kann mir wer helfen
@bot.event
async def on_message(message):
if message.author.bot:
return
if isinstance(message.channel, discord.DMChannel):
if await modmail().one("SELECT user_id FROM blacklist WHERE user_id = ?", message.author.id):
return
ticket_channel_id = await modmail().one("SELECT channel_id FROM tickets WHERE user_id = ?", message.author.id)
if ticket_channel_id is not None:
channel = bot.get_channel(ticket_channel_id)
if channel is not None:
await channel.send(message.content)
return
welcome_embed = discord.Embed(
title="Willkommen im Modmail!",
description="Bitte beschreibe dein Anliegen möglichst genau, damit wir dir schnellstmöglich helfen können!\n"
"Dein Ticket wird für dich erstellt",
color=discord.Color.green()
)
ticket_embed = discord.Embed(
title=f"Neues Ticket von {message.author.name}",
description="Benutze `/ticket_text` für eine vorgefertigte Nachricht zu senden\n",
color=discord.Color.blue()
)
guild = bot.get_guild(GUILD_ID)
if guild is None:
print(f"Could not find a guild with the ID {GUILD_ID}. Please check the ID and the bot's permissions.")
else:
ticket_category = guild.get_channel(TICKET_CATEGORY_ID)
if ticket_category is None:
print(
f"Could not find a category with the ID {TICKET_CATEGORY_ID}. Please check the ID and the bot's permissions.")
else:
new_ticket_channel = await ticket_category.create_text_channel(f'ticket-{message.author.name}')
await new_ticket_channel.send(embed=ticket_embed)
await modmail().execute("INSERT INTO tickets(user_id, channel_id) VALUES(?, ?)", message.author.id, new_ticket_channel.id)
await message.author.send(embed=welcome_embed)
else:
ticket_user_id = await modmail().one("SELECT user_id FROM tickets WHERE channel_id = ?", message.channel.id)
if ticket_user_id is not None:
user = bot.get_user(ticket_user_id)
if user is not None:
await user.send(f"{message.author.name} hat in deinem Ticket geschrieben: {message.content}")
es sollte so aussehen nur halt in der dm nicht im ticket
Selecte doch aus deiner dB alle Ticket_channel_ids und mach in einem Cog sowas wie onmessage….
if channel in channel_ids:
else:
Return
Und beim Onmessage kriegst du ja über Message.channel.id die channel_id. Darüber kannst du den User selecten und ihn dann so die Message schreiben
Verstehe das Problem nicht. Bekommst Du Fehler o.ä.?
Hatte ich geschrieben das ich ein Fehler habe?
Gute Idee
Pookie 🫶
Sorry, Gehirn war noch nicht eingeschaltet. Habe jetzt nochmal deine Message gekesen. 😄

Hahaha mein ist aus für heute
Wann ist das nicht der Fall 😘
Oha xd
;)
Bin im Zug oder meinst du Pn?
Geht aber nicht anders außer über die DB. Speicherst die Ticket-Channel-ID mit dem Owner ab und musst immer überprüfen, ob in einem Ticket geantwortet wird um den User eine DM zu senden.
Eigentlich genauso wie es Erik geschrieben hat. Mensch bin ich lost. xD
Sorry Erik. Credits gehen raus an dich.
#💬・chat
Haha
Hi, weiss jmd warum er nicht das alte entfernt aber dafür ein neues hinzufügt ?
self.remove_item(orders_dropwdown(self.get_current_page_data()))
embed = discord.Embed(title="page change...")
await self.message.edit_original_response(embed=embed, view=self)
self.add_item(orders_dropwdown(self.get_current_page_data()))
self.update_buttons()
await self.message.edit_original_response(embed=self.create_embed(data), view=self)```
es ging auch mal so wie er es hat
Wenn ich eine aiosqlite database habe, wie kann ich dann nachträglich eine neue spalte hinzufügen aber dabei die daten in den anderen spalten beibehalten
Andere Zeilen werden nicht überschrieben wenn du was insertest
Ist aiosqlite auch eine gute option wenn der bot auf vielen server ist und dann viele daten in der datenbank sind=
Von wie vielen Servern reden wir hier?
und kommt drauf an ob du auch Cache logging machst, etc...
sagen wir mal bei 100 servern
aktive server?
Ja
gibt bessere möglichkeiten, ist aber auch ok
sollte ich lieber so mysql nehmen?
boah keine ahnung um ehrlich zu sein
@burnt prairie benutzt ja soweit ich weiß auch aiosqlite
und der bot ist auf ca 300+ Servern, also müsste aufjedenfall reichen
okay
dann mache ich das so
und notfalls kann ich später immer noch auf mysql umprogrammieren
wie wo was
ist das ein bug von ezcord oder hab ich was verkackt
für ezcord benötigst du python 3.9 oder höher
du hast python 3.8
Wie kann man das auf einem vps ändern
am einfachsten geht es meist direkt über den anbieter mit einer neuinstallation
Muss mal schauen bei Contabo hab da nichts gesehen Maybe übersehen
geh einfach auf neuinstallation und wähle ubuntu 22.04 aus da ist die python version automatisch höher
denk aber dran dass dadurch ale daten auf dem server gelöscht werden
Hab ich bei meinem anderen Server gemacht aber bis das fertig ist haben wir 2025
Wie wurde das gemacht im Keksbot panel das wenn man in den settings ein bisschen rumklickt das sich die Seite nie neu lädt
weil ich habe das Dashboard tutorial gemacht und bei mir laden sich die Seiten immer neu
Der error macht kein sinn
https://sourceb.in/42drCA4kFU
https://sourceb.in/TrlN2DRFpj
@outer ibex hier kann nur sehr viel Python
Und js
können*
viele*
Alles Easy Verstehe halt nit warum Der Auf einmal Nit mehr Startet und den error sagt 😄
Hast du denn dieses Verzeichnis: C:\Users\disco\Desktop\V14\commands\ ?
hab v14/src/commands
src?
Er sucht ja aber nach Desktop\V14\commands, nicht nach v14/src/commands
Zeig doch mal deinen Code
Aber woher kommt das "src"?
Weil danach wird ja nicht gesucht im Code
was zeigt die cpu hier an wenn ich pm2 monit mache
Cpu usage
In prozent
@solid ingot temuo
ist einer in #1027677692730036294
Wo
idk aber irgwie sind ein bisschen überkompliziert imo
Kann ich hier denn Bot status auch ohne discord.Game anzeigen lassen, also nur denn Texte ?
import discord
import asyncio
from discord.ext import commands, tasks
class Status(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.change_status.start()
@tasks.loop(seconds=10)
async def change_status(self):
while True:
guild_count = len(self.bot.guilds)
if guild_count:
await self.bot.change_presence(activity=discord.Game(f"auf {guild_count} Servern"), status=discord.Status.online)
await asyncio.sleep(10)
await self.bot.change_presence(activity=discord.Game('Python Programmierung'), status=discord.Status.online)
await asyncio.sleep(10)
def setup(bot):
bot.add_cog(Status(bot))
dafür brauchst du custom activities
Führe den folgenden Befehl aus, um den Pycord Master-Branch zu installieren.
pip install git+https://github.com/Pycord-Development/pycord```
**Hinweis:** [Git](https://git-scm.com/downloads) muss bei dir installiert sein.
und alter while True in nem loop ist nh vergewaltigung
Habe die dev version isntalliert. Was muss ich jetzt anders machen ?
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...
fix das mit dem while True aber, dann auch keine asyncio.sleep mehr und so
dafür ist der tasks.loop ja da...
Jo
@urban glen
Wieso wird hier der erste Status nicht angezeigt ?
import discord
import asyncio
from discord.ext import commands, tasks
class Status(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.change_status.start()
@tasks.loop(seconds=10)
async def change_status(self):
guild = self.bot.get_guild(1162553851187040326)
sup_role = guild.get_role(1162556186462261248)
ol_sup = [member for member in guild.members if member.status == discord.Status.online and sup_role in member.roles]
sups = len(ol_sup)
await self.bot.change_presence(activity=discord.CustomActivity(name=f"Hilft {sups} Supportern"), status=discord.Status.online)
await self.bot.change_presence(activity=discord.CustomActivity(name='Beiarbeitet Supportanfragen'), status=discord.Status.online)
await self.bot.change_presence(activity=discord.CustomActivity(name=f"Verwaltet 0 Tickets"), status=discord.Status.online)
def setup(bot):
bot.add_cog(Status(bot))
weil das alles instant passiert
Und wie fixe ich das, dass auch der erste Status angezeigt wird ?
hä naja wie du willst
du kannst ja die activities in einer liste speicher und dann jedes mal eine neue nehmen
Danke dir
import discord
from discord.ext import commands, tasks
class Status(commands.Cog):
def __init__(self, bot: discord.Bot):
self.bot = bot
self.texts = [
'Hilft {sups} Supportern',
'Beiarbeitet Supportanfragen',
'Verwaltet 0 Tickets'
]
self.current_text = 0
@commands.Cog.listener()
async def on_ready(self):
self.change_status.start()
@tasks.loop(seconds=10)
async def change_status(self):
guild = self.bot.get_guild(1162553851187040326)
sup_role = guild.get_role(1162556186462261248)
ol_sup = [member for member in guild.members if member.status == discord.Status.online and sup_role in member.roles]
sups = len(ol_sup)
name = self.texts[self.current_text].format(sups=sups)
self.current_text += 1
self.current_text %= len(self.texts)
await self.bot.change_presence(activity=discord.CustomActivity(name=name), status=discord.Status.online)
def setup(bot: discord.Bot):
bot.add_cog(Status(bot))
das müsste zum beispiel erstmal gehen
dann nimmt er alle 10 sekunden den nächsten text
Habe es anders gelöst, dass er halt alle 10 Sekunden einen random Text nimmt
Weiß wie Mann das am besten macht das der bot checkt ob die Nachricht ein Bild ist und wenn es ein Text ist löscht er sie
man könnte z.b. machen if len(message.attachments) < 1: message.delete()
if not message.attachments:
await message.delete()
Wieso sagt er mir das er es nicht kennt aber beim anderen modal schon?
hab schon quick fix
Du verwendest *args und **kwargs wahrscheinlich nirgendwo
Wie kann hier das hier so machen, dass in meinem Ticket Log Channel ich auch einen Button habe mit dem direkten Link
if select_option == "1":
await ctx.response.send_message("Ticket wird geschlossen...")
transcipt = await chat_exporter.export(ctx.channel, limit=None, bot=self.bot, tz_info="Europe/Berlin")
em = discord.Embed(
title="📨 | Chat export",
description=f"Das Ticket von {ctx.user.mention} wurde geschlossen.",
color=discord.Color.orange()
)
em.add_field(name="🎫 | Ticket ID", value=f"{ctx.channel.name}")
em.set_footer(text=f"{ctx.guild.name}", icon_url=self.bot.user.avatar.url)
em.timestamp = datetime.now()
file = discord.File(
io.BytesIO(transcipt.encode()),
filename=f"{ctx.channel.name}.html",
)
channel = ctx.guild.get_channel(1208196342028042240)
message = await channel.send(embed=em, file=file)
link = await chat_exporter.link(message)
button1 = discord.ui.Button(
label="Transcript",
style=discord.ButtonStyle.primary,
url=link
)
view = discord.ui.View()
view.add_item(button1)
try:
embed = discord.Embed(
title="Dein Ticket wurde geschlossen",
color=discord.Color.orange()
)
embed.add_field(name=":ticket: | Ticket ID", value=f"{ctx.channel.name}", inline=False)
embed.add_field(name=":bookmark_tabs: | Transcript", value=f"[Klicke Hier]({link})")
embed.set_footer(text=f"{ctx.guild.name}", icon_url=self.bot.user.avatar.url)
embed.timestamp = datetime.now()
await ctx.user.send(embed=embed, view=view)
except:
pass
Ans embed dran hängen
Aber ich erzeuge nach dem das Embed in denn Ticket Log gesendet wird denn Link und dann geht das ned mehr
Dann setz das doch davor
geht nicht, da die message der Link ist
Weiß nicht wie ich sonst nen link erzeigen soll
Aber du machst es doch ins embed
Für denn user per dm ja
Und da willst du nen Button haben?
In dem Ticket Log ja für einen direkt link
Ich bin am Mobile ich gucke später :)
Danke dir
ping = round(self.bot.latency * 1000)
Error: ValueError: cannot convert float NaN to integer
Ich weiß nicht warum, aber self.bot.latency ergibt nan. Warum?
Haben die etwas wieder geändert?
from discord.ext import commands, tasks
import requests
import json
with open('config.json') as f:
config = json.load(f)
class uptime(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.uptime.start()
@tasks.loop(seconds=299)
async def uptime(self):
print(self.bot.latency)
ping = round(self.bot.latency * 1000)
requests.get(f'http://status.******.****/api/push/{config["uptime_id"]}?status=up&ping={ping}')
def setup(bot):
bot.add_cog(uptime(bot))
Das ist der gesamte code
Also ich mache es nicht so 😅 aber idk ob die da was geändert haben
was kriegst du denn beim print geprinted
Wenn ich self.bot.latency printe kommt "nan"
Daran liegt ja auch das Problem
hmm versuch mal len(self.bot.latency * 1000)
TypeError: object of type 'float' has no len()
Ou
Die haben es gefixxt
Das war nen bug von Pycord
Aber ein Problem habe ich noch. Und zwar funktioniert das Script nicht auf meinem Linux Server
Die ganzen Buttons und Commands funktionieren nicht mehr, also wenn ich genau das gleiche uploade
aber der bot startet ganz normal?
Joa, also es kommt auch der on_ready befehl
Okay. Er hängt im Loop fest. Aber in dem Requests get befehl. Ich weiß aber nicht warum es nicht geht, also dort kommt auch kein Error
Kannst du kurz den coden schicken?
Jo klar warte
@commands.Cog.listener()
async def on_ready(self):
self.uptime.start()
@tasks.loop(seconds=299)
async def uptime(self):
ping = self.bot.latency * 1000
requests.get(f'http://status.denflash.store:3001/api/push/{config["uptime_id"]}?status=up&ping={round(ping)}')
print(1)
hm hast du irgendeinen status code?
req = requests.get(link)
print(req.status_code)
d.h. eig das die request gar nicht raus gehen
mal nachschauen was das für ursachen haben kann
Warum werde ich beim /logout nicht zurück zur homepage weitergeleitet:
https://stackoverflow.com/questions/70338264/python-requests-library-call-works-on-windows-but-not-linux-why das könnte dir vlt helfen
Long time user of python requests here. Trying to do a simple call to this endpoint:
https://www.overstock.com/api/product.json?prod_id=10897789
My current code:
import requests
headers = { 'User...
Da kommt nur was von json raus "null"
was muss ich genau coden damit der Custom status funktioniert
bekomme es nicht wirklich hin
auch nicht mit ```py
activity=discord.CustomActivity(name="[Ready] Your daily reward is ready!"), status=discord.Status.online)
1sek
import discord
from discord.ext import commands
import asyncio
from discord.ext import tasks
class activity(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.update_activity.start()
@commands.Cog.listener()
async def on_ready(self):
await self.update_activity()
@tasks.loop(seconds=10)
async def update_activity(self):
if self.bot.is_ready():
server_count = len(self.bot.guilds)
total_member_count = sum(guild.member_count for guild in self.bot.guilds)
activity1 = discord.CustomActivity(name="🦊 × ByteBuddy")
activity2 = discord.CustomActivity(name="⚙ × Beta Phase")
activity3 = discord.CustomActivity(name=f"🌳 × Bereits auf {server_count} Servern")
activity4 = discord.CustomActivity(name=f"🐱🐉 × Wacht über {total_member_count} Member")
await self.bot.change_presence(activity=activity1)
await asyncio.sleep(2)
await self.bot.change_presence(activity=activity2)
await asyncio.sleep(2)
await self.bot.change_presence(activity=activity3)
await asyncio.sleep(2)
await self.bot.change_presence(activity=activity4)
def setup(bot):
bot.add_cog(activity(bot))
probier das mal aus
bei mir klappt der
kannst du anpassen wie du willst
kommt drauf an wie du es changed mit self.bot.change_presence(activity=activity)
er will nicht
trz das ich die master von py-cord habe
Okay ich schau mal. Danke dir! :)
Versteht jemand den Error?
<rejected> Error: getaddrinfo EAI_AGAIN discord.com
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
errno: -3001,
code: 'EAI_AGAIN',
syscall: 'getaddrinfo',
hostname: 'discord.com'
Glaub discord ist einfach schuld
Deren api war kurz down oder so
Ja API ist grade zimlich im eimer oder ist node error weil grade geht garnix mehr 😄
bei meinem tikcet siystem kommt dieser error kann mir wer helfen und das ticket system ging mal
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 774, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/container/cogs/Ticket12.py", line 14, in <module>
import chat_exporter
ModuleNotFoundError: No module named 'chat_exporter'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 56, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.Ticket12' raised an error: ModuleNotFoundError: No module named 'chat_exporter' ```
mach mal pip freeze
und zeig mir den output
das geht beim panel nd also bei mir
Dann mach mal pip install chat-exporter
habe gemacht aber es kommt immer noch der selber error
welche python version hast du
3.11
wurde chat-exporter auch richtig installiert
ja habe das so chat_exporter in der requirements.txt
also du kannst keine pip commands ausführen?
ja geht nd bei mir beim keks hsoting panel
das musst du in die requirements.txt datei rein machen
tbh benutz ich das hosting panel nicht müsste kurz nachschauen
wenn du was auf dem panel installieren willst
also chat-exporter
nicht mit unterstrich, sondern mit minus
habe es ja da drinnen aber es geht nd
ah ok warte ich schua
jetzt kommt das
SyntaxError: invalid syntax
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 56, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.Ticket12' raised an error: SyntaxError: invalid syntax (Ticket12.py, line 15) ```
was hast du in der requirements.txt
ne jetzt ist es chat_exporter
Perfekt
das pip install ist zwar mit dem minus aber import mit unterstrich
klappt es ?
zum glück gibt es pycharm kekw
ja jetzt kommt aber
ModuleNotFoundError: No module named 'requests'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 56, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.Ticket12' raised an error: ModuleNotFoundError: No module named 'requests'
pip install requests
in die requirements.txt requests
habe ich
hier
komisch
Entferne enum und datetime
okay 🙂
ist das ganz oben die erste Zeile?
passiert nur den besten
kekw
nein chat-exporter
wie kann ich machen wenn man ein button Klick denn soll ein Select kommen wie geht das ?
Genauso, wie du auch den Button schickst
Kleine Frage zu classmethods...
Will mit einer Funktion eine Alternative init haben, aber ich hab keine Ahnung, was ich returnen soll 😅
Habe nun folgenden Codeabschnitt. Würde der so gehen?
@classmethod
async def from_db(cls, db: aiosqlite.Connection, sID: int) -> 'JoinAction':
cursor = await db.execute(
"""
SELECT join_actions.action, join_actions.duration
FROM join_actions
WHERE join_actions.id = (SELECT antiraid.join_action FROM antiraid WHERE antiraid.sID = ?)
""", (sID,)
)
row = await cursor.fetchone()
if not row:
cls.guild_id, cls._type, cls._duration = sID, 0, 0
return cls
'''
Kontext:
antiraid.join_action ist ein FOREIGN KEY mit Verweis auf join_actions.id (was ein PRIMARY KEY ist)
Da antiraid.join_action auch 0 sein kann dachte ich, es sei schleuer kein INNER JOIN zu nutzen.
'''
Wenn nein, wie kann ichs besser machen und was ist falsch?
das cls kannst du so benutzen die deinen klassennamen, also kannst du zB return cls(sID, 0, 0) schreiben
beispiele und genauere erklärungen findest du im video
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Nachdem wir uns in der letzen Folge Klassen und Instanzen angeschaut haben, schauen wir uns diesmal die besonderen Methoden classmethod und staticmethod an. Außerdem schauen wir uns an, wie wir mit classmethods mehrere Konstruktoren (init-Methoden) für unsere Kl...
Jo, hab ich schon angeschaut
Aaaah!
Wieso bekomme ich hier bei teamler ein nonetype zurück, obwohl diese inder Datenbank ist ?
du musst da senden wo es auftritt
async with aiosqlite.connect("data/tickets.db") as db:
cursor = await db.execute("SELECT * FROM tickets WHERE user_id = ?", (ctx.user.id,))
result = await cursor.fetchone()
teamler = ctx.guild.get_member(result[2])
user = ctx.guild.get_member(result[0])
Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Sonne\Desktop\Flexii\./cogs/admin\ticketv2.py", line 61, in on_ready
self.bot.add_view(CreateTicket())
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 1948, in add_view
raise ValueError(
ValueError: View is not persistent. Items need to have a custom_id set and View must have no timeout```
Also das Problem hier ist, dass du ein timeout hast
Kannst du mal einen Screenshot von deiner View class schicken?
add einfach timeout=None und custom_id="wasauchimmer"
@twin slate
@discord.ui.button(label="Create ticket", style=discord.ButtonStyle.blurple, emoji=":tickets:", custom_id="create-ticket-1")
die custom id ist da, dass man auf die buttons zugreifen kann nach bot neustart
ist doch eine custom_id da ..
Beim select da nicht
ach so ja mb
Du musst bei allen items in deinem view eine custom id festlegen
jerzt geht immer error von mir
Außerdem kann ich bei deinem select menu kein callback sehen? Soweit ich weiß braucht man da was
ist doch nicht ready
Was meinst du?
ich muss doch mein button mit select machen aber ka wie es geht
Wie meinst du Button mit select machen?
wie kann ich machen wenn man ein button Klick denn soll ein Select kommen wie geht das ?
Ah
Dann brauchst du ein neues view in welchem du dann dein select menu hast. Um das dann nach dem button kommen zu lassen sendest du einfach beim button eine nachricht wo du das view welches das select menu hat als view angibst
Ich kann leider nicht so gut erklären ich kann dir ein beispiel senden wenn dunwillst
ja bitte
Wieso kommt hier der Error ?
[ERROR] Error while executing /checkcodes
Traceback (most recent call last):
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1008, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\YT197\Desktop\Allgemein\Dev\Python\Discord\PixelP\pixel support\cogs\code.py", line 61, in checkcodes
await paginator.send(ctx.interaction)
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\pages\pagination.py", line 975, in send
raise TypeError(f"expected Context not {ctx.__class__!r}")
TypeError: expected Context not <class 'discord.interactions.Interaction'>
@slash_command(description="Checke die Codes")
async def checkcodes(self, ctx):
pages = []
description = ""
async with aiosqlite.connect("data/codes.db", detect_types=1) as db:
async with db.execute("SELECT * FROM codes WHERE user_id = ?", (ctx.author.id,)) as cursor:
rows = await cursor.fetchall()
for row in rows:
timestamp = discord.utils.format_dt(row[2], "R")
user = ctx.guild.get_member(row[0])
if user is not None:
description += f"Benutzer: {user.mention} | ID: `{user.id}`\nCode: {row[1]} | Zeitstempel: {timestamp}\n\n"
if description:
embed = discord.Embed(
title="Teamler Codes",
description=description,
color=discord.Color.random(),
timestamp=datetime.now()
)
embed.set_footer(text=f"Seite {len(pages) + 1}")
pages.append(embed)
if pages:
paginator = Paginator(pages=pages)
await paginator.send(ctx.interaction)
else:
await ctx.send("Keine Codes gefunden.")
@slash_command(description="Checke die Codes")
async def checkcodes(self, ctx):
pages = []
description = ""
async with aiosqlite.connect("data/codes.db", detect_types=1) as db:
async with db.execute("SELECT * FROM codes WHERE user_id = ?", (ctx.author.id,)) as cursor:
rows = await cursor.fetchall()
for row in rows:
timestamp = discord.utils.format_dt(row[2], "R")
user = ctx.guild.get_member(row[0])
if user is not None:
description += f"Benutzer: {user.mention} | ID: `{user.id}`\nCode: {row[1]} | Zeitstempel: {timestamp}\n\n"
if description:
embed = discord.Embed(
title="Teamler Codes",
description=description,
color=discord.Color.random(),
timestamp=datetime.now()
)
embed.set_footer(text=f"Seite {len(pages) + 1}")
pages.append(embed)
if pages:
paginator = Paginator(pages=pages)
message = await ctx.send(embed=pages[0])
await paginator.start(message)
else:
await ctx.send("Keine Codes gefunden.")``` test mal so
Das Embed wird gesendet, aber für panigator bekomme ich diesen error
[ERROR] Error while executing /checkcodes
Traceback (most recent call last):
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1008, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\YT197\Desktop\Allgemein\Dev\Python\Discord\PixelP\pixel support\cogs\code.py", line 62, in checkcodes
await paginator.start(message)
^^^^^^^^^^^^^^^
AttributeError: 'Paginator' object has no attribute 'start'
Das ist dein Code
es gibt auch ctx.interaction
Und es werden nicht alle user aus der Datenbank geladen
ohje wir kenn die ab nicht
hö ?
send mal dein ganze code auf dm
class CreateTicketButton(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label=“Create Ticket”, style=discord.ButtonStyle.primary, emoji=“📨”, custom_id=“create_ticket”)
async def button_callback1(self, button, interaction):
await interaction.response.send_message(“Such dein Ticket aus”, view=CreateTicketSelect(), ephemeral=True)
class CreateTicketSelect(discord.ui.View):
def __init__(self):
super().__init__()
@discord.ui.select(placeholder=“Test”, custom_id=“test”)
async def ticket_select_callback(self, select, interaction):
# Dein ticket erstell code
@ruby sparrow
Ist das @discord auf der gleichen Höhe wie der callback?
Beim select?
Das muss gleich eingerückt sein
Keine ahnung
Am ipad ist das schwierig zu sehen
Muss aber so sein
Sieht aber richtig aus keine ahnung
Und Nico, du musst die “” bei meinem code anpassen weil ich die “ vom ipad genommen habe das sind nicht die richtigen
brache ich doch py @discord.ui.select( custom_id="ticket setect", min_values=1, max_values=2, placeholder="Triff eine Auswahl", options=options, )?
Nein das ist ein select menu keine eigene view class
Das select menu muss in eine eigene view class
AttributeError: 'Bot' object has no attribute 'get_cmd'``` ```py
f"Deaktiviere es wieder mit {self.bot.get_cmd('welcome stop')}",```
Was versucht du dort zurück zu bekommen?
na ja der discord.Bot hat keine funktion "get_cmd"
aber warum
es gibt "get_command"
du benutzt pycord oder?
ja und ezcord
na ja discord.Bot hat nur get_command
ah ja true, kannst du mal kurz der typ des bots printen?
ja warte
Wie kann ich hier die Differenzt die noch übrig bleibt in der Datenbank speichern ?
@tasks.loop(seconds=10)
async def delete_temp_codes(self):
if self.delete_temp_codes.current_loop == 0:
return
async with aiosqlite.connect("data/codes.db") as db:
async with db.execute("SELECT * FROM codes WHERE code_type = ?", ("Temp",)) as cursor:
rows = await cursor.fetchall()
if not rows:
return
channel = self.bot.get_channel(1184624589159006302)
current_time = datetime.now()
for row in rows:
creation_time = datetime.fromisoformat(row[2])
user_id = row[0]
user = self.bot.get_user(user_id)
code = row[1]
time_difference = current_time - creation_time
reaming_time = timedelta(days=7) - time_difference
async with aiosqlite.connect("data/codes.db") as db:
await db.execute("UPDATE codes SET temp_time = ? WHERE user_id = ?", (reaming_time.total_seconds, user_id))
await db.commit()
if reaming_time >= timedelta(days=7):
await db.execute("DELETE FROM codes WHERE code = ?", (row[1],))
await db.commit()
await channel.send(f"Der Temporäre Code `{code}` für {user.mention} wurde gelöscht!")
Möchte das dann so wie hier haben, nur das es nicht hoch sonder runter zählt
async with aiosqlite.connect("data/codes.db") as db:
await db.execute(
"""CREATE TABLE IF NOT EXISTS codes (
user_id INTEGER,
code TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
code_type TEXT DEFAULT "None",
temp_time TIMESTAMP
)""")
await db.commit()
DB Tables
kann wer helfen mit ezcord db ?
[ERROR] Error while executing /ticketv2
Traceback (most recent call last):
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\nico\Desktop\Flexii\cogs\admin\ticketv2.py", line 72, in ticketv2
await db.create_ticket(guild_id, staffrole_id, category_id, 0)
File "c:\Users\nico\Desktop\Flexii\cogs\admin\ticketv2.py", line 31, in create_ticket
await self.execute(
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 330, in execute
return await self.exec(sql, *args, end=end, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 324, in exec
raise e
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 321, in exec
cursor = await db.execute(sql, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 193, in execute
cursor = await self._execute(self._conn.execute, sql, parameters)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\nico\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 115, in run
result = function()
^^^^^^^^^^
sqlite3.OperationalError: no such table: tickets``` ```py
class ticketDB(ezcord.DBHandler):
def __init__(self):
super().__init__("db/ticketv2.db")
async def setup(self):
await self.execute(
"""CREATE TABLE IF NOT EXISTS users(
guild_id INTEGER PRIMARY KEY,
staffrole_id INTEGER DEFAULT 0,
category_id INTEGER DEFAULT 0,
transcriptchannel INTEGER DEFAULT 0,
channel_id INTEGER DEFAULT 0
)"""
)
async def create_ticket(self, guild_id, user_id, category_id, channel_id):
created_at = datetime.utcnow().isoformat()
await self.execute(
"INSERT INTO tickets (guild_id, user_id, category_id, channel_id, created_at) VALUES (?, ?, ?, ?, ?)",
(guild_id, user_id, category_id, channel_id, created_at)
)
def close_ticket(self, channel_id):
self.cursor.execute("UPDATE tickets SET closed = 1 WHERE channel_id = ?", (channel_id,))
self.conn.commit()
def get_ticket(self, channel_id):
self.cursor.execute("SELECT * FROM tickets WHERE channel_id = ?", (channel_id,))
return self.cursor.fetchone()
db = ticketDB()```
Wie im Error beschrieben hast du keinen Tickets Table
aber warum
Naja du erstellst ja keinen 🥴
Er greift nur auf einen nicht existieren denn Table zu, obwohl sein Table users heißt
Und du hast keinen closed Column btw
hä
Ja war mir nicht sicher ob er den meint wegen dem Closed 🥴
Guck dir einfach das an @ruby sparrow. Dann weißt du wo dein fehler liegt
Ignoring exception in view <CreateTicketSelect timeout=180.0 children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Make a selection you ticket' min_values=1 max_values=2 options=[<SelectOption label='suppert' value='suppert' description='suppert Beschreibung' emoji=<PartialEmoji animated=False name='🎫' id=None> default=False>, <SelectOption label='bug' value='bug' description='bug Beschreibung' emoji=<PartialEmoji animated=False name='💻' id=None> default=False>, <SelectOption label='discord server bug' value='discord server bug' description='bug Beschreibung' emoji=<PartialEmoji animated=False name='🗝️' id=None> default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Sonne\Desktop\Flexii\cogs\admin\ticketv2.py", line 116, in ticket_select_callback
category_id = db.create_ticket(interaction.guild.id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ticketDB.create_ticket() missing 1 required positional argument: 'category_id'``` ```py
category_id = db.create_ticket(interaction.guild.id)
if category_id:
category = discord.utils.get(interaction.guild.categories, id=category_id)
if category:
channel = await category.create_text_channel(name=f"{interaction.user.display_name}", overwrites=overwrites, topic=interaction.user.name)
embed = discord.Embed(
title="🎫 📩 Ticket Created",
description="🆘 Support will 🐝 with you 🕑 shortly.",
color=discord.Color.green()
)
await channel.send(embed=embed, view=CloseTicket())
await interaction.response.send_message(f"I've 🆕 a ticket for you 📌 at {channel.mention}", ephemeral=True)
else:
await interaction.response.send_message("I 🚫 find the specified category.", ephemeral=True)
else:
await interaction.response.send_message("Category ID not found in the database.", ephemeral=True)```
Du holst nichts aus der db.create_ticket raus und selbst wenn du was dort einträgst muss du mehrere Parameter angeben
await db.create_ticket(interaction.guild_id, interaction.channel_id)
TypeError: ticketDB.create_ticket() missing 1 required positional argument: 'channel_id'```
pls help
db = ticketDB()
await db.create_ticket(interaction.guild_id, interaction.channel_id)
probier das mal in etwa so
File "c:\Users\Sonne\Desktop\Flexii\cogs\admin\ticketv2.py", line 112, in ticket_select_callback
category = discord.utils.get(interaction.guild.categories, id=int(category_id))
^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'suppert'``` ```py
category = discord.utils.get(interaction.guild.categories, id=int(category_id))```
na ja du versuchst gerade ein string zu einem integer umzuwandeln
meistens benutzt man bei der category sowieso einen namen
Führe den folgenden Befehl aus, um den Pycord Master-Branch zu installieren.
pip install git+https://github.com/Pycord-Development/pycord```
**Hinweis:** [Git](https://git-scm.com/downloads) muss bei dir installiert sein.
schick uns mal dein ganzen code rein 🙂
noch immer die fehlermeldung will halt pycord runterladen bin auf python 3.11
Welche Python version genau?
3.11.6 oder höher oder niedriger?
versuch mal
pip install git+https://github.com/aio-libs/aiohttp```
selber fehlercode
nutzt du ein venv?
anfang ohne jz mit
Also nutzt du jetzt gerade ein venv
ja
ich setz eben ein venv aus installier alles und dann erklär ich dir das wie du das in dein venv einbaust
danke
Geh auf dein Dateimanager in dein Project und dann in venv
das lädst du runter dann gehst du in deinen venv auf libs -> site-packages löscht alles raus und ziehst die datein von dem ordner in dein site-packages ordner rein
kannst aber auch einfach den site-packages ordner löschen und den von der zip reinziehen
Pycharm neustraten nicht vergessen
schon klar
is zwar jz eine bhd frage aber habs gemacht so? muss ich jz eigt noch was machen oder? weil noch is pycord nicht drin also die commands aufjedenfall nicht 
mach mal which py-cord
schon in terminal richtig? pycharm was neues so für mich also wunder dich nicht nicht das du denkst so das ich dumm bin
Du gehst in dein venv dann auf Scripts und ziehst die Datei rein
und lässt es überschreiben
shwo py-card?

show py-cord
ja gut
das Problem ist ein anderes
geh auf dein Papierkorb und hol die pip datei wieder
Scheint doch nicht zu funktionieren
Ich glaub ich kann das fixen warte
darüber reden wir nicht wurde überschritten die is in den sternen
erzähl mal seit wann is pip ne exe?
pip ist eine Anwendung
genauso wie python
Python läuft über python.exe und pip über pip.exe
ja aber wird eigt als ne python datei angezeigt aber passt schon
pip wird nicht als python datei angezeigt
oder es liegt daran das ich den path geändert habe von meinem zu deinem
damit er die python.exe findet
in nem anderen venv ist die bei mir auch als python datei
liegt an der änderung
alles gut musst dich nicht so rechtfertigen ich trust schon
war nicht so ernst gemeint 
Alles gut
wenn ich pip show py-cord öffnet sich powershell normal?
Was kommt in powershell?
sicherheitswarnung
passt
haben ja
707 519 278
fertig
danke du bist schatz 
ahahahahahaha

warte hörst du uns?
yes
Gerne
wenn ich was brauch ich weiß wo ich mich melde

es geht nur von die db die id
Hey Leute! Ich habe gerade ein kleines Problem mit meinem Bot. Er behauptet, dass er die Kategorien nicht finden kann, obwohl die Kategorie-ID bereits in der Datenbank gespeichert ist. Könnte mir bitte jemand helfen? Ich wäre wirklich dankbar!``` ```py
class CreateTicketSelect(discord.ui.View):
def __init__(self):
super().__init__()
@discord.ui.select(
custom_id="ticket_select",
min_values=1,
max_values=1,
placeholder="Select a category for your ticket",
options=options,
)
async def ticket_select_callback(self, select, interaction):
category_name = select.values[0]
category = discord.utils.get(interaction.guild.categories, name=category_name)
if category:
guild_id = interaction.guild.id
category_id = category.id
channel_id = None
await db.create_ticket(guild_id, category_id, channel_id)
overwrites = {
interaction.guild.default_role: discord.PermissionOverwrite(view_channel=False),
interaction.user: discord.PermissionOverwrite(view_channel=True, read_message_history=True, send_messages=True),
interaction.guild.me: discord.PermissionOverwrite(view_channel=True, read_message_history=True, send_messages=True),
}
channel = await category.create_text_channel(name=f"{interaction.user.display_name}", overwrites=overwrites, topic=interaction.user.name)
embed = discord.Embed(
title="Ticket Created",
description="Support will be with you shortly.",
color=discord.Color.green()
)
await channel.send(embed=embed, view=CloseTicket())
await interaction.response.send_message(f"I've opened a ticket for you at {channel.mention}", ephemeral=True)
else:
await interaction.response.send_message("I :no_entry_sign: find the specified category.", ephemeral=True)```
Ignoring exception in view <CreateTicket timeout=None children=1> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='Create Ticket' emoji=<PartialEmoji animated=False name='📨' id=None> row=None>:
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Sonne\Desktop\Flexii\cogs\admin\ticketv2.py", line 86, in button_callback1
await db.create_ticket()
^^^^^^^^^^^^^^^^^^
TypeError: ticketDB.create_ticket() missing 3 required positional arguments: 'guild_id', 'category_id', and 'channel_id'
PS C:\Users\Sonne\Desktop\Flexii> & C:/Users/Sonne/AppData/Local/Programs/Python/Python311/python.exe c:/Users/Sonne/Desktop/Flexii/flexii.py
>>
[COG] Loaded 6 cogs
[COG] Loaded 4 cogs
[COG] Loaded 3 cogs
[COG] Loaded 2 cogs
[COG] Loaded 1 cog
[COG] Loaded 1 cog
[INFO] Bot is online with EzCord 0.5.3
╭─────────────┬─────────────────────┬────────────────────────┬──────────┬────────┬─────────╮
│ Bot │ ID │ Pycord │ Commands │ Guilds │ Latency │
│─────────────┼─────────────────────┼────────────────────────┼──────────┼────────┼─────────│
│ Flexii#8818 │ 1170449421796900925 │ 2.4.1.dev249+g845f7c7d │ 21 │ 2 │ 119ms │
╰─────────────┴─────────────────────┴────────────────────────┴──────────┴────────┴─────────╯
Ignoring exception in view <CreateTicket timeout=None children=1> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='Create Ticket' emoji=<PartialEmoji animated=False name='📨' id=None> row=None>:
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Sonne\Desktop\Flexii\cogs\admin\ticketv2.py", line 89, in button_callback1
await db.create_ticket(guild_id, category_id, channel_id)
File "c:\Users\Sonne\Desktop\Flexii\cogs\admin\ticketv2.py", line 28, in create_ticket
await self.execute(
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 330, in execute
return await self.exec(sql, *args, end=end, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 324, in exec
raise e
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\sql.py", line 321, in exec
cursor = await db.execute(sql, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 193, in execute
cursor = await self._execute(self._conn.execute, sql, parameters)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 115, in run
result = function()
^^^^^^^^^^
sqlite3.IntegrityError: UNIQUE constraint failed: Tickets.guild_id```
ok
Wieso wird hier der code nicht in der datenbank gespeichert und wieso wird claimed nicht zu true in der datenbank ?
if select_option == "1":
await check_teamler_code(ctx)
role_id = 1163282025483087884
role_supporter = discord.utils.get(ctx.guild.roles, id=role_id)
if not role_supporter in ctx.user.roles:
return await ctx.response.send_message("Du bist kein Supporter", ephemeral=True)
async with aiosqlite.connect("data/tickets.db") as db:
async with db.execute("SELECT * FROM codes WHERE user_id = ?", (ctx.user.id,)) as cursor:
row = await cursor.fetchone()
code = row[0]
async with aiosqlite.connect("data/tickets.db") as db:
async with db.execute("UPDATE tickets SET claimed = ?, teamler_id = ? WHERE user_id = ?", ('true', code , ctx.user.id)):
await db.commit()
category = discord.utils.get(ctx.guild.categories, id=1209097569871986718)
teamlerID = ctx.user.id
for user in role_supporter.members:
if user.id == teamlerID:
continue
user_member = ctx.guild.get_member(user.id)
await ctx.channel.set_permissions(user_member, read_messages=True, send_messages=False, view_channel=True)
em = discord.Embed(color=discord.Color.green())
file = discord.File("img/Ticket_Beansprucht.png", filename="Ticket_Beansprucht.png")
em.set_image(url="attachment://Ticket_Beansprucht.png")
embed = discord.Embed(
title=" | Ticket Beansprucht",
description=f"Dein Anliegen wird nun von {ctx.user.mention} bearbeitet. Bitte sei höflich und respektvoll zu dem Team Mitglied!",
color=discord.Color.green(),
timestamp=datetime.now()
)
embed.set_footer(text=f"{ctx.guild.name}", icon_url=self.bot.user.avatar.url)
await ctx.response.send_message(embeds=[em, embed], file=file)
await ctx.channel.edit(category=category)
@limber crow
Es scheint, dass es möglicherweise ein Problem mit Ihrer SQL UPDATE-Anweisung gibt. Hier sind ein paar Punkte, die Sie überprüfen sollten:
-
Falscher Tabellenname: Sie wählen aus der Tabelle mit dem Namen
codesaus, versuchen jedoch, die Tabelle mit dem Namenticketszu aktualisieren. Stellen Sie sicher, dass Sie die richtige Tabelle aktualisieren.async with db.execute("UPDATE codes SET claimed = ?, teamler_id = ? WHERE user_id = ?", ('true', code , ctx.user.id)): -
Reihenfolge der Platzhalter: Die Reihenfolge der Platzhalter in der UPDATE-Anweisung sollte mit der Reihenfolge der Werte im Tupel übereinstimmen. Stellen Sie sicher, dass die Reihenfolge korrekt ist.
async with db.execute("UPDATE codes SET claimed = ?, teamler_id = ? WHERE user_id = ?", ('true', code, ctx.user.id)): -
Verwendung von String 'true' anstelle von Boolean True: Wenn Ihre 'claimed'-Spalte in der Datenbank vom Typ Boolean ist, sollten Sie
True(boolean) anstelle des Strings'true'verwenden.async with db.execute("UPDATE codes SET claimed = ?, teamler_id = ? WHERE user_id = ?", (True, code, ctx.user.id)):
Die Variable code wird nicht in der db gespeichter
bitte keine KI antworten
async with db.execute("SELECT * FROM codes WHERE user_id = ?", (ctx.user.id,)) as cursor:
row = await cursor.fetchone()
if row is None:
# Code nicht gefunden oder andere Fehlerbehandlung
return
code = row[0] # Überprüfen Sie, ob dies den erwarteten Wert enthält
async with db.execute("UPDATE codes SET claimed = ?, teamler_id = ? WHERE user_id = ?", (True, code, ctx.user.id)):
await db.commit()
- KI antwort?
KI Antworten bringen mir nichts
Erstens heißt es guck und zweitens weiß ich wie das geht
Errors?
Kann ich eiegntlich auch bei einer Interaction warten wie bei await ctx.defer()?
ja
interaction.response.defer()
Nein. Es wird einfach nur nicht in der DB gespeichert und ich verstehe halt einfach ned warum
und dann await interaction.followup.send(...)
versuch mal:
"UPDATE OR ABORT tickets SET claimed = ?, teamler_id = ? WHERE user_id = ?"```
Was macht das OR ABORT ?
Konfligtlösung
Ah
Wird immer noch nicht in der DB gespeichert und True tatsächlich auch nicht
Was ist code?
await check_teamler_code(ctx)
role_id = 1163282025483087884
role_supporter = ctx.guild.get_role(role_id)
if not role_supporter in ctx.user.roles:
return await ctx.response.send_message("Du bist kein Supporter", ephemeral=True)
async with aiosqlite.connect("data/tickets.db") as db:
async with db.execute("SELECT * FROM codes WHERE user_id = ?", (ctx.user.id,)) as cursor:
row = await cursor.fetchone()
code = row[1]
async with aiosqlite.connect("data/tickets.db") as db:
async with db.execute("UPDATE OR ABORT tickets SET claimed = ?, teamler_id = ? WHERE user_id = ?", (True, code , ctx.user.id)):
await db.commit()
okay
Das ist das was code rauszieht
denn 6 stelligen code halt
Das prüft einfach nur, ob der user einen Code hat oder nicht
welchen type hat claimed?
Text, aber glaube sollte nen Boolean sein oder ?
wir schauen erstmal ob sqlite überhauptet was updatet
UPDATE OR ABORT tickets SET claimed = ? WHERE user_id = ? mach das mal als test in die query
Steht immer noch der Default wert false drinnen
zeig mal die insert quer
was ist der untershied zwischen discord.User und discord.Member
Member ist auf einem Server, und User ist alles, glaube ich, kann mich aber auch irren
Member ist teil des servers d.h. hat .ban() .kick() etc, also alle aktionen in einem discord.Guild ein user ist einfach ein objekt mit id, avatar, display name usw
achso ok
musst halt mal in den docs schauen aber discord.Member hat einige mehr attributen und mehr methoden
https://docs.pycord.dev/en/stable/api/models.html#discord.Member und https://docs.pycord.dev/en/stable/api/models.html#discord.User
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 ...
was geht nicht
code?
und du kannst nicht eif error senden ohne irgendwelche erklärung
na ja, es ist ganz klar die setup() funktion in einem willkommens cog
aber ich versteh nicht ganz wieso das .add_cog awaited werden sollte
nein discord.ext.commands.errors.ExtensionFailed: Extension 'events.willkommen' raised an error: TypeError: object NoneType can't be used in 'await' expression
na ja aber der obere teil meine ich
bot.add_cog(Welcome(bot))
RuntimeWarning: Enable tracemalloc to get the object allocation traceback```
das zeigt der immer bei solchen errors an oder nicht
ne das hängt eig zsm glaube ich
naja mein gehirn geht grade nd
ja doch müsste eig
Ignoring exception in view <CreateTicket timeout=None children=1> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='Create ticket' emoji=<PartialEmoji animated=False name='📩' id=None> row=None>:
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Sonne\Documents\Flexii\cogs\admin\ticketv2.py", line 74, in create_ticket
category_id = await db.get_category(interaction.guild.id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Sonne\Documents\Flexii\cogs\admin\ticketv2.py", line 36, in get_category
return cursor[0]
~~~~~~^^^
TypeError: 'Cursor' object is not subscriptable``` ```py
async def get_category(self, server_id):
cursor = await self.execute("SELECT category_id FROM ticket WHERE server_id = ?", (server_id,))
if cursor:
return cursor[0]
else:
return None```
async def get_category(self, server_id):
cursor = await self.execute("SELECT category_id FROM ticket WHERE server_id = ?", (server_id,))
row = await cursor.fetchone()
if row:
return row[0]
else:
return None```
so sollte es gehen
Ignoring exception in view <CreateTicket timeout=None children=1> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=False label='Create ticket' emoji=<PartialEmoji animated=False name='📩' id=None> row=None>:
Traceback (most recent call last):
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Sonne\Documents\Flexii\cogs\admin\ticketv2.py", line 75, in create_ticket
category_id = await db.get_category(interaction.guild.id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Sonne\Documents\Flexii\cogs\admin\ticketv2.py", line 35, in get_category
row = await cursor.fetchone()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 65, in fetchone
return await self._execute(self._cursor.fetchone)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 40, in _execute
return await self._conn._execute(fn, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Sonne\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 125, in _execute
raise ValueError("Connection closed")
ValueError: Connection closed``` ```class CreateTicket(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label="Create ticket", style=discord.ButtonStyle.blurple, emoji=":envelope_with_arrow:", custom_id="Create_ticket")
async def create_ticket(self, button, interaction):
category_id = await db.get_category(interaction.guild.id)
if category_id:
category = discord.utils.get(interaction.guild.categories, id=category_id)
if category:
overwrites = {
interaction.guild.default_role: discord.PermissionOverwrite(view_channel=False),
interaction.user: discord.PermissionOverwrite(view_channel=True, read_message_history=True, send_messages=True),
interaction.guild.me: discord.PermissionOverwrite(view_channel=True, read_message_history=True, send_messages=True),
}
channel = await category.create_text_channel(name=f"{interaction.user.display_name}", overwrites=overwrites, topic=interaction.user.name)
embed = discord.Embed(
title="Ticket Created",
description="Support will be with you shortly.",
color=discord.Color.green()
)
await channel.send(embed=embed, view=CloseTicket())
await interaction.response.send_message(f"I've opened a ticket for you at {channel.mention}", ephemeral=True)
return
await interaction.response.send_message("The category ID is not set in the database or the specified category doesn't exist.", ephemeral=True)```
@lucid furnace
und das mit dem bot.localize... in der main.py
ändert nichts
@lucid furnace kannst du helfen ?
ezocrd halt die besondere und python 3.11
also mit besondere die i18n
82 😳
genau
ezcord.dbhandler nutzt du oder?
ich glaub du brauchst 3.12 aber frag lieber Timo der kennt sich besser aus
gluab nich
vermutlich benutzt er den code den du ihn geschickt hast oben xD
ezcord supported 3.9+
ach so dort weiss ich nicht, aber ich nehme an das timo für alles 3.9+ will
ja
komm mal general
kann wer kein live machen
wie meinst
bin da
Ich bekomem diesen Error: aber ich kan das ned fixen
| Failed to Load wemx.py
\ [ERROR] Extension 'cogs.wemx' raised an error: ImportError: cannot import name 'orders_dropwdown' from partially initialized module 'components.dropdowns' (most likely due to a circular import) (c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-WemX\components\dropdowns.py)
buttons.py:
import discord
from datetime import datetime
from utils.funcs import check_connection, get_user_id, api_request, get_config, check_admin
from components.dropdowns import wemx_address_dropdown, wemx_orders_filters
from components.embeds import wemx_main_update
from discord.ui import View
modals.py
import discord
from datetime import datetime
from utils.funcs import get_user_id, api_request, get_config
from components.embeds import update_wemx_address_embed
paginators.py
import discord
from utils.funcs import get_config
from components.dropdowns import orders_dropwdown
dropdowns.py
import discord
import re
from utils.funcs import get_user_id, api_request, get_config
from components.modals import wemx_address_modal
from components.paginators import PaginationView
orders_dropwdown sicher das es richtig geschrieben ist ?
me hab es aber koregeirt aber geht nicht selber error
doch schau
\ [ERROR] Extension 'cogs.wemx' raised an error: ImportError: cannot import name 'orders_dropdown' from partially initialized module 'components.dropdowns' (most likely due to a circular import) (c:\Users\jurek\Documents\Development\Python\DC Bots\Xenority\Xenority-Main-Pycord-V2-WemX\components\dropdowns.py)
