#Allgemeine Hilfe
1 messages · Page 50 of 1
Du hast ein Objekt das None ist, und bei nem NoneType kannst du kein .send nutzen
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...
thy
Warum ist mein pycarm Cursor fett
Das ist Fett-Shaming
Du brauchst einen Cursor, du solltest den Cursor nicht weg machen (°v°)
Danke Timo
geht jetzt danke timo
supi
[ERROR] Error in event on_member_join
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "/home/container/cogs/Welcomemessa goodbye message.py", line 23, in on_member_join
embed.set_footer(text=member.name, icon_url=member.avatar.url)
^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'url'
wie mache ich das das auch mit usern ohen profilbild geht habe es vergessen
display_avatar.url
thy
Wie kann ich in pycarm DB Tabellen Anzeigen lassen
Brauchst premium
Ok
Kleiner Tipp: Nutz VSC, dann brauchst du kein Premium
VSC >>>>>
Ok
Kleinere tipp, kauft euch be EDU email fur max 10$ und besorgt euch pycharm premium
Pycharm is Dreck
Absolut nicht ich Liebe pycharm
Schlecht
als schüler/student ist es gratis
Oder für Menschen die sich als Schüler/Studenten ausgeben
Ja genau, bin halt kein schüler oder student, daher habe ich ne edu mail um damit dann premium zu holen
Genau xd
import discord
from discord.ext import commands
from discord.commands import slash_command
from cogs.lichess import LichessHTTP
class Chess(commands.Cog):
def __init__(self, bot):
self.bot = bot
varients = [
discord.OptionChoice(name="Standard", value="standard"),
discord.OptionChoice(name="Chess960", value="chess960"),
discord.OptionChoice(name="Crazyhouse", value="crazyhouse"),
discord.OptionChoice(name="Antichess", value="antichess"),
discord.OptionChoice(name="Atomic", value="atomic"),
discord.OptionChoice(name="Horde", value="horde"),
discord.OptionChoice(name="KingOfTheHill", value="kingOfTheHill"),
discord.OptionChoice(name="RacingKings", value="racingKings"),
discord.OptionChoice(name="ThreeCheck", value="threeCheck")
]
@slash_command(description="Challenge another player to a lichess game.")
@discord.Option(
name="white",
description="Assign the white player.",
required=True,
)
@discord.Option(
name="black",
description="Assign the black player.",
required=True,
)
@discord.Option(
name="varient",
description="Choose the varient.",
choices=varients,
required=True,
)
async def chess_test(self, ctx, white: str, black: str, varient: str):
#await ctx.defer()
resp = await self.lichess.create_open_challenge(varient)
white_url = resp.get("urlWhite")
black_url = resp.get("urlBlack")
code = resp.get("challenge").get("id")
recap = resp.get("challenge").get("url")
await ctx.send(white, black, white_url, black_url)
def setup(bot):
bot.add_cog(Chess(bot))```
Fehler:
`discord.errors.ExtensionFailed: Extension 'cogs.chess' raised an error: TypeError: 'Option' object is not callable`
Habe gerade mal nach langer Zeit wieder mit py-cord angefangen bzw. bin von discord.py umgestiegen. Jetzt laufe ich mit dem Code in Probleme. Kann da jemand helfen? Ich weiß leider auch noch nicht richtig, wie man in py-cord Options und Choices benutzt. Den Code habe ich mit den Docs gebaut, komme aber nicht weiter.
Freue mich über jede Hilfe. Vllt kann das jemand kurz erklären und einmal drüberchecken.
@graceful fiber das o von discord.Option muss in dem fall kein geschrieben werden
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
Discord Developer Portal ► https://discord...
Super, schau ich mir gleich mal an. Danke dir für die schnelle Antwort 
warum ist mein vsc auf einer anderen sprache bei discord status
Musst du in der Extention einstellen.
Und welche
Naja, die du halt hinzugefügt hast, dass es angezeigt wird. Ich denke mal Discord RPC?
Hab's
Kann mir jemand erklären, wieso die Options beim Slash Command nicht required sind? Und wie man das fixen kann, weil eigentlich hab ich es ja so im Code.
du hast Standardwerte festgelegt, indem zu zB =None geschrieben hast. dadurch werden die Options automatisch nicht required
@solid ingot help
Komm in mein Stream
Er sendet keine Nachricht in einen bestimmten channel
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
await value.callback(interaction)
File "C:\Users\Schüler\PycharmProjects\python\Falc\cogs\General\BugReport.py", line 48, in callback
await channel.send(embed=log)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'send'
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...
import discord
import asyncio
from discord.interactions import Interaction
import ezcord
from utils import *
from discord.commands import slash_command, SlashCommandGroup, Option
from discord.ext import commands
class BugReport(commands.Cog):
def __init__(self, bot):
self.bot = bot
report = SlashCommandGroup("report")
@report.command()
async def bug(self, ctx, bug: Option(str), commandname: Option(str)):
modal = ReportModal(title="Bug Report", bug=bug, commandname=commandname)
await ctx.send_modal(modal)
class ReportModal(discord.ui.Modal):
def __init__(self, bug, commandname, **kwargs):
super().__init__(
discord.ui.InputText(
label="Grund des Bug Reports",
placeholder="Placeholder",
style=discord.InputTextStyle.long
),
**kwargs
)
self.bug = bug
self.commandname = commandname
async def callback(self, interaction):
channel = interaction.guild.get_channel(1151434598576824320)
bug = self.children[0].value
log = discord.Embed(
title=f"{BotLogo}",
description="",
color=COLOR
)
log.add_field(
name=f"",
value=f"`👮` Bug Report Gesendet von: {interaction.user.mention}\nBug: {self.bug}\nCommand name: {self.commandname}"
)
await channel.send(embed=log)
await interaction.response.send_message("ich habe den bug den owner und die developer geschickt", ephemeral=True)
def setup(bot):
bot.add_cog(BugReport(bot))
Wieso nicht self.guild.get_channel?
Hm, sowas hab ich schon vermutet. Allerdings darf ich nicht nur manchen Variablen Standardwerte zuschreiben, da das dann iwie auch Probleme gibt. Kann man das beheben? Danke, auf jeden Fall 👍
erst müssen alle Optionen ohne Standardwert kommen, danach alle mit
Ah okay, super. Danke dir 👍
@graceful fiber
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
await value.callback(interaction)
File "C:\Users\Schüler\PycharmProjects\python\Falc\cogs\General\BugReport.py", line 35, in callback
channel = self.guild.get_channel(1151434598576824320)
^^^^^^^^^^
AttributeError: 'ReportModal' object has no attribute 'guild'
wo war er eror?
mh
@ruby sparrow hat @fierce dove gepingt.
[ERROR] Error while executing /about
Traceback (most recent call last):
File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 1000, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "c:\Users\nicor\OneDrive\Desktop\Ayo bot\cogs\about.py", line 12, in about
uptime = self.bot.uptime
AttributeError: 'Bot' object has no attribute 'uptime'```
bot.uptime gibt es nicht. schau vlt mal in den docs was es alles gibt bei bot
discord.Bot
discord.Bot.activity
discord.Bot.add_application_command
discord.Bot.add_check
discord.Bot.add_cog
discord.Bot.add_listener
discord.Bot.add_view
discord.Bot.after_invoke
discord.Bot.allowed_mentions
discord.Bot.application_command
discord.Bot.application_flags
discord.Bot.application_id
discord.Bot.application_info
discord.Bot.auto_sync_commands
discord.Bot.before_identify_hook
discord.Bot.before_invoke
discord.Bot.cached_messages
discord.Bot.change_presence
discord.Bot.check
discord.Bot.check_once
Mach einf eine variabel bei on_ready 😂
warum ist mein discord status auf ner anderen sprache 
😂🤨
schau doch selber
Wo denn
dc status
Ist immer in Englisch
das ist nicht englisch
Kann man nen Select Menü auch persistent machen?
@tawdry leaf
Keine Ergebnisse für slect menü gefunden. Meintest du Folgendes?
ja das geht, bzw den view, in dem das selct menü ist
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
In diesem Video stelle ich euch S...
Bei hatte nämlich das mit den custom_id nicht funktioniert

Wie schreibe ich etwas in eine .txt das es in die nächste zeile kommt und nicht die erste ersätzt
[ERROR] Error while executing /generate
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 1000, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Schüler\PycharmProjects\python\Falc\cogs\General\ImageGenerate.py", line 24, in generate
result = generator.generate(prompt)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\craiyon\craiyon.py", line 48, in generate
resp = resp.json()
^^^^^^^^^^^
File "C:\Users\Schüler\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
from craiyon import Craiyon
import ezcord
import discord
import time
import asyncio
from discord.ext import commands
from discord.commands import slash_command, Option
from PIL import Image
from io import BytesIO
class ImageGenerator(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def generate(
self,
ctx,
prompt: Option(str)
):
ETA = int(time.time() + 60)
msg = await ctx.respond(F"Das kann dauern holen sie was zu essen und zu trinken weil das dauert <t:{ETA}:R>")
generator = Craiyon()
result = generator.generate(prompt)
print(result)
images = result.images
for i in images:
image = BytesIO(i)
return await ctx.respond(F"hier dein bild", file=discord.File(image, "imagegenerate.png"))
def setup(bot):
bot.add_cog(ImageGenerator(bot))
:Checkmark:
Kann man nicht einfach "/n"
Sonst keine Ahnung
ich probiere mal am anfang das zu machen
Hast du ein Iphone?
ne
Kann mir jemand sagen, wieso der rote Button nicht angezeigt wird?
lange aufs slash drücken müsste es sein
einrückung, der button code muss ein tab nach links
siehe #🐍・python
Alles gut xD
Wie mache ich das denn, dass der in eine andere Zeile kommt?
Ich hab schon ne 2. View probiert, aber ging nicht so richtig
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
hier glaube
Noch ne Frage, gibt es eine Möglichkeit, also direkte Funktion, bei Buttonklick die Nachricht zu löschen?
Welche Nachricht?
Die Nachricht, wo der Button dran ist?
await interaction.message.delete()
Oh so simpel dann doch, danke 👍
``py
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
import json
import os
import asyncio
def get_config(name):
with open("config.json", "r") as f:
json_file = json.load(f)
return json_file[name]
class Ticketsystem(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
@slash_command(description="ticket menü")
@discord.default_permissions(administrator=True)
@discord.guild_only()
async def ticket_menu(self, ctx, channel: Option(discord.TextChannel, description="In which channel should the embed be send?", required=False)):
embed = discord.Embed(
title="**Ticket System**",
description="Wähle deine Ticket Kategorie und trete mit unserem Team in Kontakt!",
color=0x1067a3
)
embed.set_footer(text=self.bot.user, icon_url=self.bot.user.display_avatar.url)
embed.set_author(name=self.bot.user, icon_url=self.bot.user.display_avatar.url)
erfolg = discord.Embed(
title="Ticket System erfolgreich erstellt!"
)
await ctx.channel.send(embed=embed)
await ctx.respond(embed=erfolg, ephemeral=True)
def setup(bot):
bot.add_cog(Ticketsystem(bot))
class SelectMenu(discord.ui.View):
def __init__(self, bot) -> None:
self.bot = bot
super().__init__(timeout=None)
options = [
discord.SelectOption(label="🎫 |Support", description="Öffne ein Support Ticket", emoji="<:yes:>", value="1"),
discord.SelectOption(label="🔴 |User report", description="Öffne ein Userreport Ticket", emoji="<:no:>", value="2")
]
@discord.ui.select(
min_values=1,
max_values=1,
placeholder="Wähle eine Kategorie",
options=options,
custom_id="drop"
)
async def select_callback(self, select, interaction):
if "1" in select.values:
category = self.bot.get_channel(int(get_config("Support_Categorie")))
weiß einer wieso das modal nicht angezeigt wird ich habe kein error
Ich sehe kein Modal?
Weil du das modal nicht sendest
ah stimmt danke ups
Bitte
self-parameter vergessen in der function- Du hast falsch eingerückt
Rückgängig machen könnt ihr eine Einrückung übrigens mit Shift + Tab :)
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 Serve...
was ist den falsch eingerückt hab alles probiert
Grundlagen (von klassen) >>>>
könntest du mir bitte helfen
hm schade trz danke
weißt du warum ctx unterstrichen ist
Weils falsch eingerückt ist.
@last depot mehr sag ich jetzt nicht
Und wo ist jetzt die if abfrage?
ja habs gesehen geht jetzt dankeschön wirklich
Wie heißt das wenn man ein user anzeigen will der den command ausgeführt hat so: {interaction.user} weil wird geld unterstrichen?
Zeig deinen Code
from enum import member
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
class Support(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Mache ein Support eintrag")
async def support_eintragen(self, ctx: discord.ApplicationContext, user: discord.User, *, grund):
embed = discord.Embed(title="Support-Eingetragen", color=0x00ff00)
embed.add_field(name="Support eintrag von:", value=f"{interaction.user.mention}", inline=False)
embed.add_field(name="Benutzer", value=user.mention, inline=False)
embed.add_field(name="Grund", value=grund, inline=False)
embed.set_footer(text=self.bot.user, icon_url=self.bot.user.display_avatar.url)
embed.set_author(name=self.bot.user, icon_url=self.bot.user.display_avatar.url)
support_channel = ctx.guild.get_channel(1151545968483909682)
if support_channel:
await support_channel.send(embed=embed)
await ctx.send("Deine Support wurde erfolgreich eingereicht.")
else:
await ctx.send("Der Support-Kanal wurde nicht gefunden. Bitte kontaktiere den Server-Administrator.")
def setup(bot):
bot.add_cog(Support(bot))
{interaction.user.mention} Glaube ich
Nein
natürlich geht interaction nicht, weil du keinen interaction parameter angegeben hast
Ok
Du hast es als ctx, also ctx.user
Er will ja den, der ausgeführt hat
Lies halt seine Frage
Ah sorry hab ich falsch verstanden
stimmtttttttt
Hab ich sorry
würde das gehen das er die einträge zählt in nh datenbank und man die im embed zeigen lassen kann?
Welche datenbank?
Da wird nix eingetragen in dem command
na ich meine wie viele einträge er ingesammt gemacht hat so das so angezeigt wird
HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In components.0.components.0.options.0.emoji.name: Invalid emoji
In components.0.components.0.options.1.emoji.name: Invalid emoji
Invalid emoji
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
import json
import os
import asyncio
def get_config(name):
with open("config.json", "r") as f:
json_file = json.load(f)
return json_file[name]
class Ticketsystem(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
@slash_command(description="ticket menü")
@discord.default_permissions(administrator=True)
@discord.guild_only()
async def ticket_menu(self, ctx, channel: Option(discord.TextChannel, description="In which channel should the embed be send?", required=False)):
embed = discord.Embed(
title="**Ticket System**",
description="Wähle deine Ticket Kategorie und trete mit unserem Team in Kontakt!",
color=0x1067a3
)
embed.set_footer(text=self.bot.user, icon_url=self.bot.user.display_avatar.url)
embed.set_author(name=self.bot.user, icon_url=self.bot.user.display_avatar.url)
erfolg = discord.Embed(
title="Ticket System erfolgreich erstellt!"
)
await ctx.channel.send(embed=embed, view=SelectMenu(self.bot))
await ctx.respond(embed=erfolg, ephemeral=True)
def setup(bot):
bot.add_cog(Ticketsystem(bot))
class SelectMenu(discord.ui.View):
def __init__(self, bot) -> None:
self.bot = bot
super().__init__(timeout=None)
options = [
discord.SelectOption(label="🎫 |Support", description="Öffne ein Support Ticket", emoji="", value="1"),
discord.SelectOption(label="🔴 |User report", description="Öffne ein Userreport Ticket", emoji="", value="2")
]
@discord.ui.select(
min_values=1,
max_values=1,
placeholder="Wähle eine Kategorie",
options=options,
custom_id="drop"
)
async def select_callback(self, select, interaction):
if "1" in select.values:
category = self.bot.get_channel(int(get_config("Support_Categorie")))
wo denn
Wie kann ich beide Data Types als Choice einer Option haben. Ich hatte bisher nur die ersten 3 Values im Command als int festgelegt. Allerdings brauche ich relativ zwingend, dass man auch diesen 4. Value None dort übergibt und der als String erkannt wird.
Complex habe ich schon als Data Type probiert, wird aber nicht angenommen. Wie kann ich das fixen, hat jemand eine Idee?
meinst du bei clock_limit oder chess challenge? du könntest es als string übergeben
bei clock_limit
versuchs mit value="None"
will es ja aber eigentlich als int haben 😅. Deswegen bin ich etwas ratlos, weil ich bei dem Command anscheinend nur int oder str angeben darf...
Musst du denn int nach dem time schreiben? Du hast ja sowieso die Options und du könntest das ja danach lösen mit if
Ja, iwie meckert er sonst, komisch
Wie kann man checken ob jemand eine Interaktion gesendet hat? Also, dass nur jemand den Button drücken kann, der auch den Slash Command genutzt hat? Habe es so probiert, aber klappt iwie nicht.
@graceful fiber dafür müsstest du den user an die view klasse übergeben, im folgenden video zeige ich das
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
Heute klären wir eine Frage, die ...
Weiß einer wie ich die Performance von meinen bot steigern kann?
Hat soweit geklappt, danke. Die Fehlermeldung wird erkannt. Allerdings bekomme ich den Fehler, nicht gesendet komischerweise.
interaction.followup kannst du nur nutzen, nachdem du eine normale interaction response gesendet hast
Hm okay ergibt Sinn
wenn du den pycord master branch hast, kannst du auch einfach interaction.edit und interaction.respond nutzen
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Installation ► pip install git+https://github.com/Pycord-Development/pycord
Git ► https://git-scm.com/downloads
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCORD
Docs ► https://docs.pycord.de...
kommt drauf an, was nutzt du denn gerade in deinem bot? hast du irgendwelche nicht asynchronen packages? du kannst auch versuchen py-cord[speed] zu installieren
Hab ich leider noch nicht 
du könntest ihn installieren, die neuste version bekommst du auch wenn du pycord deinstallierst und dann pip install py-cord-dev eingibst

Was bringt speed pycord
speed
Und kann ich das mit dev Version downloaden
Kann man py-cord von nem HostServer entfernen? Also kenne nur, dass man die bei Additional Packages installieren kann, aber nicht entfernen? Gibts da auch was Sinnvolles?
denke schon, da werden einfach nur diese beiden packages installiert
msgspec~=0.18.0
aiohttp[speedups]
kommt auf den host an, aber ich denke mal wenn du wie aus den additional packages entfernst, sollten sie entfernt werden, zur not kannst du mal schauen ob du einen local oder cache ordner hast, die kannst du dann löschen
Quasi dein Host ^^
wenn dus richtig machst 😄 kannst aber auch ohne redis viel erreichen. schau erstmal wo dein bot die meiste zeit verbraucht und dann kannst du schauen woran es liegt und was du verbessern kannst
Danke
jo dann einfach aus den requirements bzw den addtional packages löschen und cache/local ordner löschen
Jup, hab ich gemacht. Geht jetzt endlich alles. Danke dir nochmal für all die Antworten 
es ist egal was ich da an mache @solid ingot
naja halt das was du haben willst
ich weiss nicht was ist gut
ich denke die 400 GB sind gut
ich meite die was ist gut 1 oder 2 oder 3
oder ist das egal
wie viel leistung du brauchst musst du wissen
was heiste ssd ?
speicher
meite es ist egal was für ein speicher hat man
oder ssd ist das bessere ?
nvme ist schneller, aber ssd reicht auch
zsh: no matches found: aiohttp[speedups]
Was hast du vor damit zu hosten, dass du so ein Biest mietest? 😄
er und ich wissen schon
Was immer das geheime Geheimprojekt am Ende ist, die Leistung sieht nice aus.
Er will Discord bots Hosten
Für den Preis? Oo
Ich meine.. nach ein bisschen rumgefrage und vergleichen habe ich mir vor wenigen Tagen erst selbst ein ordentliches update gegönnt.
2 von 4 CPU Kernen werden dabei eigentlich gar nicht gebraucht, die anderen beiden teilen sich OS und Bot. Dabei laufen die Dinger auf 4 GHz und haben mit monitoring von ~850 Server| 400_000 Membern eine durchschnittliche Auslastung von weit unter 5 %.
another Edit: müssen aber für seltene Fälle wie Riesen-Server mit 100k+ Membern die arbeitsintensive Befehle geben etwas mehr können. 100% spikes sind auch kurzfristig scheiße
Es liegen bestimmt 15 GB SSD Speicher brach, die wohl nie angetastet werden (etwa 30 gesamt).
Beim RAM sind 2 GB, DDR 4 (glaub 3200er taktung) drinne, was auch die einzige komponente ist, bei der ich nicht niedriger gehen würde.. selbst wenn im Normalbetrieb nur ~51 % verwendet werden. Auf keinen Fall auf SWAP fallen halt 
Das ganze Paket, mit stellenweise sehr genauen Konfigurationsmöglichkeiten, kostet im Monat nicht einmal 3€!
Edit: 2.83€ /mntl. um genau zu sein. Selbst die nur, weil ich zu faul bin unnötige GB von der SSD runter zu schrauben.
Will man nun Bots hosten muss man den einzelnen Projekten ja auch Kerne zur verfügung stellen und für den Enduser irgendwie bezahlbar bleiben. Stelle ich mir schwierig vor.
So sieht das ganze im laufenden Betrieb aus. Screenshot ist eben random gemacht, kein cherry picking. Höchste Last eines einzelnen Kerns in den letzten 5 Minuten lag bei 3,3 %.
Wie kann ich mehrere Embeds in einer Nachricht senden?
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
ctx.respond(embeds=[embed1, embed2])
Hab ich schon probiert, hat er nicht gemacht. 😅
was war der error?
Keiner, find ich auch komisch. Seitdem ich git installiert habe, werden mir nicht mehr alle Fehler angezeigt 🤣
Am Code kanns aber nicht liegen, weil ich meine 2 Embeds einzeln senden darf.
Deswegen bin ich ratlos, kannte es auch nur so
schick mal wie du’s bisher hast
Weiß wer wie das nochmal mit so ner command Klasse ging also wo man mehr als einen command mit nem namen oder wie das war hatte
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...
erstmal, du kannst nd 2x mit ctx.respond antworten
zweitens schick mal bitte wirklich nen screen was passiert wenn du ctx.respond(embeds=[embed,embed2]) hast und dann den code
2x ctx.respond sollte gehen, das followup wird automatisch von pycord gehandelt
bevor du irgendwas anderes machst solltest du erstmal rausfinden wieso dir keine errors angezeigt werden, sonst kannst du tagelang nur raten was nicht funktioniert. hast du vlt irgendwo einen error handler der die erros abfängt?
bruh
der teil klappt tatsächlich
ist tatsächlich genau das ausm pastebin, wo ich den kommentar gesetzt habe, aber so gehts halt nicht
also manchmal werden die auch angezeigt, nur da irgendwie nicht.
Und nein, es läuft nur der Bot in einer venv, wo auch nur der Bot den Cog lädt wo 2 Command drin sind, also eigentlich nichts.
Ich kann wenn es hilft nachher nochmal in den Call kommen oder so
, bin halt wirklich ratlos 
du schreibst embed= du musst aber embeds schreiben
Der bot hat keine rechte
du hast wahrscheinlich bei debug_guilds eine server ID für einen server angegeben, auf dem der bot nicht ist
Aber Admin perms sind nicht alle rechte oder doch
doch
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus dem Video
SQL Bolt ► https://sqlbolt.com/
Deutsches SQL Tutorial ► https://sqltutor.de/
DB Viewer ► https://sqlitebrowser.org/dl/
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://d...
async with aiosqlite.connect(self.db) as db:
asnyc with db.execute(“SELECT lvl, xp FROM levels WHERE user_id = ?“,(user.id)) as cursor:
lvl, xp = cursor.fetchone()
so kannstes aus der db nehmen
je nach variablen und tabellennamen noch bissl ändern
kann man irgendwie die Type Hints aus denn Docs ablesen. Also was man nach discord. braucht
in den docs stehen die datentypen meist dabei
aber hier steht beispielweiße nichts dabei oder übersehe ich was
ach das heißt ich muss thread: discord.Thread hinschrieben
in dem fall ja
ok danke
wieso funktioniert das jetzt nichtmehr
hat bis vor 5 min noch funktioniert
das "b" ist falsch der rest aber ok
ja 1 sek
Oke
Kriegst sogar 2 sek
🙂
Was muss ich hier noch hinzufügen, damit ein Channel erstellt wird, wenn der User dem Channel Create Channel gejoint ist ? (Soll über ID passieren und wird gespeichert in der Datenbank)
Weil du eine offne function hast, wo du nix machst
Also dieses async def info(...):
Nach dem doppelpunkt, kannst du nicht einfach leer lassen
Mit
async def on_voice_state_update()
Fehlercode
Ignoring exception in view <SetupSelectMenu timeout=900.0 children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Select a Setup Option' min_values=1 max_values=1 options=[<SelectOption label='Create TempVoice' value='Create TempVoice' description='Here you can Create the TempVoice System' emoji=<PartialEmoji animated=False name='Create' id=1150032426656079922> default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 421, in _scheduled_task
await item.callback(interaction)
File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Setups\setup-tempvoice.py", line 135, in callback
voicechannel_id = await get_voice_info()
^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Setups\setup-tempvoice.py", line 129, in get_voice_info
await cursor.execute(
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 48, in execute
await self._execute(self._cursor.execute, sql, parameters)
File "C:\Users\YT197\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\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 133, in _execute
return await future
^^^^^^^^^^^^
File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 106, in run
result = function()
^^^^^^^^^^
sqlite3.OperationalError: no such column: voicechannel_id
Code
async def get_tempvoice_info():
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT category_id FROM tempvoice WHERE category_id=?""", (category.id,)
)
return await cursor.fetchone()
async def get_voice_info():
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT voicechannel_id FROM tempvoice WHERE voicechannel_id =?""", (voicechannel.id,)
)
return await cursor.fetchone()
category_id = await get_tempvoice_info()
voicechannel_id = await get_voice_info()
voicechannel = interaction.guild.get_channel(voicechannel_id)
async def on_voice_state_update():
if voicechannel_id:
user_name = interaction.user.display_name
new_voice_channel = await category.create_voice_channel(f"{user_name}'s Channel")
await interaction.user.move_to(new_voice_channel)
Warum tritt der Fehler auf ?
Weil du kein voicechannel_id definiert hast oder bin ich blind
Nein?
Weil es in der Datenbank keine voicechannel_id column gibt.
Lernt errors zu lesen & zu verstehen
Database muss ich noch lernrn
Den Error kannte ich noch ned, aber jetzt bin ich wieder etwas schlauer. Danke dir
mhm
gibts n on_button_click event oder so und wenn ja funktoniert des auch mit button nach nem bot restart
Mit dem Bot neustart kann ich dir gleich schicken und ansich so glaube nicht, aber du kannst es im Callback des buttons reinpacken
ein event geht immer wenn der bot on ist
also sollte der button danach funktonieren?
musst halt persisten machen
Um buttons nach restart nutzen zu können, muss der Timeout der View auf None sein und die brauchen nh custom id
Und musst es natürlich halt persistent machen
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - Pycord-Development/pycord
achso ok dann hat isch das geklärt
alles gut danke.
muss noch schauen wie ich des am dümmsten bei meinem ticket system mache
Das ist für neustart, damit es geht. Einfach das für dich auf dein button anwenden. In meinem falle ist es ganz oben
Warum erstellt sich kein Voice Channel hier ?
async def get_tempvoice_info():
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT category_id FROM tempvoice WHERE category_id=?""", (category.id,)
)
return await cursor.fetchone()
async def get_voice_info():
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT creator_channel_id FROM tempvoice WHERE creator_channel_id =?""", (voicechannel.id,)
)
return await cursor.fetchone()
async def on_voice_state_update(member, before, after):
category_id = await get_tempvoice_info()
voicechannel_id = await get_voice_info()
voicechannel = member.guild.get_channel(voicechannel_id)
if voicechannel and voicechannel.category_id == category_id:
user_name = member.display_name
new_voice_channel = await voicechannel.category.create_voice_channel(f"{user_name}'s Channel")
await member.move_to(new_voice_channel)
wozu voicechannel getten?
Ist für denn Voice Channel, dass wenn man da ren joint ein neuer Voice Channel erstellt wird. Wird ein TempVoice system
ja das schon klar
aber du hast des doch alles in deiner db
Ja
dann frag doch die auch ab
Mache ich doch
ich meine bei on_voice_state_update
Mache ich doch hiermit
category_id = await get_tempvoice_info()
voicechannel_id = await get_voice_info()
aber du kriegst doch bei den get_channel desselbe wie bei voicechannel_id raus
Code:
node: wavelink.Node = wavelink.Node(host='lavalink2.oryzen.xyz', port='2248',password='disco/6xpF6YqVDd')
await wavelink.NodePool.connect(client=bot, nodes=[node])
node = wavelink.NodePool.get_node()
print(node.players)
@bot.slash_command()
async def play(ctx: commands.Context, *, search: str) -> None:
"""Musik Command"""
if not ctx.voice_client:
vc: wavelink.Player = await ctx.author.voice.channel.connect(cls=wavelink.Player)
else:
vc: wavelink.Player = ctx.voice_client
if not self.nodes:
await ctx.respond("Es gibt keine Nodes")
return
tracks: list[wavelink.YouTubeTrack] = await wavelink.YouTubeTrack.search(search)
if not tracks:
await ctx.respond(f'Sorry ich habe diese Suche: `{search} nicht gefunden!`')
return
track: wavelink.YouTubeTrack = tracks[0]
await vc.play(track)
ERROR:
Ignoring exception in command play:
Traceback (most recent call last):
File "", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "", line 188, in play
vc: wavelink.Player = await ctx.author.voice.channel.connect(cls=wavelink.Player)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1934, in connect
voice = cls(client, self)
^^^^^^^^^^^^^^^^^
File "", line 124, in __init__
self.current_node = self.nodes[0]
~~~~~~~~~~^^^
IndexError: list index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "", line 375, in invoke
await injected(ctx)
File "", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: IndexError: list index out of range```
musst des begrenzen sind zu viele
Das mit dem search?
File "", line 188, in play
vc: wavelink.Player = await ctx.author.voice.channel.connect(cls=wavelink.Player)
Oki
Ignoring exception in command play:
Traceback (most recent call last):
File "", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "", line 188, in play
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player, node=wavelink.NodePool.nodes[0])
~~~~~~~~~~~~~~~~~~~~~~~^^^
KeyError: 0
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "", line 375, in invoke
await injected(ctx)
File "", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: KeyError: 0```
Was ist hier falsch ?
async def get_tempvoice_info(category):
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT category_id FROM tempvoice WHERE category_id=?""", (category.id,)
)
return await cursor.fetchone()
async def get_voice_info(voicechannel):
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT creator_channel_id FROM tempvoice WHERE creator_channel_id =?""", (voicechannel.id,)
)
return await cursor.fetchone()
@commands.Cog.listener()
async def on_voice_state_update(member, before, after):
category_id = await get_tempvoice_info()
voicechannel_id = await get_voice_info()
if voicechannel_id and voicechannel_id.category_id == category_id:
user_name = member.display_name
new_voice_channel = await voicechannel_id.category.create_voice_channel(f"{user_name}'s Channel")
await member.move_to(new_voice_channel)
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/cog.py", line 789, in _load_from_module_spec
setup(self)
File "/Volumes/coding/merl/src/modules/mod/moderation.py", line 1291, in setup
bot.add_cog(Mod(bot))
File "/Volumes/coding/merl/src/modules/mod/moderation.py", line 66, in init
self.no = Merl(Merl, "no")
File "/Volumes/coding/merl/src/lib/Client.py", line 29, in init
super().init(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/bot.py", line 1151, in init
super().init(*args, **options)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/bot.py", line 85, in init
super().init(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/cog.py", line 614, in init
super().init(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/shard.py", line 349, in init
super().init(*args, loop=loop, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/client.py", line 245, in init
self._connection: ConnectionState = self._get_state(**options)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/shard.py", line 375, in _get_state
return AutoShardedConnectionState(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/state.py", line 1849, in init
super().init(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/state.py", line 215, in init
raise TypeError(f"intents parameter must be Intent not {type(intents)!r}")
TypeError: intents parameter must be Intent not <class 'str'>
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Volumes/coding/merl/main.py", line 6, in <module>
client.loadCommands("src/modules", sub=True)
File "/Volumes/coding/merl/src/lib/Client.py", line 167, in loadCommands
self._load_Commands(f"{dir}/{sub}")
File "/Volumes/coding/merl/src/lib/Client.py", line 176, in _load_Commands
self.load_extension(full_path)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/cog.py", line 913, in load_extension
self._load_from_module_spec(spec, name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/cog.py", line 794, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'src.modules.mod.moderation' raised an error: TypeError: intents parameter must be Intent not <class 'str'>
was heißt das?
Code?
class Merl(discord.AutoShardedBot):
def __init__(
self,
token: str = os.getenv("TOKEN"),
intents: discord.Intents = discord.Intents.all(),
*args,
**kwargs,
) -> None:
super().__init__(
description=kwargs.get("description", "A Discord bot made with PyCord"),
intents=intents,
*args,
**kwargs,
)
self._token = token
self.logger = Logger()
self.app = web.Application()
self._error_color = int(os.getenv("ERROR_COLOR"), 16)
self._color = int(os.getenv("COLOR"), 16)
self.client = pymongo.MongoClient(os.getenv("MONGO"))
self.add_listener(self.ready, "on_ready")
self.add_listener(self._error, "on_application_command_error")
self.add_listener(self.bot_inviter, "on_guild_join")
self.no_emoji = self.msg_emojis("no")
Merl.db = self.client["Merl"]
Ich wollte grade meinen Button persistent machen und habe dann festgestellt das ich einen error habe der eig gar nd kommen könnte weil man mit ezcord die
self.bot = bot nicht übergeben muss weil des doch automatisch da geht
Error:
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "D:\py\lib\site-packages\discord\client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "D:\test\pycord\cogs\fun.py", line 12, in on_ready
self.bot.add_view(Fact)
File "D:\py\lib\site-packages\discord\client.py", line 1942, in add_view
raise TypeError(f"expected an instance of View not {view.__class__!r}")
TypeError: expected an instance of View not <class 'type'>```
Code:
```py
class Fun(ezcord.Cog, emoji=":fun~1:"):
@ezcord.Cog.listener()
async def on_ready(self):
self.bot.add_view(Fact)```
Fact()
und wie kann ich da einen user mit übergeben
imm on_ready?
Kannst du nicht
doch
musst du abspeichern, und er meint das Fact() in dem setup
und wie macht man des am besten 😄
abspeichern :o
datenschutz 🤔
hmm einf guten host haben und nd neustarten 🙂
Warum net neu starten?
weil dann die button immer gehen 🙂
Kennt sich jemand mit wavelink aus?
Ja
Worum gehts
kein bock hoch zu scrollen xDD
async def setup_hook(self) -> None:
node: wavelink.Node = wavelink.NodePool(host="lavalink2.oryzen.xyz", port="1317", password="Zensiert")
await wavelink.NodePool.connect(client=self, nodes=[node])
@bot.slash_command()
async def play(ctx: commands.Context, *, search: str) -> None:
"""Musik Command"""
if not ctx.voice_client:
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player, node=wavelink.NodePool.nodes[0])
else:
vc = ctx.voice_client
tracks = await wavelink.YouTubeTrack.search(search)
if not tracks:
await ctx.respond(f'Sorry, ich habe diese Suche: `{search}` nicht gefunden!')
return
track = tracks[0]
await vc.play(track)```
Kriege diesen Error:
.
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player, node=wavelink.NodePool.nodes[0])
Da musst du keinen Node angeben
Ah okay Danke
async def setup_hook(self) -> None:
node: wavelink.Node = wavelink.NodePool(uri="lavalink2.oryzen.xyz:1317", password="Zensiert")
await wavelink.NodePool.connect(client=self, nodes=[node])
@bot.slash_command()
async def play(ctx: discord.ApplicationContext, *, search: str) -> None:
"""Musik Command"""
if not ctx.voice_client:
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player)
else:
vc = ctx.voice_client
tracks = await wavelink.YouTubeTrack.search(search)
if not tracks:
await ctx.respond(f'Sorry, ich habe diese Suche: `{search}` nicht gefunden!')
return
track = tracks[0]
await vc.play(track)
Versuchs so
Danke probiere ich morgen mal aus, sollte aber auch für pycord gehen oder?
Also wavelink halt
Error?
Guck dir bild an
self. dahinter probieren?
Wo hinter ?
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
self fehlt
Ah
Also versuch es so
async def get_tempvoice_info(category):
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT category_id FROM tempvoice WHERE category_id=?""", (category.id,)
)
return await cursor.fetchone()
async def get_voice_info(voicechannel):
async with aiosqlite.connect("database/tempvoice.db") as db:
async with db.cursor() as cursor:
await cursor.execute(
"""SELECT creator_channel_id FROM tempvoice WHERE creator_channel_id =?""", (voicechannel.id,)
)
return await cursor.fetchone()
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
category_id = await self.get_tempvoice_info()
voicechannel_id = await self.get_voice_info()
if voicechannel_id and voicechannel_id.category_id == category_id:
user_name = member.display_name
new_voice_channel = await voicechannel_id.category.create_voice_channel(f"{user_name}'s Channel")
await member.move_to(new_voice_channel)
Channel wenn ich in den Voice Channel joine geht immer noch nicht
error?
Keiner
dann lass dir das mal printen
was du speicherst
und guck ob was in der datenbank eingetragen wurde
Wurde alles eingetragen
Bruh. Warum da geürintet xD
time=time(9, 51, tzinfo=timezone.utc)
)
async def time_task(self):
day = datetime.now().strftime("%A")
if day == "Friday":```
Ich kommt mit dem datetime Zeug noch nicht so richtig klar. Ist das richtig so? Der Code nach dem "if day == "Friday":" wird auf jeden fall nicht ausgeführt.
Im Endeffekt soll 1x in der Woche zu einer bestimmten Uhrzeit was ausgeführt werden. Geht das einfacher?
@ivory orchid das ist schon ein guter weg um das problem zu lösen. lass dir doch mal day ausgeben, damit du siehst, wieso Friday nicht stimmt. denk auch dran, dass es in UTC gerade 8:03 ist, also musst du die zeit um 2 stunden zurückstellen, wenn du etwas testen magst
Also wenn ich mir "day" ausgeben lasse kommt "Friday" raus. Das sollte doch stimmen? Ich denke mal, dass es an den 2h zum testen liegt. Habe vorher mit einer gerechnet ^^
Kann mir jemand helfen so ein Layout zu bekommen mit VS?
Mein VS Sieht komplett anders aus. So zu sagen in pro Modus

Einfach auf die 3 Kästen gehen und nach einem Theme suchen, aber google wäre schneller als jemand hier 😉
Wie heißt das theme
Weiss ich nicht das ist vom Timo
Dracula
Danke
Layout ect auch?
am layout habe ich nichts geändert
Ich hab irgendwie komplett ein anderes Layout warum?
Zeig
Ok
ich kann dir helfen wenn du willst
ja gerne
wenn man einen Button Callback macht
und damit nur einen Edit an einer nachricht vornimmt, kommt der fehler [bei der nachricht] 'This Interaction Failed'
kann man das irgendwie umgehen oder muss man einen response machen?
try:
es gibt ja keinen fehler
nur in discord sagt er das.
hm
es funktioniert vom ding her aber in discord kriege ich diesen fehler
hast du schon await interaction.edit probiert?
im master branch kannst du interaction.edit machen, sonst kannst du auch interaction.response.edit_message machen
Warum kann ich kein better discord installieren
@solid ingot
bitte hier nichts fragen was gegen die TOS verstößt
Oh
(nur die plugins)
Kannst du mir helfen asuna
Hallo weiß wer wie ich mit Python ein Bild mit einer url bekomme und die dann in eine mysql db bekomme?
import discord
from discord.ext import commands
BADGE_DICT = {
discord.UserFlags.bug_hunter: ('<:1073650673847124018>', 'Bug Hunter'),
discord.UserFlags.bug_hunter_level_2: ('<:1073650701412093952>', 'Bug Hunter Level 2'),
discord.UserFlags.early_supporter: ('<:1073650766302171236>', 'Early Supporter'),
discord.UserFlags.verified_bot_developer: ('<:1073650929951309914>', 'Verifizierter Bot Entwickler'),
discord.UserFlags.active_developer: ('<:1073752640871206962>', 'Aktiver Entwickler'),
discord.UserFlags.partner: ('<:1073651009311756289>', 'Discord Partner'),
discord.UserFlags.staff: ('<:1073651341634850997>', 'Discord Staff'),
discord.UserFlags.hypesquad_balance: ('<:1073651559180808286>', 'Hypesquad Balance'),
discord.UserFlags.hypesquad_bravery: ('<:1073651574699737128>', 'Hypesquad Bravery'),
discord.UserFlags.hypesquad_brilliance: ('<:1073651581347692634>', 'Hypesquad Brilliance')
}
class buget(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def count_badges(self, ctx):
badge_counts = {badge[1]: 0 for badge in BADGE_DICT.values()}
for member in ctx.guild.members:
for flag in member.public_flags.all():
if flag in BADGE_DICT:
badge_emoji, badge_name = BADGE_DICT[flag]
badge_counts[badge_name] += 1
# Erstellen des Embeds
embed = discord.Embed(title="Abzeichen auf diesem Server", color=discord.Color.blue())
for badge_name, badge_count in badge_counts.items():
embed.add_field(name=badge_name, value=f"Anzahl: {badge_count}", inline=False)
await ctx.send(embed=embed)
def setup(bot):
bot.add_cog(buget(bot))
Error
Emjios werden nicht angezeigt und CHATGTP ist zu dumm dafür
gibt keinen
Ok
import discord
from discord.ext import commands
BADGE_DICT = {
discord.UserFlags.bug_hunter.value: ('<:1073650673847124018>', 'Bug Hunter'),
discord.UserFlags.bug_hunter_level_2.value: ('<:1073650701412093952>', 'Bug Hunter Level 2'),
discord.UserFlags.early_supporter.value: ('<:1073650766302171236>', 'Early Supporter'),
discord.UserFlags.verified_bot_developer.value: ('<:1073650929951309914>', 'Verifizierter Bot Entwickler'),
discord.UserFlags.active_developer.value: ('<:1073752640871206962>', 'Aktiver Entwickler'),
discord.UserFlags.partner.value: ('<:1073651009311756289>', 'Discord Partner'),
discord.UserFlags.staff.value: ('<:1073651341634850997>', 'Discord Staff'),
discord.UserFlags.hypesquad_balance.value: ('<:1073651559180808286>', 'Hypesquad Balance'),
discord.UserFlags.hypesquad_bravery.value: ('<:1073651574699737128>', 'Hypesquad Bravery'),
discord.UserFlags.hypesquad_brilliance.value: ('<:1073651581347692634>', 'Hypesquad Brilliance')
}
class buget(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def count_badges(self, ctx):
badge_counts = {badge[1]: 0 for badge in BADGE_DICT.values()}
for member in ctx.guild.members:
for flag in member.public_flags.all():
if flag.value in BADGE_DICT:
badge_emoji, badge_name = BADGE_DICT[flag.value]
badge_counts[badge_name] += 1
# Erstellen des Embeds
embed = discord.Embed(title="Abzeichen auf diesem Server", color=discord.Color.blue())
for badge_name, badge_count in badge_counts.items():
embed.add_field(name=badge_name, value=f"Anzahl: {badge_count}", inline=False)
await ctx.send(embed=embed)
def setup(bot):
bot.add_cog(buget(bot))
@dusk hollow
äh was hast du da geändert ?, weil alles ist gleich geblieben
Geht's
warte ich komme mal voice
bei mir doch auch aber das war ja nicht das Problem sondern wieso die emjios nicht angezeigt werden
Hmmm
Du hast die falsche Definiert
Ich mache es schnell
Soll
Bighunter soll das so sein @dusk hollow
ja
Ok
Mache es schnell
import discord
from discord.ext import commands
BADGE_DICT = {
discord.UserFlags.bug_hunter.value: ('<bugHunter:1073650673847124018> Bug Hunter'),
discord.UserFlags.bug_hunter_level_2.value: ('<buhhunter2:1073650701412093952> Bug Hunter Level 2'),
discord.UserFlags.early_supporter.value: ('<earlysupporter:1073650766302171236> Early Supporter'),
discord.UserFlags.verified_bot_developer.value: ('<botdev:1073650929951309914> Verifizierter Bot Entwickler'),
discord.UserFlags.active_developer.value: ('<active_dev:1073752640871206962> Aktiver Entwickler'),
discord.UserFlags.partner.value: ('<Partner:1073651009311756289> Discord Partner'),
discord.UserFlags.staff.value: ('<DiscordStaff:1073651341634850997> Discord Staff'),
discord.UserFlags.hypesquad_balance.value: ('<hype_balance:1073651559180808286> Hypesquad Balance'),
discord.UserFlags.hypesquad_bravery.value: ('<hype_bravery:1073651574699737128> Hypesquad Bravery'),
discord.UserFlags.hypesquad_brilliance.value: ('<hype_brilliance:1073651581347692634> Hypesquad Brilliance')
}
class buget(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def count_badges(self, ctx):
badge_counts = {badge[1]: 0 for badge in BADGE_DICT.values()}
for member in ctx.guild.members:
for flag in member.public_flags.all():
if flag.value in BADGE_DICT:
badge_emoji, badge_name = BADGE_DICT[flag.value]
badge_counts[badge_name] += 1
# Erstellen des Embeds
embed = discord.Embed(title="Abzeichen auf diesem Server", color=discord.Color.blue())
for badge_name, badge_count in badge_counts.items():
embed.add_field(name=badge_name, value=f"Anzahl: {badge_count}", inline=False)
await ctx.send(embed=embed)
def setup(bot):
bot.add_cog(buget(bot))
@dusk hollow
jetzt kommen errors
Ok
[ERROR] Error while executing /count_badges
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/commands/core.py", line 131, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/commands/core.py", line 1000, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "/storage/emulated/0/Timo/Dev/Discord/Bot/Falci/cogs/Fun/badge.py", line 36, in count_badges
badge_emoji, badge_name = BADGE_DICT[badge_name][1]
~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'BugHunter'
import discord
from discord.ext import commands
from discord.commands import slash_command
BADGE_DICT = {
discord.UserFlags.bug_hunter: ('<bugHunter:1073650673847124018>', 'BugHunter'),
discord.UserFlags.bug_hunter_level_2: ('<buhhunter2:1073650701412093952>', 'Bug Hunter Level 2'),
discord.UserFlags.early_supporter: ('<earlysupporter:1073650766302171236>', 'Early Supporter'),
discord.UserFlags.verified_bot_developer: ('<botdev:1073650929951309914>', 'Verifizierter Bot Entwickler'),
discord.UserFlags.active_developer: ('<active_dev:1073752640871206962>', 'Aktiver Entwickler'),
discord.UserFlags.partner: ('<Partner:1073651009311756289>', 'Discord Partner'),
discord.UserFlags.staff: ('<DiscordStaff:1073651341634850997>', 'Discord Staff'),
discord.UserFlags.hypesquad_balance: ('<hype_balance:1073651559180808286>', 'Hypesquad Balance'),
discord.UserFlags.hypesquad_bravery: ('<hype_bravery:1073651574699737128>', 'Hypesquad Bravery'),
discord.UserFlags.hypesquad_brilliance:('<hype_brilliance:1073651581347692634>', 'Hypesquad Brilliance')
}
class buget(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def count_badges(self, ctx):
badge_counts = {badge[1]: 0 for badge in BADGE_DICT.values()}
for member in ctx.guild.members:
for flag in member.public_flags.all():
if flag in BADGE_DICT:
badge_emoji, badge_name = BADGE_DICT[flag]
badge_counts[badge_name] += 1
# Erstellen des Embeds
embed = discord.Embed(title="Abzeichen auf diesem Server", color=discord.Color.blue())
for badge_name, badge_count in badge_counts.items():
badge_emoji d= BADGE_DICT[badge_name][1]
embed.add_field(name=f"{badge_emoji} {badge_name}", value=f"Anzahl: {badge_count}", inline=False)
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(buget(bot))
Helppppp
@solid ingot
Keine Ahnung wie
Bitte helfe
Bitte papapapapaüaaüüa
Keine Ahnung was das ist 🙂
Muss bald ins Bett glaube ich
Er findet es immer noch nicht
Code:
async def setup_hook(self) -> None:
node: wavelink.Node = wavelink.NodePool(uri="lavalink2.oryzen.xyz:1317", password="zeigichnicht")
await wavelink.NodePool.connect(client=self, nodes=[node])
@bot.slash_command()
async def play(ctx: commands.Context, *, search: str) -> None:
"""Musik Command"""
if not ctx.voice_client:
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player)
else:
vc = ctx.voice_client
tracks = await wavelink.YouTubeTrack.search(search)
if not tracks:
await ctx.respond(f'Sorry, ich habe diese Suche: `{search}` nicht gefunden!')
return
track = tracks[0]
await vc.play(track)```
Error:
Ignoring exception in command play:
Traceback (most recent call last):
File "", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "", line 178, in play
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1934, in connect
voice = cls(client, self)
^^^^^^^^^^^^^^^^^
File "", line 124, in __init__
self.current_node = self.nodes[0]
~~~~~~~~~~^^^
IndexError: list index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "", line 375, in invoke
await injected(ctx)
File "", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: IndexError: list index out of range```
Code
ist doch da
Du willst ein Element aus einer Liste abfragen also das erste aber diese Liste hat keinen Werte
Chat gpt kann mir auch net helfeb
Ist auch nh schlechte Idee chatgpt zu fragen
Kannst du mir helfen
Grad nicht
Junge einmal reicht
Ok
Wenn dir jemand helfen kann / helfen will, dann wird er/sie es tun
Ok
L Take
Ich erstelle ein thread
@fierce dove hat @solid ingot gepingt.
Hm? Will ich sehen, wie du hier ein Thread erstellst im channel
Hast ja nicht mal rechte dafür ._.
Wo bleibt dein Thread?
Hab mich verschrieben
ah
Beine Forum
Hallo weiß wer wie ich eine bild mit der url in eine mysql db machen kann
Also das ich eine url habe und das bild dann in die db insertet wird und ich es dann weider rausholen kann
wieso speicherst du nicht einfach nur den link in der datenbank?
ist dann nicht das problem das wenn das bild nicht mehr über den link verfügbar ist das ich es nicht mehr holen kann
das stimmt
Kannst doch des Bild als png Datei speichern 🤨
jeder server der mein bot benutzt soll für seinen server eine idividuelle rank card haben
Daher ist das bisschen schwer im voraus die alle zu speichern
Dann mach es eben so das er bot des Bild in einen extra Kanal schickt dann geht es nd weg
du könntest die bilder entweder dynamisch während der laufzeit auf deinem server speichern, oder wie lucky gesagt hat in einem privaten discord kanal. ich würde eher davon abraten komplette bilder in der datenbank zu speichern
kann man die nicht als blob oder so rein machen?
Oder kostet das dann zuviel speicher
Vllt kann dir sonst auch LMBD helfen
Ist es möglich bei so einem Slash Command es zu machen, das dannach man immernoch die View benutzen kann? Da ich eine discord.ui.Select verwende in meiner class und ich nun nicht mehr weiß ob man es auch so nach einem restart immernoch benutzen kann
ja, musst dir im on ready event dann wieder ein view erzeugen
also im onready mach ich dann view=discord.ui.View(timeout=None) und dann self.bot.add_view(view)
richtig?
naja da muss dann schon noch das select rein
a wdadwadsw
RuntimeWarning: coroutine 'Item.callback' was never awaited
await self.coro(*args, **kwargs)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
was wurde nicht awaited verstehe es nicht
Code
@button.callback
async def show_level(interaction: discord.Interaction):
xp = await self.get_xp(interaction.user.id)
lvl = await self.get_level(xp)
await interaction.response.send_message(f"Du bist Level {lvl}!", ephemeral=True)
Das ist der button
welche library nutzt du?
ja ik
pycord
@button.callback?
das sieht nicht aus wie pycord code, schau am besten nochmal den beispiel code an für buttons
Code:
async def setup_hook(self) -> None:
node: wavelink.Node = wavelink.NodePool(uri="lavalink2.oryzen.xyz:1317", password="zeigichnicht")
await wavelink.NodePool.connect(client=self, nodes=[node])
@bot.slash_command()
async def play(ctx: commands.Context, *, search: str) -> None:
"""Musik Command"""
if not ctx.voice_client:
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player)
else:
vc = ctx.voice_client
tracks = await wavelink.YouTubeTrack.search(search)
if not tracks:
await ctx.respond(f'Sorry, ich habe diese Suche: `{search}` nicht gefunden!')
return
track = tracks[0]
await vc.play(track)```
Error:
Ignoring exception in command play:
Traceback (most recent call last):
File "", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "", line 178, in play
vc = await ctx.author.voice.channel.connect(cls=wavelink.Player)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1934, in connect
voice = cls(client, self)
^^^^^^^^^^^^^^^^^
File "", line 124, in __init__
self.current_node = self.nodes[0]
~~~~~~~~~~^^^
IndexError: list index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "", line 375, in invoke
await injected(ctx)
File "", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: IndexError: list index out of range```
Nutzt du py-cord?
Ja nh
Nutzt du "pycord-wavelink" oder "wavelink"
wavelink , was muss ich ändern?
hm, naja das ding is halt, "wavelink" ist extra für discord.py
Kann sein, dass dann noch andere errors auftreten
Aber egal, ich schau mal wo der fehler liegt
class WavelinkCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
async def connect_node():
node: wavelink.Node = wavelink.Node(
uri="lavalink2.oryzen.xyz:1317",
password="zeigichnicht",
)
await wavelink.NodePool.connect(client=self.bot, nodes=[node])
print("Connected to node")
@commands.Cog.listener()
async def on_wavelink_node_ready(self, node: wavelink.Node):
print(f"Wavelink node '{node.id}' ready.")
@commands.Cog.listener()
async def on_ready(self):
await self.connect_node()
Versuchs so zu laden
Habs halt so in nem Cog grad
@wind finch
Ok Danke
was hat das zu bedeuten xd :
Wavelink 2.0 was unable to connect, retrying connection in: "0.5764563976181991" seconds.```
wie kann ich bei discord.VoiceChannel gucken ob der channel public oder private ist?
import discord
# Annahme: 'channel' ist der Voice Channel, den du überprüfen möchtest
if channel.type == discord.ChannelType.public:
print("Der Voice Channel ist öffentlich.")
elif channel.type == discord.ChannelType.private:
print("Der Voice Channel ist privat.")
else:
print("Der Voice Channel hat einen unbekannten Typ.")
ah danke
Bitte
aber discord.ChannelType hat kein attr zu public???
Hmmm
das einfach von ChatGPT dafür ist dieser Kanal nicht da weil das könnte ryzm selber
The API provides some enumerations for certain types of strings to avoid the API from being stringly typed in case the strings change in the future. All enumerations are subclasses of an internal c...
Hier
was meinst du genau mit privat
Hallo Bruder 🙂
cringelord
Ne
Hast du nen beweis
Deine ganzen codes sind von chatgpt bitte man merkt das.
Ne
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "/storage/emulated/0/Timo/Dev/Discord/Bot/AquaSay/addons/Bot.py", line 48, in on_ready
await self.sync_commands()
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/bot.py", line 757, in sync_commands
app_cmds = await self.register_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/bot.py", line 534, in register_commands
prefetched_commands = await self._bot.http.get_guild_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/http.py", line 365, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
Ok
kann mir da wer helfen? Habe die Module eigentlich installiert
du benutzt discord.py?
ja
dann keine ahnung :o
@fresh otter für discord.py benötigst du discord_slash nicht, am besten deinstallierst du das package
wie dann? Bin relativ neu in Python
am besten arbeitest du immer nur mit einem package, also zb discord.py oder py-cord. diese packages haben schon alles was du brauchst. wenn du zusätzlich noch andere packages hast, wie discord_slash, funktionieren die packages eventuell nicht mehr richtig
discord_slash ist sehr alt nutz lieber app_commands von discord.py oder von py-cord slash_commands
sagt hier zwar gerade keiner.. aber wenn dus mit timos videos lernen magst, was eine sehr gute einführung ist, nim pycord.
achte nur beim installieren darauf, den anderen kram vorher richtig zu entfernen. beides installiert haben fürt zu problemen.
also erstmal
pip uninstall discord.py
falls du noch weitere packete in der richtung hast, erstmal weg damit. einfach die zeile anpassen.
Danach gehts entweder mit der aktuellen fast stable:
pip install py-cord-dev==2.5.0rc5
oder der stabilen aber etwas älteren version weiter:
https://docs.pycord.dev/en/stable/installing.html
Wenns dazu noch Fragen oder Probleme gibt, immer hier rein. da findet sich immer jemand der hilft
PS: Pycharm und Pycord sind bekannt dafür Fehler zu verursachen, wenn beide Packages vorhanden sind.
from datetime import datetime
import discord
from discord.commands import slash_command
from discord.ext import commands
from discord.ui import Button, View, Modal, InputText
class RpRules(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(VerifyButton())
@slash_command(description="Setze Rules")
async def rules(self, ctx, channel: discord.TextChannel):
await ctx.defer()
rules = [
" **Um das discord Regelwerk zu apzeptiren drückst du unten auf den butten um es zu lesen auf den link https://site.sunrise-roleplay.de/regelwerk/discord-regelwerk**",
#hier kannst mehr regel machen !
]
rules_message = "\n".join(rules)
embed = discord.Embed(title="Verifiziere dich hier REGELN AUF Sunrise RP | Hosted By Tubehosting", description=rules_message, color=discord.Color.yellow())
embed.set_thumbnail(url=f"{ctx.guild.icon}")
embed.set_image(url="https://media.discordapp.net/attachments/1150850034724786276/1150969506102001694/BCc2s6G.gif")
link = Button(label="Discord Regln", style=discord.enums.ButtonStyle.url, url="https://site.sunrise-roleplay.de/regelwerk/discord-regelwerk")
view = View()
view.add_item(link)
view.add_item(VerifyButton())
await channel.send(embed=embed, view=view)
await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")
class VerifyButton(discord.ui.Button):
def __init__(self):
super().__init__(
label="Akzeptieren",
style=discord.enums.ButtonStyle.red,
custom_id="verify:btn",
emoji=":emoji_97:"
)
async def callback(self, interaction: discord.Interaction):
role = interaction.guild.get_role(1150855270864535634)
role2 = interaction.guild.get_role(1151028458848268378)
role3 = interaction.guild.get_role(1151028628692410489)
role4 = interaction.guild.get_role(1151028628692410489)
await interaction.user.add_roles(role, role2, role3, role4)
await interaction.response.send_message(f"Deine Anmeldung wurde dem Team Erfolgreich zugesendet und du hast die "
f"Rolle {role.mention} erhalten", ephemeral=True)
def setup(bot):
bot.add_cog(RpRules(bot))```
[ERROR] Error in event on_ready
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "/home/container/cogs/RpRules.py", line 14, in on_ready
self.bot.add_view(VerifyButton())
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 1769, in add_view
raise TypeError(f"expected an instance of View not {view.__class__!r}")
TypeError: expected an instance of View not <class 'cogs.RpRules.VerifyButton'>
Ignoring exception in view <View timeout=180.0 children=2> for item <VerifyButton style=<ButtonStyle.danger: 4> url=None disabled=False label='Akzeptieren' emoji=<PartialEmoji animated=True name='emoji_97' id=1119227513894350919> row=None>:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/home/container/cogs/RpRules.py", line 57, in callback
await interaction.response.send_message(f"Deine Anmeldung wurde dem Team Erfolgreich zugesendet und du hast die "
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 825, in send_message
await self._locked_response(
File "/home/container/.local/lib/python3.11/site-packages/discord/interactions.py", line 1090, in _locked_response
await coro
File "/home/container/.local/lib/python3.11/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
Die interaction braucht wohl zu lange, bau ein "ctx.defer" ein
class VerifyButton(discord.ui.Button):
def __init__(self):
super().__init__(
label="Akzeptieren",
style=discord.enums.ButtonStyle.red,
custom_id="verify:btn",
emoji=":emoji_97:"
)
async def callback(self, interaction: discord.Interaction):
await interaction.defer()
role = interaction.guild.get_role(1150855270864535634)
role2 = interaction.guild.get_role(1151028458848268378)
role3 = interaction.guild.get_role(1151028628692410489)
role4 = interaction.guild.get_role(1151028628692410489)
await interaction.user.add_roles(role, role2, role3, role4)
await interaction.followup.send(f"Deine Anmeldung wurde dem Team Erfolgreich zugesendet und du hast die "
f"Rolle {role.mention} erhalten", ephemeral=True)
def setup(bot):
bot.add_cog(RpRules(bot))
Versuchs so
Ok
File "/home/container/cogs/RpRules.py", line 51, in callback
await interaction.defer()
^^^^^^^^^^^^^^^^^
AttributeError: 'Interaction' object has no attribute 'defer'
Ignoring exception in view <View timeout=180.0 children=2> for item <VerifyButton style=<ButtonStyle.danger: 4> url=None disabled=False label='Akzeptieren' emoji=<PartialEmoji animated=True name='emoji_97' id=1119227513894350919> row=None>:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/home/container/cogs/RpRules.py", line 51, in callback
await interaction.defer()
^^^^^^^^^^^^^^^^^
AttributeError: 'Interaction' object has no attribute 'defer'
class VerifyButton(discord.ui.Button):
def __init__(self):
super().__init__(
label="Akzeptieren",
style=discord.enums.ButtonStyle.red,
custom_id="verify:btn",
emoji=":emoji_97:"
)
async def callback(self, interaction: discord.Interaction):
await interaction.response.defer()
role = interaction.guild.get_role(1150855270864535634)
role2 = interaction.guild.get_role(1151028458848268378)
role3 = interaction.guild.get_role(1151028628692410489)
role4 = interaction.guild.get_role(1151028628692410489)
await interaction.user.add_roles(role, role2, role3, role4)
await interaction.followup.send(f"Deine Anmeldung wurde dem Team Erfolgreich zugesendet und du hast die "
f"Rolle {role.mention} erhalten", ephemeral=True)
def setup(bot):
bot.add_cog(RpRules(bot))
uhh
Da ist das laden eines cogs asyncron
hab py-cord
dann hast du zudem discord.py installiert wel bei pycord ist das nicht async
Stimmt
hatte doch discord.py installiert idk wieso
Hier werden nur coding fragen gestellt
wo steht dad

Man kann hier sicherlich auch anderweitig nach Hilfe fragen, wenn es jemanden gibt der Helfen kann und helfen will, dann ist doch gut hier auch zu fragen
OK wusste ich nicht
und mi zomscheißen is a a frechheit
Wenn die Playstation 3defekt ist, kann man die PS3 reparieren in dem man den Recovery Modus aufruft. Wie das geht seht ihr in diesem PS3 reparieren Video.
Eine Problem Lösungs Anleitung, schnell und einfach zum selber reparieren. Viel Spaß mit den hiflreichen Tipps und Tricks, Sport, Spiele, Basteln, Hobby und Freizeit Hilfen by ratgeberTVision...
ja ne
Definiere "kaputt gegangen"?
wollte den speicherplatz ausbauen da ich beim pc mehr habe aber da ist der ist bissl zu groß
und ich habe kappeln kapput gemacht
Ja
also ausgerissen
Bist du ausgerastet
na
..
[ERROR] Error in event on_connect
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "/storage/emulated/0/Timo/Dev/Discord/Bot/AquaSay/addons/Bot.py", line 61, in on_connect
self._heartbeat.start()
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/tasks/__init__.py", line 327, in start
raise RuntimeError("Task is already launched and is not completed.")
RuntimeError: Task is already launched and is not completed.
17/09/2023 18:35:38 BOT :: Info || Logged in as AquaSay#7204 (1152602160807293058)
17/09/2023 18:43:56 BOT :: Info || Logout detected
Unhandled exception in internal background task '_heartbeat'.
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
await self.coro(*args, **kwargs)
File "/storage/emulated/0/Timo/Dev/Discord/Bot/AquaSay/addons/Bot.py", line 88, in _heartbeat
self.log(f"Heartbeat - {round(self.latency * 1000)}ms")
^^^^^^^^^^^^^^^^^^^^^^^^^^
OverflowError: cannot convert float infinity to integer
Code von asuna.wav
Der Fehler: Du nutzt Code von asuna
Oh
hdf
dein code ist anscheind "infinity"
kannst das hearbeat auch raus machen
Ok
[ERROR] Error in event on_message_edit
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/client.py", line 399, in _run_event
await coro(*args, **kwargs)
File "/storage/emulated/0/Timo/Dev/Discord/Bot/AquaSay/Events/serverLog.py", line 49, in on_message_edit
await channel.send(embed=em)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'send'
"channel" ist None
Ja, du hast es erfasst
🙂
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...
Oke timo
from discord_components import Button, ButtonStyle, InteractionType
hat wer gerade die neue version wie es anderns heißt ^^
die library discord_components brauchst du nicht, alle Features davon sind schon in Discord.py oder Pycord drin
/setchannel log
Ok
@barren garden du meinst den abstand zwischen der navigationsbar und dem hellblauen dings nh
Den background geht nicht auf die ganze Breite obwohl ich dafür keine px Größe eingegeben habe
Es soll ja auf die komplette Breite sein
schick nochmal das bild
Gibt es nen event, wo ich abfragen kann, wenn ein Channel erstellt worden ist, Gelöscht oder etwas geändert worden ist ?
ja
Keine Ergebnisse für on_channel_update gefunden. Meintest du Folgendes?
wie kann ich einstellen das bei einem slash command eine id eingegeben werden kannda sonst immer kommt das man einen gültigen integer angeben muss
das müsstest du als string machen. tipp: wenn du als option type einen channel nimmst, kannst du dort auch eine channel-ID eingeben
jo danke, das mit channel weiß ich, will halt eine msg id für ein giveawa system zum rerollen nutzen
du könntest einen message command machen, oder halt die ID als string
ja danke! Hat geklappt mit str
der Command will nicht angezeigt werden:
@bot.slash_command()
async def help(ctx):
embed = discord.Embed(
title=f"Help Menü",
description=f"Test",
color=discord.Color.blue()
)
await ctx.repond(embed=embed)
Sag dem Command "Pfuii"
es wollen viele COmmands bei mir nicht angezeigt werden
Dann musst du mal mit denen Schimpfen
der Command ist in arbeit und das ist ein test
Hast du "guild_ids" beim bot angegeben?
wait
nope
kann mir jemand helfen? also mir fehlen commands obwohl die eig gehen sollten
ich habe einen cogs ordner erstellt
Ist das in nem Cog?
Zeig mal deinen Kompletten Code
import discord
from discord.ext import commands
@bot.slash_command()
async def help(ctx):
embed = discord.Embed(
title=f"Help Menü",
description=f"Test",
color=discord.Color.blue()
)
await ctx.repond(embed=embed)

Hm?
Das ist mein cog
Wo hast du "bot" definiert?
Wo startest du den Bot?
Das ist kein Cog ._.
Kein
main
Meinte ich ja
Undd in welche Datei ist dieser Code?
Pack in in die main
verbessert:
import discord
from discord.ext import commands
bot = commands.Bot
@bot.slash_command()
async def help(ctx):
embed = discord.Embed(
title=f"Help Menü",
description=f"Test",
color=discord.Color.blue()
)
await ctx.repond(embed=embed)

Hm?
Schick doch mal deinen ganzen Code einfach
hab ich auch, geht aber net
bro, der ist zu lang
und es ist eig meiner
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
Es bleibt ja deiner aber um dir beste Möglich zu helfen muss man schon alles sehen
Chill, ist nur ein Discord Bot Code, ist nix besonderes

jetzt geht's wenn ich in Main mache und ein paar sachen entferne
kann mir jemand sagen warum dieser fehler auftritt, weil es gibt timezone:
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\stats.py", line 13, in <module>
class Stats(commands.Cog):
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\stats.py", line 43, in Stats
tzinfo=datetime.timezone(datetime.timedelta(hours=2)),
^^^^^^^^^^^^^^^^^
AttributeError: type object 'datetime.datetime' has no attribute 'timezone'. Did you mean: 'astimezone'?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\main.py", line 39, in <module>
bot.load_extension(f"Cogs.{filename[:-3]}")
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 913, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 780, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'Cogs.stats' raised an error: AttributeError: type object 'datetime.datetime' has no attribute 'timezone'```
Wo war der denn vorhin 
import discord
from discord.ext import commands
bot = commands.Bot
class Test3(commands.Cog):
def __init__(self, bot):
self.bot = bot
@bot.slash_command()
async def a(self, ctx):
embed = discord.Embed(
title=f"Help Menü",
description=f"Test",
color=discord.Color.blue()
)
await ctx.repond(embed=embed)
def setup(bot):
bot.add_cog(Test3(bot))
der will nicht laden
bot.load_extension("cogs.test3")
ist in main
der slash command ist zu weit links und ist deshalb außerhalb der cog-klasse
schau dir nochmal genau die einrückung an
geht immernoch nicht
du musst mir schon zeigen was du geändert hast
import discord
from discord.ext import commands
bot = commands.Bot
class Test3(commands.Cog):
def __init__(self, bot):
self.bot = bot
@bot.slash_command()
async def a(self, ctx):
embed = discord.Embed(
title=f"Help Menü",
description=f"Test",
color=discord.Color.blue()
)
await ctx.repond(embed=embed)
def setup(bot):
bot.add_cog(Test3(bot))
ich würde dir empfehlen, das cog video nochmal komplett zu schauen, damit du verstehst wie ein cog aufgebaut wird.
das bot = commands.Bot solltest du zum beispiel entfernen und andere sachen müssen auch noch angepasst werden
der sagt dann fehler
Traceback (most recent call last):
File "C:\Users\PycharmProjects\spideybot\venv\Lib\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 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\PycharmProjects\spideybot\cogs\test3.py", line 4, in <module>
class Test3(commands.Cog):
File "C:\Users\PycharmProjects\spideybot\cogs\test3.py", line 8, in Test3
@bot.slash_command()
^^^
NameError: name 'bot' is not defined
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\PycharmProjects\spideybot\main.py", line 79, in <module>
bot.load_extension("cogs.test3")
File "C:\Users\PycharmProjects\spideybot\venv\Lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\PycharmProjects\spideybot\venv\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.test3' raised an error: NameError: name 'bot' is not defined
@raven lotus mach das
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
die fehler sind weg, aber der Command wird nicht angezeigt, ich schaue mal weiter
ES GEHT!
DANKE!
ich habe versucht eine Blacklist für commands zu machen, aber die ist nicht cogs übergreifend
wait
irgendwie geht es mit cogs, aber ich brauche eine extra datei
wie mach ich das?
blacklist= blacklist.py oder wie?
kann mir jemand helfen?
@solid ingot ?
Sry4ping
Ich glaube ich habe eine Lösung
für das blaue element was weiter nach rechts soll musste das margin weiter eindämmen also margin-left: 0; z.B.
kann mir jemand sagen warum dieser fehler auftritt, weil es gibt timezone:
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\stats.py", line 13, in <module>
class Stats(commands.Cog):
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\stats.py", line 43, in Stats
tzinfo=datetime.timezone(datetime.timedelta(hours=2)),
^^^^^^^^^^^^^^^^^
AttributeError: type object 'datetime.datetime' has no attribute 'timezone'. Did you mean: 'astimezone'?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Kevin\PycharmProjects\NightPro - Test\main.py", line 39, in <module>
bot.load_extension(f"Cogs.{filename[:-3]}")
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 913, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 780, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'Cogs.stats' raised an error: AttributeError: type object 'datetime.datetime' has no attribute 'timezone'```
was hast du importiert?
from datetime import datetime, timezone, timedelta, time
dann kannst du direkt timezone schreiben, ohne datetime davor
brauche aber datetime für eine andere funktion noch
dann nimm einfach timezone aus dem import raus und es sollte theoretisch so gehen
aber das ist eigentlich auch egal 😅
muss man timezone nicht extra importieren?
ok, dann danke
aktuell hast du timezone extra importiert, nutzt diesen import aber gar nicht, weil du datetime.timezone schreibst
du kannst den import auch ändern, das würde dann so gehen
ja so habe ich es, also das 2. bild
die umwandlung in eine andere schreibweise ist doch eigentlich korrekt oder?
joint_server = discord.utils.format_dt(user.joined_at, "F")```
aber mir werden nur komische Zeichen angezeigt xd
wo lässt du den wert denn anzeigen
auf einem user stats bild
das geht nicht, so ein timestamp wird nur in discord chats von discord in eine lesbare zeit umgewandelt
kann man dass dann auch irgendwie in einem bild machen?
dann musst du es erst in einen text umwandeln und den dann auf das bild schreiben
wenn du sowas wie vor 10 Tagen anzeigen willst, könntest du ezcord nutzen
ok, will aber eine genaues datum, aber werde auch bald mal ezcord ausprobieren woollte ich eh mal machen und deinen 1. vorschlag teste ich mal
versuchs mal mit strftime
mein afk system geht nicht: ```py
import discord
from discord.ext import commands
from discord.commands import slash_command
intents = discord.Intents.default()
bot = commands.Bot(intents = intents)
bot = discord.Bot(intents=intents)
afk_users = {}
class Afk(commands.Cog):
def init(self, bot):
self.bot = bot
@slash_command()
async def afk(self, ctx, reason: str):
afk_users[ctx.author] = reason
await ctx.respond(f'{ctx.author.mention} ist jetzt AFK. Grund: {reason}')
await ctx.author.edit(nick=f'[AFK] {ctx.author.name}')
@bot.event
async def on_message(self, message):
if not message.author.bot:
if message.author in afk_users:
del afk_users[message.author]
await message.channel.send(f'{message.author.mention} ist nicht mehr AFK.')
await message.author.edit(nick=message.author.name)
else:
for user, reason in afk_users.items():
if message.author in message.mentions:
await message.channel.send(f'{message.author.mention}, {user.name} ist AFK. Grund: {reason}')
await bot.process_commands(message)
def setup(bot):
bot.add_cog(Afk(bot))
bruh
cog oder main.py?
@bot.event -> @commands.Cog.listener()
ok
Hmmmmm... Da ist eine Cog klasse und ein setup ._.... hmmmmm
intents = discord.Intents.default()
bot = commands.Bot(intents = intents)
bot = discord.Bot(intents=intents)
Das weg
import discord
from discord.ext import commands
from discord.commands import slash_command
afk_users = {}
class Afk(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def afk(self, ctx, reason: str):
afk_users[ctx.author] = reason
await ctx.respond(f'{ctx.author.mention} ist jetzt AFK. Grund: {reason}')
await ctx.author.edit(nick=f'[AFK] {ctx.author.name}')
@commands.Cog.listener()
async def on_message(self, message):
if not message.author.bot:
if message.author in afk_users:
del afk_users[message.author]
await message.channel.send(f'{message.author.mention} ist nicht mehr AFK.')
await message.author.edit(nick=message.author.name)
else:
for user, reason in afk_users.items():
if message.author in message.mentions:
await message.channel.send(f'{message.author.mention}, {user.name} ist AFK. Grund: {reason}')
def setup(bot):
bot.add_cog(Afk(bot))
So is richtig
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
kurze frage, wie heißt der Code oder so für das Displayname
also ich halt mit dem Namen Quark
und nicht quarkii_
@raven lotus hat @solid ingot gepingt.
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Git ► https://git-scm.com/downloads
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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://d...
Was ist das beste Datenbank System?
Ansichtssache
MySQL?
Ansichtssache
Ansichtssache.
Ist halt nh Datenbanksprache.
Aber ob das gut ist, musst du für dich selber herausfinden
Wie wechselt ein Bot dauernd die Aktivität und den Status?
#1069916479312625684 message
Danke
Habe bis jetzt den Code und will eine bestenliste machen, aber so klappt das nicht: async with aiosqlite.connect(self.db) as db:
async with db.cursor() as cursor:
await cursor.execute("SELECT msg_count FROM messages WHERE guild_id = ? AND user_id = ?",
(ctx.guild.id, user.id))
data = await cursor.fetchone()
await cursor.execute(
"SELECT msg_count FROM messages WHERE guild_id = ? AND user_id = ? ORDER BY msg_count DESC",
(ctx.guild.id, user.id))
results = await cursor.fetchall()
if data:
leaderboard = ""
for index, (results[0]) in enumerate(results):
leaderboard += f"{index + 1}"
schaue des video zum ende da fehlt die Hälfte
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus dem Video
Paginator Guide ► https://guide.pycord.dev/extensions/pages/paginator-basics
Paginator Docs ► https://docs.pycord.dev/en/stable/ext/pages/index.html#paginator
Modulo Operator ► https://www.youtube.com/watch?v=rVGrds7AbPw
Code auf Github ► ...
du magst eben aus der Menge herausstechen 😄
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\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 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\user\PycharmProjects\spideybot\cogs\pingreaction.py", line 26, in <module>
user_id = ctx.author.id # Hier wird die user_id zugewiesen
^^^
NameError: name 'ctx' is not defined
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\spideybot\main.py", line 43, in <module>
bot.load_extension("cogs.pingreaction")
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.pingreaction' raised an error: NameError: name 'ctx' is not defined
Process finished with exit code 1
was muss ich machen?
jemand da?
sry
Wenn dir jemand helfen will, dann wird dir geholfen
ok
Aber so wirst du keine Hilfe bekommen
sry
@raven lotus hat @solid ingot gepingt.
@raven lotus hat @past temple gepingt.
Lern Python Grundlagen.
NameError: name 'ctx' is not defined
Kannst du die Python Grundlagen?
Das ist der einfachste Error in Python den es gibt
ja
Schick deinen Code aus der pingreaction.py
ohne datenbank natürlich
Das hat nix mit datenbank zutun
Du hast einfach "ctx" nicht definiert
Schick deinen Code aus der pingreaction.py
ich weiß
der ist lang
Schick das wichtigste
@slash_command()
async def pingreaction(self, ctx, emoji):
user_id = ctx.author.id
add_ping_reaction(user_id, emoji)
await ctx.send(f"{ctx.author.mention}, du erhältst jetzt eine Reaktion mit {emoji}!")
also das ist der command
Ist da die Zeile 26?
cursor.execute("CREATE TABLE IF NOT EXISTS ping_reactions (user_id BIGINT PRIMARY KEY, emoji VARCHAR(255))")
intents = discord.Intents.default()
user_id = ctx.author.id # Hier wird die user_id zugewiesen
sql = "INSERT INTO ping_reactions (user_id, emoji) VALUES (%s, %s) ON DUPLICATE KEY UPDATE emoji = VALUES(emoji)"
values = (user_id, emoji)
cursor.execute(sql, values)
``` das das andere
ne hier
Und wo genau ist der Code?
26 bei user_id
Schick doch screenshot von dem ganzen Code
oder lad auf https://hastebin.skyra.pw/ hoch
Die zeilen da drüber brauch ich auch
da ist die datenbank
hm?
Hast du diesen Code in einem command?
@slash_command()
async def pingreaction_deactive(self, ctx):
user_id = ctx.author.id
remove_ping_reaction(user_id)
await ctx.send(f"{ctx.author.mention}, deine Ping-Reaktion wurde deaktiviert!")
Ich gib dir einen Tipp: Lern die Python-Grundlagen
Ohne mehr Code, kann dir keiner helfen
Lad doch einfach auf https://hastebin.skyra.pw/ hoch und fertig
Dann kann man dir helfen
Klar kannst du außerhalb eines commands nicht ctx verwenden
ctx ist der context des commands
Probiers so
Die zeilen waren unnötig
Ignoring exception in command pingreaction:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\mysql\connector\cursor_cext.py", line 300, in execute
raise ProgrammingError
mysql.connector.errors.ProgrammingError: Unknown error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\user\PycharmProjects\spideybot\cogs\pingreaction.py", line 71, in pingreaction
add_ping_reaction(user_id, emoji)
File "C:\Users\user\PycharmProjects\spideybot\cogs\pingreaction.py", line 37, in add_ping_reaction
cursor.execute(sql, values)
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\mysql\connector\cursor_cext.py", line 302, in execute
raise ProgrammingError("Cursor is not connected", 2055) from err
mysql.connector.errors.ProgrammingError: 2055: Cursor is not connected
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\commands\core.py", line 375, in invoke
await injected(ctx)
File "C:\Users\user\PycharmProjects\spideybot\venv\Lib\site-packages\discord\commands\core.py", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: ProgrammingError: 2055: Cursor is not connected
Cursor ist nicht verbunden
aber ich weiß nicht genau was ich machen muss
Schick bitte mal den connection string
Du bist nicht mit deinem mysqlserver verbunden
Kann man in #1136979657305116764 Leute suchen, die an meinen Bot mitmachen wollen?
nein, das ist nur um vorhandene projekte vorzustellen
Idk aber beim Code oben hast du keine Anmeldungsinfos. Also bei MySQL.connector.connect() fehlen dir:
host, user, password, database
Abgesehen davon würde ich dir auf jeden Fall einen mysql - Pool & asynchrone Connections empfehlen. Falls du Hilfe brauchst hab ich alle dafür da
Ich habe die entfernt, damit ihr kein Zugriff habt
Dann mach doch einfach **** dahin xD
Jajaja
Naja …
Was ist MySQL - Pool?
Wie meinst du verbunden? Dass der Server offline ist oder wie?
ich habe das ohne video gemacht und ich will dass es in einem bild mit pil der message rang eines users angezeigt wird und so steht immer nur #1 dran
Code: ```py
report = SlashCommandGroup(name="report", description="🤖 | Verwalte das Report-System.", guild_only=True)
@report.command(description="📄 | Setze den Logchannel für das Report-System.")
@discord.default_permissions(administrator=True)```
irgendwie kann trz jeder den command nutzen
Mmmh
Imports
import discord
from discord.ext import commands
from discord import default_permissions, Option, SlashCommandGroup
import requests
import asyncio
import traceback
import aiosqlite
import datetime
Probiere Mal
@commands.has_permissions(administrator=True)
Unter dem Command
from discord.ext import commands
from discord.commands import default_permissions, Option, SlashCommandGroup
import requests
import asyncio
Und das als import
import traceback
import aiosqlite
import datetime
Also
@bot.command()
@commands.has_premissions(administrator=True)
Warum
Ist es kein Command?
@commands.has_permissions(administrator=True)
Das ist kein command
Code: ```py
report = SlashCommandGroup(name="report", description="🤖 | Verwalte das Report-System.", guild_only=True)
@report.command(description="📄 | Setze den Logchannel für das Report-System.")
@commands.has_permissions(administrator=True)```
Ist nicht schlimm
Muss doch drüber oder nicht?
Soweit ich weiß nicht
@tall gorge
@comands.has_permissions muss unter @slash_command
Stimmt lol
das habe ich eig gemeint
Zumindest bei PyCord
Es geht gerade um deine Code . In welcher Sprache dein Code ist
Nein, ich meine der code
Das ist nicht mein Code
Von wem denn dann?
Das ist von @tall gorge der coee
Ist das jetzt Python oder nicht?
Weißt du in welcher Sprache der ist?
Pycord
Es gibt also kein Command im Code da, oder wie
Jeder kann den command ausführen ist der fehler
🙁
XD
Mit commands group kann ich leider nichts anfangen. Xd
Was ist das
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: ProgrammingError: 2055: Cursor is not connected
wie connecte ich den Cursor?
import discord
from discord.ext import commands
from discord.commands import slash_command
class Greet(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def greet(self, ctx):
await ctx.respond(f"Hey {ctx.author.mention}")
@commands.Cog.listener()
async def on_member_join(self, member):
embed = discord.Embed(
title="Welcome"
description=f"Hey {member.mention}"
color=discord.Color.dark_magenta()
)
channel = await self.bot.fetch_channel(channelid)
def setup(bot):
bot.add_cog(Greet(bot))```
was hab ich falsch gemacht?
Schicke dir gleich meinen example code!
Inwiefern?
Du hast beim Embed kommas vergessen
@commands.Cog.listener()
async def on_member_join(self, member):
embed = discord.Embed(
title="Welcome"
description=f"Hey {member.mention}"
color=discord.Color.dark_magenta()
)
irgendwas klappt da nicht
stimmt
Wie gesagt, du hast die Kommas vergessen
danke
import discord
from discord.ext import commands
from discord.commands import slash_command
class Greet(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def greet(self, ctx):
await ctx.respond(f"Hey {ctx.author.mention}")
@commands.Cog.listener()
async def on_member_join(self, member):
embed = discord.Embed(
title="Welcome",
description=f"Hey {member.mention}",
color=discord.Color.dark_magenta()
)
channel = await self.bot.fetch_channel(channelid)
def setup(bot):
bot.add_cog(Greet(bot))
Danke 
ich wechsle zu sqlite
MySql und Sqlite ist sogut wie das selbe
...:..:...
wofür braucht man das
@raven lotus
import mysql.connector
mydb = mysql.connector.connect(
host="hostname",
user="username",
password="password",
database="database"
)
mycursor = mydb.cursor()
ich nehme trotzdem sqlite
check deinen connector string
schick ihn doch einfach mal. Wenn er localhost ist können wir eh nichts damit anfangen.
Wenn nicht machst du es einfach wie ich!
ich habe mysql deistalliert...
Und es wäre immer sehr Hilfreich
- den Code dazu zu schicken und
- Mal das zu probieren, was andere dir Vorschlagen
brauch ich from discord.commands import Option in der main file oder reicht es wenn import discord from discord.ext import commands from discord.commands import slash_command bei cogs sind?
Wie meinst du
also im code
Du musst es nur da Importieren, wo du es auch brauchst!
also reicht in der main file wo kein command ist import discord
also z.B. in einer cog datei
hää im video ist auch kein from discord.commands import Option mehr drinne
Wenn du ezcord da nutzt musst du es dort auch schreiben
Da bin ich mir nicht sicher. Arbeite nicht mit Cogs, aber mag mal gehört zu haben, dass du commands dazu brauchst 🤷
Ja das stimmt
wait ich brauche hilfe in meinem code
commands.Cog 😅
ja also
Wie gesagt, habe noch nie etwas mit Cogs zu tun gehabt. Deshalb habe ich absolut keine Ahnung 🙂
kann mir wer helfen?
leider nicht xd
ok
kann nicht mal py-cord
Fehler bitte einmal beschreiben...
er erkennt add_ping_reaction net
discord.py ist async
ne wait
Code ? Error?
Das hat nix damit zutun
warte ich hab mich vertan
Sicher?
get_ping_reaction
Weil du es in der Cog klasse hast, also seelf.add_ping_reaction
Jo
Junge lernt die Grundlagen von Python (bzw. von Klassen)
Okay, dann mybad 🙂
jaaa
Geht meines Wissens auch ohne async
Ja klar, diese Function hat ja nix mit discord.py zutun
Also dieser Code Abschnitt
gibt keinen
Ich sage nix zu seinen Code gerade 😂
er will das nicht ausführen
Okay, habe grade nachgeguckt, scheint wirklich so zu sein, da die cog.py in discord.py im commands Folder liegt 😄
also den befehl
🤷♂️
Sieht mir auch irgendwie bisschen generiert aus
I mean, sonst wüsste er ja, wie er diese sachen behebt
🤷♂️
Und keiner macht solche Kommentare # Funktionen für die Datenbankoperationen
gut, das ist natürlich mal wieder schneller geschrieben als nachgedacht von mir 🤦♂️
broooooooo
hilft mir bitte jemand
der will nicht den befehl ausführen und ich kann die datei nicht öffne, weil ich dafür ein anderes programm brauche
Ja einf Code und error senden 😂
Anderes Programm?
Und Tipp. Timo macht meines Wissens nach auch Super Duper Python Grundlagen Videos, oder liege ich da Falsch? 🤔
bruh, ich habe text datei gemacht ich vollidiot
Schaue dazu in #📙・einführung
https://hastebin.skyra.pw/sixopogulu.py
Versuchs so zu übernehmen
Deer code sah ja komplett gef*ckt aus
Wow, was soll man mit der info anfangen?
also code schon, aber er führt den befehl net aus
Error?
from dotenv import load_dotenv
hab die library trotzdem ist es noch grau
gibt keinen der sagt nur: Ungültiger Befehl für Interaktions-Anwendung
woran liegt es?
Inwiefern grau?
Schick mal als screenshot

