#Allgemeine Hilfe
1 messages · Page 35 of 1
Hab da gesendet, aber wen ich laut Pycharm Starte geht der auch und ist online
discord.Client ist zwar veraltet, sollte aber existieren. hast du evtl mehrere discord packages installiert? schau dazu evtl in #🔍・pycord-help
Aber der bot geht ja nicht über Pycord.
das an sich hat erstmal nichts damit zu tun welche library du nutzt
hab mit sowas noch nie wirklich gearbeitet und finde auch nicht so wirklich was mir weiterhilft
Hey
import discord
from discord.utils import basic_autocomplete
from discord.ext import commands
from discord.commands import slash_command, Option
Teamler = ["Administrator", "Teamleitung", "Designer"]
class Base(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def weiterleiten(
self, ctx, auswahl: Option(str, choises=["Designer", "Teamleitung", "Administrator"])
):
if auswahl == "Designer":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an einen Designer weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
if auswahl == "Administrator":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an einen Administrator weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
if auswahl == "Teamleitung":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an unsere Teamleitung weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(Base(bot))
ich kann immernoch nichts auswählen
import discord
from discord.utils import basic_autocomplete
from discord.ext import commands
from discord.commands import slash_command, Option
Teamler = ["Administrator", "Teamleitung", "Designer"]
class Base(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def weiterleiten(
self, ctx, auswahl: Option(str, choices=["Designer", "Teamleitung", "Administrator"])
):
if auswahl == "Designer":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an einen Designer weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
if auswahl == "Administrator":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an einen Administrator weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
if auswahl == "Teamleitung":
embed = discord.Embed(title="⚡ x ENDZONE Support", description="""⚙️ | Dein Ticket wird an unsere Teamleitung weitergeleitet!
Bitte habe ein wenig Geduld.""", color=discord.Color.nitro_pink())
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(Base(bot))
ich danke dir vom herzen
also wenn es geht
ja geht
es wird nur Designer gesendet das andere net
und so?
warujm geht das ned
du musst aufpassen dass die embeds nur definiert werden wenn die if bedingungen true werden
nur für embeds
ok
Dann erkläre mal wie genau also wo soll es ein Programm Spiel etc. Werden ?
Ja.. aber wo in der console ?
Und wo magst den ausgeben
ja aber da sollen die Pings hin
welche pings
Hallo, ich habe schon seit einigen Tagen diesen error. Habe es mehrmals hier reingeschickt jedoch hat mir keiner richtig weitergeholfen deswegen frage ich nochmal. Ich bin alles wie unter #🔍・pycord-help durchgegangen jedoch bringt es leider nichts.
intents = discord.Intents.all()
und discord & discord.py habe ich nicht installiert
schonmal probiert py-cord zu deinstallieren und dann wieder zu installieren?
Ja, tu ich auch gerne nochmal
Dann mach das mal und Zeig mal etwas mehr vom code aus der main
import discord
import os
import asyncio
import random
import aiohttp
intents = discord.Intents.all()
status = discord.Status.dnd
bot = discord.Bot(
intents=intents,
debug_guilds=None,
status=status
)
Hab's gemacht hat wieder nichts genützt
an den imports aber nichts ändern oder?
es muss eig an deinen installierten sachen liegen
👍
hey, sobald du sicher bist, dass du keine anderen discord packages mehr installiert hast, musst du pycord neu installieren
hat er eben
dann erstell mal ein virtual environment
Ehm
wo nur die packages drin sind die du auch wirklich brauchst
bei pycharm könnte ich dir helfen, bei vsc musst du selbst nachschauen
okay
Schick mal bitte denn ganzen error
hey gibt es eine möglichkeit wie der bot erkennt ob ein user innerhalb eines 24 std zeitraums eine nachricht geschrieben hat?
Du speicherst die UserID mit einem Timestamp in einer Datenbank und überprüfst dann, ob die letzte 24h her war und Updates dann halt immer
ja das macht sinn danke xD
wie checke ich den nam besten ob es 24 std sind ? weil das schreiben und lesen der datenbank habe ich nur am chekc haperts grade xD
Kurze Frage auf welcher Website kann man seinen Code hochladen wie z.B. einen Error um den zu teilen?
if (TIMESTAMP + 24h) <= TIMESTAMP.now
ca so

Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
also ich habe es zeitpunkt gennant da kann ich doch nicht einfach +24h machen wie mache ich das da?
haha danke
Mensch etz
versteh leider trotzdem nicht wie ich das machen muss sorry
danke trotzdem ich muss mal weiter suchen bzw erklärungen suchen
ok habe es glaube ich verstanden allerdings bekomme ich jetzt gesagt dass ich mit einem string arbeite wenn ich die ausgelesene zeit verwende
okay verstehe und nun zur letzten hauptfrage (sorry dafür) wenn ich jetzt machen möchte dass wenn ein user beitritt und 24 stunden hat zu schreiben es aber nicht tut und dann gekickt wird vom server. geht dass einfach mit der on_member_join methode? will nicht riskieren dass aus meinem test server alle gekickt werden (sind n paar mehr leute) deshalb frage ich hier
achso und es soll wenn er innerhalb der 24 stunden schreibt nicht gekickt werden und nicht mehr geprüft geht das irgendwie?
Da blicke ich nicht ganz durch
und bei meiner frage?
Also du müsstest wie oben geschrieben ig das einf machen wenn einer beitritt in eine Datenbank den eintragen und dann einf ein Event machen des schaut ob die 24 Stunden vorbei sind und eines des das ihn aus der Datembank entfernt wenn er etwas geschrieben hat sprich du bräuchtest 3 Events eins zum eintragen eins zum austragen und eines für wenn die Zeit abgelaufen ist
Okay und das austragen also den 24 Check unter welchem Event kann man das am besten machen ? Mir fällt kein Event ein wo ich das mit reinpacken kann oder erstelle ich dazu einen Loop oder Thread ?
Hmm du musst des Ja jederzeit schauen ob timestamp in der db noch andauert
deswegen ja wie löse ich das dass der bot immer checkt?
import discord
from discord.ext import commands
from discord.commands import slash_command
class restart(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="Restarte den Bot")
@commands.is_owner("817435791079768105")
async def restart(self, ctx):
await ctx.respond("Der Bot wird neu gestartet...")
TOKEN = bot.TOKEN
await bot.close()
await bot.login(os.getenv("TOKEN"))
await bot.connect()
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(restart(bot))```
await bot.close()
^^^^^^^^^^^^^^^^^
SyntaxError: 'await' outside function
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "c:\Users\Rysii\OneDrive\Desktop\neu discord bot\main.py", line 100, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.restart' raised an error: SyntaxError: 'await' outside function (restart.py, line 18)```
falsch eingerückt
Also
ja
ich will ein slash_command machen im @cog wo die Willkommensnachricht hingesendet werden soll. Und das sollte dann auch in der Datenbank eingetragen werden weißt du wie das funktioniert? Habe das gestern schon versucht bin gescheitert
was hast du schon?
nix mehr, außer die welcome nachricht xD. Den rest habe ich gelöscht
why xD
hat nd funktioniert
also du willst alle user die joinen in einer datenbank speichern oder?
naaa
Das list steht doch da
einen befehl wo man den welcome channel eintragen kann
aha
also wo die willkommens-nachricht dann hin sendet
bin jetzt nd der beste im erklären xD
also erstell mal den /command einfach normal
Hm mach setup Channel und Speicher in Datenbank zum Beispiel
und danach schaust du auf timos github nach wie er sachen in eienr datenbank speichert
hab ich
aber funktioniert nd
import discord
from discord.ext import commands
from discord.commands import slash_command
from pymongo import MongoClient
from easy_pil import Editor, Font, load_image_async
class Image(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.mongo_client = MongoClient('mongodb://localhost:27017/')
self.db = self.mongo_client['welcome_db']
self.guild_collection = self.db['guilds']
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(halloView())
@commands.Cog.listener()
async def on_member_join(self, member):
guild_id = member.guild.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
channel_id = guild_data["channel_id"]
background = Editor("test3.png").resize((800, 250))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((160, 160)).circle_image()
background.paste(circle_avatar, (93, 45))
big_text = Font.montserrat(size=25, variant="bold")
small_text = Font.poppins(size=20, variant="bold")
babby_text = Font.poppins(size=16, variant="bold")
copyright_new = Font.montserrat(size=10, variant="bold")
name_width, _ = big_text.getsize(member.name) #TO Wraithware
background.text((660, 90), f"Willkommen {member.name}", color="#ffffff", font=big_text, align="right")
background.text((550, 125), f"bei Wraithware ", color="#ffffff", font=small_text, align="right")
background.text((650, 152), f"Du bist der {member.guild.member_count} Member", color="#ffffff", font=babby_text, align="right")
background.text((780, 235), f"Created by InvalidÖssi#8822", color="#505050", font=copyright_new, align="right")
file = discord.File(fp=background.image_bytes, filename='test2.png')
channel = await self.bot.fetch_channel(channel_id)
await channel.send(f"**Willkommen {member.mention}!**", file=file, view=halloView())
@slash_command(name="set_welcome_channel", description="Set the channel for the welcome system.")
async def set_welcome_channel(self, ctx: commands.Context, channel: discord.TextChannel):
guild_id = ctx.guild.id
channel_id = channel.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
self.guild_collection.update_one({"guild_id": guild_id}, {"$set": {"channel_id": channel_id}})
else:
self.guild_collection.insert_one({"guild_id": guild_id, "channel_id": channel_id})
await ctx.send(f"Welcome channel set to {channel.mention}.")
@slash_command(name="register_guild", description="Register the guild for the welcome system.")
async def register_guild(self, ctx: commands.Context):
guild_id = ctx.guild.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
await ctx.send("This guild is already registered.")
else:
self.guild_collection.insert_one({"guild_id": guild_id})
await ctx.send("Guild registered for the welcome system.")
i know
wait
import discord
from discord.ext import commands
from discord.commands import slash_command
from pymongo import MongoClient
from easy_pil import Editor, Font, load_image_async
class Image(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.mongo_client = MongoClient('mongodb://localhost:27017/')
self.db = self.mongo_client['welcome_db']
self.guild_collection = self.db['guilds']
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(halloView())
@commands.Cog.listener()
async def on_member_join(self, member):
guild_id = member.guild.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
channel_id = guild_data["channel_id"]
background = Editor("test3.png").resize((800, 250))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((160, 160)).circle_image()
background.paste(circle_avatar, (93, 45))
big_text = Font.montserrat(size=25, variant="bold")
small_text = Font.poppins(size=20, variant="bold")
babby_text = Font.poppins(size=16, variant="bold")
copyright_new = Font.montserrat(size=10, variant="bold")
name_width, _ = big_text.getsize(member.name) #TO Wraithware
background.text((660, 90), f"Willkommen {member.name}", color="#ffffff", font=big_text, align="right")
background.text((550, 125), f"bei Wraithware ", color="#ffffff", font=small_text, align="right")
background.text((650, 152), f"Du bist der {member.guild.member_count} Member", color="#ffffff", font=babby_text, align="right")
background.text((780, 235), f"Created by InvalidÖssi#8822", color="#505050", font=copyright_new, align="right")
file = discord.File(fp=background.image_bytes, filename='test2.png')
channel = await self.bot.fetch_channel(channel_id)
await channel.send(f"**Willkommen {member.mention}!**", file=file, view=halloView())
@slash_command(name="set_welcome_channel", description="Set the channel for the welcome system.")
async def set_welcome_channel(self, ctx: commands.Context, channel: discord.TextChannel):
guild_id = ctx.guild.id
channel_id = channel.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
self.guild_collection.update_one({"guild_id": guild_id}, {"$set": {"channel_id": channel_id}})
else:
self.guild_collection.insert_one({"guild_id": guild_id, "channel_id": channel_id})
await ctx.send(f"Welcome channel set to {channel.mention}.")
@slash_command(name="register_guild", description="Register the guild for the welcome system.")
async def register_guild(self, ctx: commands.Context):
guild_id = ctx.guild.id
guild_data = self.guild_collection.find_one({"guild_id": guild_id})
if guild_data:
await ctx.send("This guild is already registered.")
else:
self.guild_collection.insert_one({"guild_id": guild_id})
await ctx.send("Guild registered for the welcome system.")
def setup(bot):
bot.add_cog(Image(bot))
class halloView(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(label=f"Heiße ihn Herzlich Willkommen", style=discord.ButtonStyle.gray, custom_id="Hallo", emoji="⚡")
async def begruessen(self, button, interaction: discord.Interaction):
await interaction.response.send_message(f" | {interaction.user.mention} heißt den neuen User Herzlich Wilkommen!")
button.disabled = True
await interaction.message.edit(view=self)
das is der ganze code. [nd alles von mir]
könnte man beim code was ausbessern?
ja wo genau?
überhaupt
ich arbeite nicht für dich ich helfe dir nur
i know
kommt auch halt keine fehlermeldung
Hat nix damit zu tun kannst doch sagen ob du was ändern würdest 🤨
was geht nicht?
ja ich lese den jetzt nicht aööes durch und sage was ich verbessern würde
du must statt ctx.send ctx.response.send_message machen
Dann bist du meiner Meinung nach fehl als freiwilliger Helfer 🙃
ahh, doch ein fehlercode aber nur beim anderen slash_command.
fehlercode,
es scheint so als hättest du keine verbinidung zur mongoDB aber ich kenne mich mit dieser db auch niocht wirklich aus
welche db soll ich nach deiner meinung nehmen?
sqlite die die timo in seinen videos auch nutzt
da brauchst du dich nicht verbinden und so sachen
Ist eh einfacher Bezogen auf SQlite oder MySQL weil die haben sehr ähnlich Eingabe
Theoretisch schon aber der Aufwand ist zu gross
ein bisschen mehr kontext?
ja auf diesem bild kann ich keine abfrage erkennen
und was meinst du mit abfrage
Schon besser
ich habe oben den Fehler doch geschrieben xD
wo hast du den gepostet
da ist kein error
um den zu sehen braucht man schon den ganzen code von dem command
bin grade dumm
aber ich bekomme den fehler nicht weg
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: ApplicationCommand.__call__() missing 1 required positional argument: 'ctx'```
code
```py
@bot.slash_command()
@commands.has_permissions(administrator=True)
async def infooo(ctx):
view = infooo()
embed = discord.Embed(title=" › ÜBER UNS - HERZLICH WILLKOMMEN",
description="> Wir sind ein Deutscher Community Server.\n"
"> Wo man Freunde kennenlernen kann oder \n"
"> oder einfach nur chatten kannst\n\n"
">  › **WAS KANN MAN HIER MACHEN?**\n"
"> Du kannst auf unserem Server einige Sachen finden\n"
"> Man kann auch sehr vieles ansehen oder machen \n"
"> wir haben auf dem Server …\n\n"
">  › *Regelmäßige Giveaways*\n"
">  › *Nettes Team*\n"
">  › *Eigenes Casino*\n"
">  › *Ein eigenes Wiki*\n"
">  › *Keine unnötige Pings*\n"
">  › *Nette Community*\n"
">  › *Schneller Support*",
color=0x35b7c2)
await ctx .send(embed=embed, view=view)```
das ist kein cog
infooo() ist der name von deinem slash command und kein view, also geht die folgende zeile nicht
view = infooo()
oben ist eine class
dann solltest du view = infoo() schreiben mit 2x O, und nicht view = infoo(), denn die version mit 3x O ist der slash command und nicht die view klasse
Exception has occurred: AttributeError
module 'discord.ext.commands.context' has no attribute 'SlashContext'
File "D:\Python - Wichtige Sachen Nicht löschen\Andere Sachen\BOTS\Welcome\system.py", line 82, in <module>
async def embed(ctx: commands.context.SlashContext):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'discord.ext.commands.context' has no attribute 'SlashContext'
Weis wer welches imports ich da brauche?
async def embed(ctx: discord.ApplicationContext):
dange
bei deiner cog klasse muss commands.Cog in den runden klammern stehen
schick am besten immer den ganzen error und den code
nenn deine group mal anders als deinen command
😅
INSERT OR IGNORE
Liegt aber zu 100% nicht an meiner api
Sondern an dem was du vorher machst
Check doch mal mit print ob das alles ausgeführt wird
Dann mach doch mal nur, das die api das checkt und lass es dir printen
Dann siehst du ja das es nicht dran liegt
Probier das mal
playerlist = resp["players"]["list"]?
Ich persönlich würde eher INSERT OR REPLACE machen, weil wenn es einmal an ist kriegt man es dann nicht mehr aus
@urban glen
Nope ist denke ich nicht so gut nur wenn man eine spalte hat aber ich würde eher Update für sowas verwenden
Dann müsste man es halt mit guildid abspeichern
https://media.discordapp.net/attachments/1105866905077698620/1107925557615796294/image.png wiss das einer wie geht das `?
https://media.discordapp.net/attachments/1105866905077698620/1107925557615796294/image.png kann wer sagen wie geht das
Bitte die gleiche Frage nur 1x stellen
wie was genau geht bitte geneaurere fragen
wenn du wissen willst wie es gesendet wird dann kann ich sagen
es wird einfach in on_ready getriggert indem du einfach die guild und Channel gettest und dann halt ganz normal ein embed oder Nachricht versendet
wo hast du das gesehen
in deinem fall wahrscheinlich nicht
Wie kann das machen wenn er bot neu startet er schreibt in ein Kanal
Von @digital crypt :D
@digital crypt sehr interessant 
im on_ready event kannst du den kanal über die ID laden
Kannst du sagen wie ?
kannst sagen wie?
es reicht wenn du auf einem account fragst xD
zu diesem thema hab ich ein video gemacht
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...
@bot.event
async def on_ready(self):
channel_id = 1103230981013524524
channel = self.bot.get_channel(channel_id)
print(f"{bot.user} is ready")
bot.loop.create_task(status_task())```
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
TypeError: on_ready() missing 1 required positional argument: 'self'```
wenn das in der main datei ist brauchst du kein self
die antwort stand darunter..
ja hab jerzt auch er send kein nix rein in dem channel
zeig Code..
@bot.event
async def on_ready():
channel_id = 1103230981013524524
channel = bot.get_channel(channel_id)
print(f"{bot.user} is ready")
bot.loop.create_task(status_task())```
und was soll es senden wenn nichts gesendet wird? übrigens bringt dir es nicht die Channel ID als Definition nochmal anzugeben
wenn er bot on geht
nein im Code wird nicht definiert das er was senden soll
weiss du wie kann man ? das definiert
await channel.send bitte dann die Docs lesen
der Rest sollte dir klar sein ganz normal machen
ja ich weiss ich meine wie kann das definiert https://media.discordapp.net/attachments/1105866905077698620/1107925557615796294/image.png
hab jerzt wie kann man das definiert https://media.discordapp.net/attachments/1105866905077698620/1107925557615796294/image.png
bitte nur einmal fragen! @ruby sparrow @surreal patrol
ja
warte komm mal kurz call
kannst du kurz coding kommen
komm in #1020760853634633879
kannst du vllt senden bitte was soll ich da rein schreiben?
schau mal hier:
https://ezcord.readthedocs.io/en/latest/examples/logs.html
ezcord.set_log(
webhook_url="WEBHOOK_URL",
discord_log_level=20
)
Ist nicht von mir
Kp habe das von jamansem auf dem Server. Kp mehr von wem
Es ist aber simple gut zum einsteigen in eine Programmiersprache 😅
Hat jemand ne Idee wieso das unterstrichen ist?
weil du self in der zeile drüber nicht stehen hast dass muss vor member stehen
ach thx
@ruby sparrow
kann man mit pycharm keine ordner öffnen
wie meinst du das
naja kann die weder reinziehen noch iwie im mac finder damit öffnen
bei dem "Open" werden auch keine ordner angezeigt
hm sollte eig klappen
nicht das ihr denkt ich bin zu dumm dafür aber geht nd xd
ah ich habs
Das Dashboard von @high glen is mit linux oder?
naja also das backend wird auf einem linux server gehostet falls du das meinst
Ja so ungefähr
timo reden mal
steht schon in #💬・chat
achso, bei command groups musst du das in die group mit reinschreiben
hm wahrscheinlich zu viel memory verbraucht
ja gut, will halt nen code aus'm internet probieren den ich nd mit dem mac starten kann deswegen hab ich den bot genommen xd
lösch nochmal, und wenn`s dann nicht funktioniert erhöh deine Python version in den Settings
wie löschen? aus requirements.txt entfernen oder was... kann da ja nd pip uninstall colorama machen glaube
starte einfach paar Mal hintereinander
kann einer eine Minecraft skin url ?
überhaupt löschen
ja, is out of memory waren so 2 mb zu viel xd
machst du über keks hosting oder endelon?
hat einer eine Minecraft skin url ?
kekshosting
@solid ingot weiss du wie geht das
nein
if message.author.id in data:
user_id = data[str(message.author.id)]
data[user_id]["message_count"] += 1
with open('credits.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
Hilfe, der Bot trackt keine Nachrichten

schon geprüft ob die if bedingung auch true wird?
ja stimmt
und?
es passiert nichts
dann wird die if bedingung wohl false
message.author ist in data aber der message count bleibt unverändert
{"785059784604778496": {"credits": 14, "message_count": 0}}
das ist ein string
message.author.id ist ein integer
immer prüfen ob die bedingung true wird und falls nicht schauen wieso nicht
if message.author.id in data:
user_id = data[int(message.author.id)]
data[user_id]["message_count"] += 1
with open('credits.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
Hab's jz gemacht wird immer noch nichts geändert
naja die if bedingung wird ja false. der code wo du was geändert hast wird also gar nicht ausgeführt
die kann gar nd false sein
doch
was meinst du genau? schau mal hier was message alles für methoden hat: https://docs.pycord.dev/en/stable/api/models.html#discord.Message
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
Weiß jemand, ob man mit chat-exporter auch nur z.b. ab einer bestimmten nachricht + die 100 nachrichten davor oder so loggen kann?
also nt die neuste nachricht
Nope ich weiß nicht
du kannst custom nachrichten übergeben die geloggt werden sollen
aber die frage ist wie man die nachrichten über einer nachricht bekommt

Kann wer helfen in #1108123088618528869
ne hab schon
entweder autocomplete oder choices
Hallo CodingKeks Community
Ich hätte da eine frage, kann man dropdown menü & embed naricht ect alles auf einmal speichern in sqlite datenbank oder einzeln. danach die wieder aufrufen.
wenn ja wie kann ich das bewerkstelligen?
[diese anfrage gilt nur für hilfsbereite personen bezogen auf personen die versuchen zu helfen und keine dumme kommentar dazu äusern]
Ich hab vor einen return button/ zurück knopf zu programmieren durch das abspeichern kann ich das schnell aufrufen.
also embeds könntest du im json format speichern und dann damit wieder laden, beim dropdown menü kommt es bisschen drauf an, da müsstest du alles speichern was du im dropdown menu hast
also sagen wir den ganze view.
beim embeds wie soll ich das in json speichern und wiederherstellen für jeder user einzeln?
es gibt to_dict and from_dict methoden bei embeds, damit könntest du arbeiten
to_dict and from_dict damit kenn ich noch nicht aus kannst du mehr dazu erläutern?
das macht die embeds einfach zu einem python disctionary. diese dictionary kannst du dann zu json umwandeln
https://docs.pycord.dev/en/stable/api/data_classes.html#discord.Embed.to_dict
Some classes are just there to be data containers, this lists them. Unlike models you are allowed to create most of these yourself, even if they can also be used to hold attributes. Nearly all clas...
das wird mir zu pro like
Weiß jemand zufällig, wie man bei nem Paginator dem Embed auch nen footer etc. hinzufügen kann?
aber wo mach ich das? dann embeds.set_footer oder was? weil hab ja keine variable für das discordEmbed festgelegt
naja, du könntest es vorher definieren
embed = ...
embed.set_footer(...)
pages = [Page(embeds=[embed]]
okay, mach ich. thx
import discord
from discord.commands import Option
import asyncio
import os
import random
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
status = discord.Status.online
activity = discord.Activity(type=discord.ActivityType.watching, name="dem RP zu")
bot = discord.Bot(intents=intents,
debug_guilds=[956587286013808680],
status=status,
activity=activity)
word1 = "nothing"
word2 = "nothing"
@bot.event
async def on_ready():
print(f"Der Bot {bot.user.display_name} ist jetzt online")
@bot.event
async def on_message(message):
channel = message.channel
if message.author.bot:
return
word2 = **word1**
word1 = message.content
if message.content == word1:
await message.delete()
await channel.send(f"Bitte **Spamme** nicht {message.author.mention}")
Warum kann er bei dem letzten nicht auf die Variabele zugreifen ?
Kommt nen Error?
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\Users\fabian2\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\fabian2\PycharmProjects\Greater#\main.py", line 136, in on_message
word2 = word1
^^^^^
UnboundLocalError: cannot access local variable 'word1' where it is not associated with a value
Wurde doch vor dem "On_Ready" mit nem Wert initialisiert
Es geht doch um das word2 = word1
Anscheinend funktionierts nd, würde dir empfehlen die Variablen mal zu printen
Ja, er markiert dsa word1 als rot
Dann hat das Wort anscheinend keinen Wert... kannst ja mal durchprinten.
habe eben meinen bot neustarten wollen
und auf einmal kommt diese meldung
wie kann ich es fixxen ?
habe eig. nichts geändert wollte nur den server neu starten
Zeig mal den Code in der Datei main.py
klingt nach einem installationsfehler, hast du vlt aus versehen discord.py und pycord installiert?
versuch mal alle discord packages zu deinstallieren und dann nur das package zu installieren was du nutzt
ganz komisch ,der hat die letzten monate ohne probleme funktioniert und jz macht er sowas
jz zeigt er nur noch das an
Sieht so aus als würdest du discord.py venutzen
hab jz mal discord.py gelösch
wieder pycord neu installieren oderwas ?, ist eig. installiert
wenn d.py installiert war, danach auf jeden fall pycord neu installieren
die beiden module funktionieren nicht zusammen
was ist die aktuelste pycord version zum installieren ?
okay danke, habs eben 2 mal alles neu gemacht nichts hat funktioniert
und jz geht es wieder
Mach einfach nur {bot.user} und nicht {bot.user.display_name}
ist aber unterschiedlich
hast du deinen bot als ezcord.PrefixBot() definiert?
probiers mal mit commands.Bot() um zu schauen ob es an ezcord liegt oder nicht
dann liegt es zum glück nicht an ezcord
hast du message content intent an?
ich benutz immer nur slash commands, aber eine mysteriöse quelle meinte es kann auch daran liegen dass du ein on_message event hast und darin nicht await bot.process_commands(message) verwendet hast
Moin, wie kann ich die Zeit wo der Bot gestartet wird als Timestamp nutzen?
Habe bisher das: ```py
datetime.datetime.now()
du musst die zeit speichern, bei der dein bot gestartet ist, und wenn der command ausgeführt wird musst du nochmal die aktuelle zeit nehmen und sie von der ersten subtrahieren
Wie mach ich das als Timestamp mein ich
aber thx
Hab ich, dann kommt aber z.B. 15 sekunden raus. wie bekomm ich das als timestamp?
Meinst du so?
timestamp=datetime.now()
Meine halt so nen timestamp wie <t:7:R>
falls du ezcord nutzt mit times.dc_timestamp:
https://ezcord.readthedocs.io/en/latest/ezcord/times.html#ezcord.times.dc_timestamp
ansonsten kannst du die sekunden mit einem timedelta objekt von der aktuelle zeit abziehen und dann ein timestamp daraus machen
Ähhm nutze kein ezcord und verstehe nd genau was du mit "timedelta" objekt meinst... hast mal nen beispiel? muss ja nd die lösung sein xd
hmm also ich könnte dir ein beispiel zeigen, aber besser wäre es wenn dir ein timedelta tutorial oder so anschauen würdest
ein beispiel findest du hier: https://ezcord.readthedocs.io/en/latest/_modules/ezcord/times.html#dc_timestamp
thx
wenn ich ezcord nutzen will kann ich dann eif nur bestimmte sachen nutzen wie den timestamp ohne dann
bot = ezcord.Bot(
schreiben zu müssen?
ja genau dür den timestamp brauchst du das ezcord.bot nicht
das brauchst du nur für so sachen wie error handling
Okay, muss ich pip install ezcord und dann import ezcord machen oder nur import ezcord?
erst pip install
Und dann den import nh
Muss ich als Sekunden dann nur "time" angeben und dann macht der vor 15 sekunden? oder was
Ich checks nd, kannstes mir im Talk erklären?
jo
@solid ingot bin gemuted lol xd
import discord
from discord.ext import commands
from discord.commands import slash_command
class restart(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="restart the bot")
async def restart(self, ctx):
if ctx.author.id != 817435791079768105:
await ctx.respond("Only the bot owner can restart the bot.")
await ctx.respond("Restarting...")
def setup(bot):
bot.add_cog(restart(bot))```
Heyoo, wollte mal fragen ob man mit Easy-Pil auch nen Glow Effekt machen kann.
Du musst nen else machen:
if ctx.author.id != 817435791079768105:
await ctx.respond("Only the bot owner can restart the bot.")
else:
await ctx.respond("Restarting...")
ich bekomme kein error code er geht eif nicht
^^ist lua falls sich jmd damit auskennt
es ist halt _resource
es aktiviert so zu sagen die anderen scripts
aber jetzt heißt es fxmanifest
und du hast "game" statt "games" geschrieben
fx_version "cerulean"
games { "gta5" }
client_scripts {
"coords.lua",
"main.lua"
}
server_scripts {
"main-s.lua
}
ich brauch doch nur lua und c++?
extensions
wie kann man eine command so schrieben das der user entweder den normalen prefix command schrieben muss oder den bot pingen kann und danach den command schreiben kann wie @bot owner
kannst #1106973328163491890 schauen bei client = commands.Bot siehst du dann wie des geht
musst auch mal selber heraus finden es wenigstens mal ansatzweiße probieren
1, 60 = 1 Minute
Wenn du jetzt 2, 60 hättest könntest du denn Command 2 mal hintereinander ausführen und dann musst du 60 Sekunden warten
Das gleiche bei 3, 60 dann halt 3 mal hintereinander.
Und wenn du z.B möchtest das der Command jetzt nur jede Stunde einmal ausgeführt werden kann dann einfach 1, 3600
Einfach erklärt:
1 Wie oft hintereinander ohne Cooldown
60 Sekunden wieviel Zeit bis zum nächsten mal wo du denn Command ausführen kannst
wieso klappt das nicht?
@commands.Cog.listener()
async def on_member_join(self, member):
print("a")```
was klappt nicht , error, ein bisschen mehr code drum rum usw
ich kreige halt keinen error, es wird nicht geprintet es passiert nichts
kanst du ganze datei schicken also code von der datei
warte async def on_member_join ist eins zu weit eingerückt
ne das ist nur auf discord so
kann halt nicht mehr schicken weuil das richtig fett ist, da ich dran arbeite das man ganze welcome message selbst einstellen kann, aber das nichts passiert wenn wer joint habe ich es so ausprobiert
hhm
woran kanns den sonst liegen? Sollte ja sonst klappen oder nicht
hqast du intents.member angeschalten?
nice
Application Command raised an exception: ProgrammingError: Error binding parameter 1: type 'TextChannel' is not supported```
Habe ein command bei dem man ein channel auswählt und dann soll der in einer db gespeichert werden doch der fehler kommt
```py
@slash_command(description="Welcome/leave channel auswählen")
async def settingswelcome(self, ctx, art: Option(str, choices=["welcome", "leave"]),
embed: Option(str, choices=["An", "Aus"]), channel: Option(discord.TextChannel), ):
await self.check(art)
async with aiosqlite.connect(self.DB) as db:
await db.execute("UPDATE msg SET embed = ? WHERE name = ?", (embed, art))
await db.commit()
async with aiosqlite.connect(self.DB) as db:
await db.execute("UPDATE msg SET channel = ? WHERE name = ?", (channel, art))
await db.commit()
await self.checkembed(art)
await ctx.respond("Aktualisiert", ephemeral=True)
@bot.event
async def on_ready():
for guild in bot.guilds:
print('Servername:', guild.name)
``` Wie kann ich von denn 4 Server einen Invite link bekommen oder die ID oder am betsen alles
halt dann auch noch
print("ID": guild.id)
etc. den invite k.a. wi man den bekommt
Jemand ne IDee warum die ganze Zeit solche Errors kommen:
Code:
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if member.id == self.bot.user.id:
if before.channel and not after.channel:
voice_client = member.guild.voice_client
await voice_client.connect()
async with aiosqlite.connect(self.db) as db:
async with db.execute("SELECT spieler, sender FROM radio") as cursor:
s, sen = await cursor.fetchone()
if sen == "radiovelbert":
voice_client.play(discord.FFmpegPCMAudio(
"https://radiovelbert.stream.laut.fm/radiovelbert?pl=m3u&t302=2023-03-18_21-57-30&uuid=d5363f07-d83b-47ff-addf-3f8465464c9a"))
elif sen == "stickyams.lu":
voice_client.play(
discord.FFmpegPCMAudio("http://djstickyams.lightmanstreams.com:9020/"))
@ethria.command(description="Starte das Radio")
async def radio(self, ctx, sender: Option(str, "Den Sender, den du spielen willst.",
choices=["radiovelbert", "stickyams.lu"])):
if ctx.author.voice is None:
return await ctx.respond("Du musst einem Kanal joinen.")
if not ctx.author.voice.channel.permissions_for(ctx.guild.me).connect:
return await ctx.respond("Ich kann deinem Kanal nicht beitreten.!.")
if ctx.voice_client is None:
await ctx.author.voice.channel.connect()
else:
await ctx.voice_client.move_to(ctx.author.voice.channel)
if ctx.voice_client.is_playing():
ctx.voice_client.stop()
if sender == "radiovelbert":
async with aiosqlite.connect(self.db) as db:
await db.execute("UPDATE radio SET sender = ?, spieler = ? ", ("radiovelbert", ctx.author.name))
await db.commit()
await ctx.voice_client.play(
discord.FFmpegPCMAudio(
"https://radiovelbert.stream.laut.fm/radiovelbert?pl=m3u&t302=2023-03-18_21-57-30&uuid=d5363f07-d83b-47ff-addf-3f8465464c9a"))
embed=discord.Embed(
title="radiovelbert",
description="Ich spiele nun **radiovelbert**",
color=discord.Color.random())
elif sender == "stickyams.lu":
async with aiosqlite.connect(self.db) as db:
await db.execute("UPDATE radio SET sender = ?, spieler = ? ", ("stickyams.lu", ctx.author.name))
await db.commit()
await ctx.voice_client.play(
discord.FFmpegPCMAudio("http://djstickyams.lightmanstreams.com:9020/"))
embed = discord.Embed(
title="Stickyams.lu...",
description="Ich spiele Stickyams.lu!",
color=discord.Color.random())
await ctx.respond(embed=embed)
Der Bot joint einem Channel, spielt aber nichts ab --> Errors kommen
kurze frage, ist es möglich wenn ich in einer db einen text speichere, und z.B. will das ich aber einen member pinge, kann man das irgendwie angeben so das er wenn ich das ganze dann senden lasse, ihn pinge? Oder geht das nicht, weil wenn ich nur {member.mention} eingebe und das ganze mit await channel.send(text[0]) absende wird das normal als string gesendet
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...
ich würde empfehlen, die user ID zu speichern, und dann sowas zu senden wie f"<@{ID}>"
du benutzt aktuell diese methode hier: https://docs.pycord.dev/en/stable/api/voice.html#discord.VoiceProtocol.connect
stattdessen willst du wahrscheinlich diese hier nutzen (mit einem voicechannel objekt): https://docs.pycord.dev/en/stable/api/models.html#discord.VoiceChannel.connect
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
Objects: Attributes average_latency, channel, endpoint, guild, latency, loop, session_id, source, token, user. Methods async disconnect, def is_connected, def is_paused, def is_playing, async move_...
schau nochmal genau das video, da wird es etwas anders erklärt
wie speichern? habe die id ja theoreitsch in member.id
das member objekt hast du doch gar nicht oder?
also ich habe es im member join event weshalb ich dachte das ich sozusagen einfach member.mention reinschreiben kann in der nachricht die in der db gespeichert wird und dann halt gesendet werden soll weil ich dann ja wenns abgesendet wird auf den member zugreifen kann
achso ja dann kannst du einfach member.mention machen
wenn du einen festen text in der datenbank hast, kannst du .replace benutzen, um einen bestimmten part mit member.mention zu ersetzen
Jemand ne Idee, wie man den Error behebt?
Wie behebe ich diesen Error bei @high glen:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 774, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
File "<frozen importlib._bootstrap_external>", line 879, in exec_module
File "<frozen importlib._bootstrap_external>", line 1017, in get_code
File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/container/cogs/ethria.py", line 40
@commands.Cog.listener()
TabError: inconsistent use of tabs and spaces in indentation
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 20, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.ethria' raised an error: TabError: inconsistent use of tabs and spaces in indentation (ethria.py, line 40)
Also dieses inconsistent use of tabs and spaces in indentation
Hab nochmal alles entfernt und neu getabbt, hab Code komplett neu geschrieben, hat alles nd geklappt
das passiert manchmal wenn du mit dem online editor arbeitest, da kann es passieren dass tabs etwas anderes sind als 4 leerzeichen. schau mal genau in der zeile nach wo der error ist
Weiß jmd., wie ich einen Timestamp in discord.py hinzufüge? Im Embed, also im footer.
müsste auch mit embed.timestamp gehen
Teemo, ich habe es schon, trotzdem Danke
wie genau? Weil habe in der datenbank member.mention in {} doch es funktioniert nicht
das geht nicht wenn du nur {member.mention} abspeicherst, am besten speicherst du die id dann gettest du den user einfach, und dann member.mention
aber wie füge ich dann in der stelle des textes in der db member.mention ein bzw. eigentlich muss ich den user nicht getten, weil ich das ganze ja in einem join event mache und dort member habe als attribute
so wie normal auch?
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...
moin, ich bin gerade dabei einen reactionrole ersteller zu machen, bi jetzt soweit das man die buttons erstellen kann doch ich weiß nicht ganz weiter wie ich sozusagen dem button code gebe(als ein code für alle buttons wo einfach die rollen id durch eine db anders ist), also wie kann ich es machen das er dann für jeden button sozusagen so ein code hat? Muss ich dafür erstmal im code die klasse erstellen in der der button hinzugefügt wird? Oder wie?
view = discord.ui.View()
if self.children[2].value:
button = discord.ui.Button(label=self.children[0].value, style=discord.ButtonStyle.gray,
custom_id=self.children[0].value,
emoji=self.children[2].value)
else:
button = discord.ui.Button(label=self.children[0].value, style=discord.ButtonStyle.gray,
custom_id=self.children[0].value, )
view.add_item(button)```
Der Button wird so hinzugefügt, reagiert halt aber noch nicht weil er ja kein code hat
also das ich halt sozusagen den gleichen callback für jeden button hinzufüge
Hoffe ist verständlich wasich meine, danke
bzw. ist es überhaupt möglich das man sozusagen die buttons so erstellt und dann irgendwie code gibt oder wie muss ich das machen?
Naja du möchtest ja immer eine rolle vergeben
deswegen könntest du dir die rollen id in einer datenbank speichern und das dann halt immer raus holen und vergeben
Will ich ja, aber weiß nicht ganz wie ich sozusagen den Buttons jetzt sagen soll das sie dann aus der DB die Rolle holen und dann geben
Weil wie gebe ich den Buttons sozusagen Code
junges hab eine frage hat wer ein gut commad für coden
button.callback = callback und davor machste halt ein async def callback
wie normal
ah danke!
aber vor was async def callback meinste?
button.callback = async def callback...?
nah
warte
view = discord.ui.View(timeout=None)
button3 = discord.ui.Button(label=f"Begrüße {member}", style=discord.ButtonStyle.grey, emoji='👋')
async def call1(interaction):
if member == interaction.user:
return await interaction.response.send_message(f'🚫 › Du kannst dich nicht selber begrüßen!\n> Dieser Knopf ist für eine Person da die dich begrüßen will!' , ephemeral=True)
else:
await interaction.response.send_message(f'**{interaction.user.display_name}** begrüßt **{member.display_name}**.')
button3.disabled = True
await interaction.message.edit(view=view)
button3.callback = call1
view.add_item(button3)
ungeführ so :D
also
jo schaue ma danke
view = discord.ui.View(timeout=None)
button3 = discord.ui.Button(label=f"Begrüße {member}", style=discord.ButtonStyle.grey, emoji='👋')
async def call1(interaction):
button3.callback = call1
view.add_item(button3)
aber das kann ich normal in eine ander klasse machen?
das ist das wichtigste was du brauchst
weiss einer warum ist das rot ?
schick mal den code darüber und darunter noch mit, vlt einrückung?
import discord
from discord.ext import commands
from discord.commands import slash_command
import requests
class Wetter(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def wetter(self, ctx, *, stadt: str):
api_key = "276d6995de7652ce246dc2126c42a4fd"
base_url = "http://api.openweathermap.org/data/2.5/weather?"
complete_url = base_url + "appid=" + api_key + "&q=" + stadt
response = requests.get(complete_url)
data = response.json()
if data["cod"] != "404":
main = data["main"]
temp = main["temp"]
temp_celsius = round(temp - 273.15)
humidity = main["humidity"]
weather_description = data["weather"][0]["description"]
embed = discord.Embed(title=f"Wetter in {stadt}", color=discord.Color.green())
embed.add_field(
name=f"Temperatur: {temp_celsius}°C\n\nBeschreibung: {weather_description}\n\nLuftfeuchtigkeit: {humidity}%",
value="\n")
embed.set_footer(text=f"Angefragt von {ctx.author}", icon_url=ctx.author.display_avatar)
await ctx.respond(embed=embed)
else:
await ctx.respond(f"{stadt} nicht gefunden.")
def setup(bot):
bot.add_cog(Wetter(bot))```
role = self.children[1].value
print(role)
role = interaction.guild.get_role(role)
print(role)```
wieso kommt beim zweiten printen wenn ich die gette None raus(id ist richtig und einrückung nur in discord falsch)
probier es mal mit fetch_role
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...
dann kommt raus das guild kein fetch_role hat
wie meinste, ja eigentlich schon, habe die id sogar gepingt also die rolle
deswegen verstehe ich nicht warum ich beim getten None rauskrieg
dein slash command ist zu weit nach rechts eingerückt
also wenn ich nur die id eingebe klappt, wenn ich aber self.children[1].value eingebe nicht
also in interaction.guild.get_role()
es ist immer doch rot
schick mal das modal
mach vlt mal als integer, also int(self.children[1].value)
klappt danke!
dann schau mal was da steht wenn du mit der maus über das rote gehst
also, erstelle halt jetzt(siehe oben) buttons in dem modal, will diese nun zum on_ready hinzufügen, aber geht halt nicht weil es diese klasse ja nicht gibt, sondern diese in der modal klasse sind, wie kann ich sie trotzdem wieder anmachen?
kannst du in kurz coding kommen
muss ich dafür die klasse normal erstellen, und wenn ja kann ich die einfach leer lassen außer halt def init usw.
@snow hatch also generell würde ich dir empfehlen, für alle buttons entweder eine eigene button klasse oder eine view klasse zu erstellen
eine view klasse erstelle ich ja mit reactionbuttons = discord.ui.View(timeout=None)
aber halt in der klasse drinne
und dann kann ich sie nicht zu on_ready adden
naja ich würde eine eigene subklasse erstellen, also so
class ReactionButtons(discord.ui.View):
...
was ist eine subklasse? Und was soll darein, weil ich was rein kommt ja woanders hinzufüge
subklasse ist einfach nur wenn du schreibst class ReactionButtons(discord.ui.View):
du kannst es so machen wie im button video
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...
ok
EIne frage noch...
Wie greife ich auf eine andere klasse(in dem fall die view) in einer klasse zu, weil ich sie ja nicht übergeben kann
du solltest einfach den namen der klasse nutzen können
also ReactionButtons() könntest du auch innerhalb einer anderen klasse nutzen
ah ok
danke, probiere ich aus
weiß nicht ganz weiter, er sendet jetzt keine buttons mehr, aber kriege keine fehlermeldung
jetzt hast du zwar eine view klasse, aber du hast keinen button in deiner view klasse
du hast sozusagen eine leere view klasse ohne irgendwas drin
hm, machs lieber mit einer button klasse
aber ich erstelle das ganze ja extra extern weil die buttons ja nicht fest sind sondern man diese ja hinzufügen kann, und rolle auswählen kann die dann hinzugefügt werden soll
und deshalb kann ich ja keine fertigen buttons machen
doch, du könntest eine button klasse erstellen und dann an unterschiedliche werte an diese klasse übergeben
oh shit das hab ich vergessen
musst das aktuell noch als string machen
also str(len(bot.emojis))
ja
welches printen
was genau geht denn nicht? und wie ist dein code?
hm bei mir gehts
Ja aber ich will ja die Anzahl der Buttons varieren können

das kannst du auch mit button klassen
du kannst dann beliebig viele button klassen zu einem view hinzufügen
ja klar, aber ich muss das ja alles im code machen heißt z.b. 3 buttons hinzuprogrammieren
hmm
du willst quasi nur den error webhook aber ohne die user nachrichten? @urban glen
ich schau mal was ich machen kann
Heyho, Timo hatte ja mal nen Video gemacht wie man Werte an Klassen übergibt. Er hat das mit dieser View gemacht, aber wie macht Man das denn, wenn man z.b. solche Buttons hat wo die view im Command erstellt wird?
du könntest werte an die button klasse übergeben
oder wie meinst du genau? schick vlt mal einen kurzen beispielcode
die buttons werden überall im cmd erstellt
Mach ich gleich
Meine sowas, wo die View so erstellt wird:
@slash_command()
async def button2(self, ctx):
button = TutorialButton("Kekse sind cool")
view = discord.ui.View()
view.add_item(button)
await ctx.respond("Klicke hier", view=view)
Du hattest in deinem video halt diese Art von buttons für die dus erklärt hast:
@slash_command()
async def button1(self, ctx):
await ctx.respond("Klicke hier", view=TutorialView())
Wollte also wissen, wie ich bei dem erstem Beispiel werte übergeben kann
du kannst an die button klasse werte übergehen, das funktioniert genauso wie im video nur dass die werte nicht an die view klasse, sondern an die button klasse übergeben werden
Ja, aber wo trag ich da die Variablen wie ctx.author ein?
in der init methode
Ne meine bei dem await ctx.respond da muss ich ja das übergeben dachte ich
nein da nicht
Aber da hattest du doch das so:
view=TutorialView(ctx.author)
an den view musst es nicht übergeben, sondern an den button
an den view kannst du es ja auch gar nicht übergeben, weil du ja gar keine eigene view klasse hast
je nachdem wie deine init methode aussieht ja
Okay, thx
was tust du
bei mir klappts
errors solltest du schon bekommen, es sei denn du hast es ausgeschaltet
Mensch Twevis
Um wv Uhr kannst du morgen call? Bräuchte da nochmal eine Hilfe bei dem werte vergeben
Falls das in Ordnung is
Ein Codingdate 
wenn ich im call bin kannste jederzeit dazukommen
Thx
ignored_cogs
ja ist ja auch logisch wenn du error handler off hast
print?
weiß nicht was du meinst
IQ sinkt xD
einf mal des video nochmal schauen 🤔
pip uninstall py-cord ^^
meinst bei ezcord
pls help
yay
Also beim erstellen der Tabelle musste TEXT nehmen
Und dann halt inserten mit
INSERT INTO tabelle Text VALUES(Texttest)
Oder halt wie man insertet habs nd mehr so genau im Kopf
Weisste wie man was in ne db einträgt?
So machst du es auch mit Text
Gibst halt als value den Text an
Tabletten 😮
warum zeig dem commad nicht an ```py
@slash_command(description="Unwarn einen User aus dem Server")
@discord.default_permissions(kick_members=True)
@discord.guild_only()
async def unwarn(
self,
ctx,
member: Option(discord.Member, "Wähle den User aus, den du unwarnen willst", required=True),
warn_id: Option(int, "Wähle die Warn ID aus, die du zurückziehen willst", required=True),
reason: Option(str, "Gib einen Grund an, warum du den User warnen willst", required=False,
default="Kein Grund angegeben")
):
unwarnUser_embed = discord.Embed(
title="`🍀` Unwarn",
description=f"Ein Warn von dir vom Server **{ctx.guild.name}** wurde zurückgezogen.",
color=discord.Color.green(),
timestamp=datetime.datetime.utcnow()
)
unwarnUser_embed.add_field(name="Moderator:", value=f"```{ctx.author}```", inline=False)
unwarnUser_embed.add_field(name="Warn ID:", value=f"```{warn_id}```", inline=False)
unwarnUser_embed.add_field(name="Grund:", value=f"```{reason}```", inline=False)
unwarnUser_embed.set_author(name=f"{ctx.guild.name}", icon_url=ctx.bot.user.avatar.url)
unwarnUser_embed.set_thumbnail(url=ctx.guild.icon.url)
unwarnUser_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}",
icon_url=ctx.bot.user.avatar.url)```
Ja
Bei der 1. button Art kann ich da iwie einstellen das man die auch usen kann nachdem bot restartet wurde?
Ja kann man hat Timo auch im Video erklärt
Ne das is bei der View klasse, meine bei den Button Klassen
die musst du doch so oder so zur view adden
view.add_item(classname) ins on_ready event
und in der class
super().__init__(timeout=None)```
also _ des 2 mal davor und danach xD
dein async with db.execute ist zu weit links. alles was innerhalb der connection ist, muss nach rechts eingerückt werden
async with aiosqlite.connect(self.db) as db:
async with db.execute() # richtig
async with db.execute() # falsch
kann mehrere gründe haben. letztens hattest du den command glaube ich falsch eingerückt, aber es kann zum beispiel aus sein dass du das cog nicht geladen hast
du musst nur den view peristant machen, zu dem du die buttons hinzufügst
wie lucky schon gesagt hat
Okay, thx
Da is das view rot unterstrichen
ja du musst zuerst view = discord.ui.View() schreiben
Okay
Wenn ich das mache kommt der Fehler:
CODE
du hast die runden klammern vergessen
Timo 
stimmt 🙂
Ah thx xD
nur views haben timeouts, buttons nicht
geiler schatten xD
ja.. mein Fehler xD
timeout=None weg xD
Ach Bruh also muss ich bei der View eif timeout=None machen nh
ja
wieso machst nd einf nh view klasse und machst da denn button rein xD
Wieso so umständlich
Habe da nen paar Sachen mit if etc. eingebaut
und 🤔
Erklär ich später
Habe so gemacht das wenn die If Bedingung True wird ein Button halt geaddet
Falls du verstehst was ich meine @tawdry leaf
Wie kann man da Daten in das on_ready event übergeben? weil ich hab die daten übergeben beim ausführen vom command aber beim on_ready event hab ich die daten nd
hey ich möchte leute kicken die ein bestimmen rang haben aber es funktoniert nicht und ein fehler gibt es auch nicht
@bot.event
async def on_member_join(member):
role_id = 1109495788540797009
role = discord.utils.get(member.roles, id=role_id)
if role is not None:
await asyncio.sleep(10)
await member.kick(reason='Benutzer hat die Rolle')
print(f'Der Benutzer {member.name} wurde gekickt.')```
Du fragst nicht ab ob der User die rolle hat
stimmt 🙂
.
wie meinst
Also. Bei nem Command wird eine Rolle eingegeben. Die wird an einen Button übermittelt.
Aber wenn ich die View ins on_ready event mache findet der die rolle nd mehr nach nem neustart weil die rolle halt nd mehr im self.role ist wie kann ich da machen das das auch im on_ready geht
musst du in ner datenbank speichern und im on_ready event wieder laden
aber wie hole ich das raus? wenns ja mehrere rollen gebe müssen die eingetragen werden. die haben dann als beispiel ne id 1
wie bestimme ich da im on_ready welche rollen mit welcher id geholt werden? xd
normalerweise brauchst du des doch nd oder startet dein bot so oft neu
weiß nd wie oft ich den noch neustarten muss. aber auf jedenfall so oft das ich kb hab die rr neu senden zu lassen
code?
Weil ich glaube du hast gemacht das wenn er mehr Geld hat der Fehler ausgegeben wird.
Also du hast gemacht:
Wenn Money größer als 1k:
Fehler
Du hast den Pfeil falsch rum gemacht xd
passiert mir in Excel immer xD
mach einf <>
für größer gleich oder ist des nur in excel xD
Error?
Wenn man 1k oder weniger hat dann soll der Fehler kommen nh
Oder nur wenn man weniger als 1k hat
Dann mach if data[2] < 1000:
Haha
hm für websites hab ich keine anleitungen
müsstest du mit oauth machen, aber das ist relativ komplex je nachdem
da bin ich auch kein profi
auf die website? das ist ez du holst von deinem frontend ne request an dein backend und das sendet die guilds (also wenn du jetzt guild anzahl meinst)
dann solltest du so ein projekt nicht machen
hey ich komme nicht weiter:
Ich habe eien command mit dem man buttons erstellen kann für reactionroles
Ich habe die Buttons einfach in eine view getan die ich in dem modal erstellt habe(view = discord.ui.View(timeout=None)), da ich diese aber nicht satrten kann im on ready event will ich jetzt eine klasse erstellen wo der code der buttons drinsteht und ich die sachen einfach mit variablen ändern kann, doch 2 sachen:
- Ich nehme den namen usw. die der button habe soll mit in die view klasse doch kann bei
@discord.ui.button()kein variablen drinne reinschreiben, wie kann ich also den button mit eigenen werten die ich halt woanders bestimme ändern?
- wie kann ich machen das ich selber bestimme wie viele buttons in der view klasse sind, ohne halt die bestimmte anzahl reinzucoden sondern nur einen button zu haben den ich dann halt mehrmals nebeneinander mit sozusagen dem gleichen code mache, ist das möglich?
Bekomme meinen Bot mal wieder nicht gestartet... py-cord ist schon installiert..
hast du discord.py installiert? Wenn ja einmal py-cord und discord.py deinstallieren und dann wieder py-cord installieren
Hab das Tutorial in #🔍・pycord-help schon befolgt. Kommt immer derselbe Fehler.
für Punkt 1 und 2 musst du mit Button Klassen arbeiten, nicht mit View klassen
ja klar aber nicht ei sowas wie nem dashboard
Gibts eigentlich nen weg Datenbanken bzw einzelne Tables im discord Chat darstellen zu lassen? Rein als Text is es ja relativ simpel aber dachte evtl geht das auch schöner. Falls ihr was wisst bitte gerne hier oder per dm melden😊
wie meinst du das genau?
hast du das als root installiert?
yes.
macht man normal nicht. Nutzer anlegen der den bot laufen lassen soll, höchstens teil der sudoers gruppe und als nutzer installieren.
schick mal deine pip freeze liste @silk gulch
Hat zuvor auch immer geklappt.
Is trotzdem bad practice. nur als root wenns nötig ist.
Naja zum debuggen (oder einfach nur reinschauen) würde ich gern anstatt jedes Mal das externe DB Programm zu öffnen mit einem Slash command ein bestimmtes Table aus einer DB im Chat darstellen
kann auch konflikte auslösen
Optimal in einer Tabellenform*
das geht, ist aber relativ aufwändig. im chat darstellen würde ich nicht empfehlen, da es bei discord ein zeichenlimit gibt und tabellen ja auch mal größer sein können. wenn du es in tabellenform haben willst, müsstest du das ganze in einem codeblock oder in einer datei machen, weil nur dort jeder buchstabe die gleiche länge hat. am besten mit einer externen library
ah verstehe
dann bleibe ich lieber doch bei der jetzigen methode, danke^^
weiss einer wie geht das
Mit z.B. Pillow
Pil oder easy-pil
Timo hat ein tutorial für easy-pil gemacht
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Easy-PIL Docs ► https://easy-pil.readthedocs.io/
Space Bild ► https://github.com/tibue99/tutorial-bot/blob/main/Einzelvideos/Easy-PIL/space.png
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCO...
@ruby sparrow
kkk
Und wie mache ich das mit der Button Klasse?
wie das mit button klassen geht habe ich am ende meines button videos gezeigt. im grunde erstellst du einen view mit view = discord.ui.View(), und fügst dann die button klassen mit view.add_item hinzu
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...
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
await self.sync_commands()
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
registered_commands = await self.register_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 599, in register_commands
registered = await register("bulk", data, _log=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 371, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 55: Application command names must be unique```
ein command name ist bei dir doppelt
hab nicht
ich kann dir zeigen
komm mal call
Wie kann ich in der mein nochmal auf denn author zugreifen ```py
embed = discord.Embed(
color=0x587af1
)
embed.set_author(icon_url=user.author.display_avatar.url, name=user.author.display_name)
ezcord.set_embed_templates(error_embed=embed, success_embed=embed, info_embed=embed, warn_embed=embed)
bei dem beispiel kannst du denke ich auf keinen bestimmten author zugreifen, da du da ja erst allgemein das embed definierst und noch nicht weißt für wen das embed angezeigt wird
kannst du das vielleicht noch einbauen
ich schau mal was ich machen kann
Hilfe @urban glen braucht dich
bin zu dumm
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/commands/core.py", line 124, in wrapped
ret = await coro(arg)
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/commands/core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "/home/xquizt/Python-Coding/EzCordBot/cogs/Moderation.py", line 43, in timeout
await member.timeout(time, reason=reason)
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/member.py", line 854, in timeout
await self.edit(communication_disabled_until=until, reason=reason)
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/member.py", line 823, in edit
] = communication_disabled_until.isoformat()
AttributeError: 'int' object has no attribute 'isoformat'```
@slash_command(name="timeout", description="Timeout a member")
async def timeout(self, ctx, member: discord.Member, time: int, *, reason: str = "No reason provided"):
await ctx.defer()
await member.timeout(time, reason=reason)
await ctx.send(f"{member.mention} has been timed out for {time} seconds")```
chill doch ich weiss wie das geht
"time" ist bei dir wahrscheinlich ein int, sollte aber ein datetime objekt sein
https://docs.pycord.dev/en/stable/api/models.html#discord.Member.timeout
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
ok, wie änder ich das um
nutze am besten timeout_for, da kannst du es mit einem timedelta object machen
also await member.timeout_for(time, reason=reason?
from datetime import timedelta
t = timedelta(hours=time)
await member.timeout_for(t, reason=reason)
achso ok danke dir
Hallo, weißt jemand wie ich bei ctx.selected_options die Attachment URL heraus kriege?
Weil so sieht ungefähr die ctx.selected_options aus (attachment)
Ich weiß auch wie ich abfrage ob es ein Attachment ist nur keine Ahnung wie ich die URL gette von dem Attachment!
LG shine ~ Louis
ich weiss nicht warum gehts nicht kann wer helfen hier ist auch er code ```py
import discord
from discord.ext import commands
from discord.commands import slash_command
class restart(commands.Cog):
def init(self, bot):
self.bot = bot
@slash_command(description="restart the bot")
async def restart(self, ctx):
if ctx.author.id != 817435791079768105:
await ctx.respond("Only the bot owner can restart the bot.")
else:
await ctx.respond("Restarting...")
def setup(bot):
bot.add_cog(restart(bot))```
er bot soll sich neu start mit ein commd
ja das denke ich mir aber das steht nicht im code
weiss du wie kann man
in code-austausch ist ein code dazu
such mal
ja
da steht ja schon im Error was nicht klappt, die zahl ist zu groß für die DB
und Timo kriegt cookie
es geht immer noch nicht
bin ich dumm oder why sieht man den slash command nicht
class Ban(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.connection = create_connection()
def create_connection():
connection = None
try:
connection = sqlite3.connect('ban_database.db')
print("Verbindung zur SQLite-Datenbank erfolgreich hergestellt")
except Error as e:
print(f"Fehler bei der Verbindung zur SQLite-Datenbank: {e}")
return connection
def insert_ban_data(connection, member_name, reason, banned_by):
insert_query = """
INSERT INTO banned_members (member_name, reason, banned_by)
VALUES (?, ?, ?);
"""
try:
cursor = connection.cursor()
cursor.execute(insert_query, (member_name, reason, banned_by))
connection.commit()
print("Ban-Daten erfolgreich in die Datenbank eingefügt")
except Error as e:
print(f"Fehler beim Einfügen der Ban-Daten: {e}")
@commands.slash_command(description="Banne ein Mitglied")
@discord.default_permissions(ban_members=True)
async def ban(
self, ctx,
member: Option(discord.Member, "Wähle ein Member aus der gebannt werden soll"),
reason: Option(str, "Schreibe einen Grund", default="Keinen Grund angegeben")
):
try:
await member.ban(reason=reason)
insert_ban_data(self.connection, member.name, reason, ctx.author.name)
embed = discord.Embed(
title=":white_check_mark: | Mitglied wurde erfolgreich gebannt",
description=f"Das Mitglied {member.mention} wurde gebannt\n"
f"**Grund:** {reason}",
color=discord.Color.red()
)
except discord.Forbidden:
embed = discord.Embed(
title=":x: | Fehler beim Bannen",
description="Ich habe keine Berechtigungen, um dieses Mitglied zu bannen",
color=discord.Color.red()
)
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(Ban(bot))```
nicht mit py @commands.slash_command mach mit @slash_command
geht immer noch nicht
komm mal coding
bin da
BETTER DISCORD
ALARM chat gpt in #1020759567421931620 omg
was?
Ich bräuchte Mal einen Rat um ein passendes Buch oder eine passende Buchreihe zu wählen.
In kurz:
Das Buch sollte einem Schul-Informatik bis zum Abi beibringen.
In länger:
Ich habe mich zur Ausbildung Fachinformatiker/Anwendungsentwicklung beworben. In der letzten Firma lief das Erstgespräch gut und den anschließenden Einstellungstest habe ich in allen Teilen, außer Informatik, gut bestanden. Es folgte sogar eine Einladung zum Einstellungsgespräch morgen.
Aber es stört mich arg die Grundlagen dazu aus der Schule nicht zu haben. Bei uns gab es Informatik einfach nie als Fach und die Grundlagen würde ich mir schon gerne aneigenen. Es ist ist einfach blöd da dann im Test zu sitzen und beispielsweise verschiedene Protokolle nicht zu kennen oder keine Ahnung von Netzwerken zu haben.
Kurzum, wenn jemand etwas empfehlen kann bin ich dankbar drum.
ok xd
steht alles da
wo
Bücher sind da meist veraltet des sollte dir bewusst sein
auf was replied
@tawdry leaf Ist doch egal, ob er es mit chatgpt geschrieben hat oder zur hilfe genommen hat? Verstehe jetzt nicht dein Problem ist doch seine entscheidung und sein code?
lass den das ist ein kind der nur auf andere schauen muss
Ja. Es geht dabei auch eher drum eine vernünftige Basis zu haben. Wenns ums Entwickeln geht schaue ich in der Dokumentation oder Videos oder sowas.
Buch deshalb, weil ich mir davon erhoffe, dass das einigermaßen Strukturiert ist und eben nicht dieses "ich brauche schnipsel x -> googel -> stackoverflow -> problem gelöst", was ja immer sehr fallspezifisch ist.
ich will einfach die Grundlagen dahinter im Allgemeinen können.
okey
es geht um den Joke das man in #1020759567421931620 Hilfe bekommt und sowas eig gar nd bräuchte bruh
toxic?
ich glaub das den keiner versteht außer du?
bin älter als du bengelk
nö
merke ich
finde trz nd das es in allgemeine hilfe gehört
ja.. wieso schreibst du mich dann hier drauf an und nd in #💬・chat xD
In welche Richtung soll denn die Grundlage gehen
ja
btw ich benutze es nur um zuschauen welcher fehler was ist okey wenn du damit ein Problem hast geh doch einfach und misch nicht nicht ein du hilfst nicht also lass den mund zu
du hast wohl nicht richtig gelesen
warum schreibst du dann die nachricht was du geschrieben hast?
es geht um den Joke das man in #1020759567421931620 Hilfe bekommt und sowas eig gar nd bräuchte bruh
Wenn man nach dem Durcharbeiten eine Abi-Prüfung in Informatik schreiben könnte war das Buch/die Reihe eine gute Wahl.
weil er da ist um Hilfe zu bekommen wozu dann chat gpt wenn er da ist
hää? es hat chatgpt benutzt und es funktioniert nicht, und jetzt braucht er hilfe
misch nicht nicht ein und lass den mund zu :D
ja chat gpt ist 2021
sei mal nd so toxisch sonst wird das nie was mit coden
jaja und dein leben auch nicht wenn man in anderen sachen ein misch xd
mach deine sachen und wir machen unsere sachen.
ja und
Jungs und Mädels chillt mal bitte. Lucky wenn sie ChatGPT nutzen wollen dann lass sie einfach
jedem sich selber überlassen
ja
kann man slash commands nutzen, wo der Bot nur Aktionen im Hintergrund durchführt ohne dem User eine Antwort zu senden?
Ja jedoch steht dann halt im Chat das der Bot nicht reagiert hat
also ich hab herausgefunden dass man das hier machen kann:
# confirm the interaction
await ctx.defer()
.... (Hintergrundaktionen)
# hidden interaction response
response = await ctx.respond("...", ephemeral=True)
# delete the interaction response instantly
await response.delete()
dabei wird eine Nachricht zwar gesendet und damit der Slash befehl erfolgreich durchgeführt, und die nachricht im anschluss gelöscht
ist aber mMn nicht so elegant
kannst auch bei ctx.respond noch delete_after rein schreiben
der command wird nicht geladen alle im call wissen nicht why
class Ban(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.connection = create_connection()
@slash_command(description="Banne ein Mitglied")
@commands.has_permissions(ban_members=True)
async def ban(
self, ctx,
member: Option(discord.Member, "Wähle ein Member aus der gebannt werden soll"),
reason: Option(str, "Schreibe einen Grund", default="Keinen Grund angegeben")
):
try:
await member.ban(reason=reason)
insert_ban_data(self.connection, member.name, reason, ctx.author.name)
embed = discord.Embed(
title="✅ | Mitglied wurde erfolgreich gebannt",
description=f"Das Mitglied {member.mention} wurde gebannt\n"
f"**Grund:** {reason}",
color=discord.Color.red()
)
except discord.Forbidden:
embed = discord.Embed(
title="❌ | Fehler beim Bannen",
description="Ich habe keine Berechtigungen, um dieses Mitglied zu bannen",
color=discord.Color.red()
)
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(Ban(bot))
``` und nein der code ist nicht von chatgpt :D
Schonmal getestet ob der Cog geladen wird?
ah und ich glaube ist eins zu weit rechts dein cmd
@viscid lake
Wenn keiner weiß warum dann denken die wohl nicht richtig nach
ja hab es nochmal anch rechts gemacht
@slash_command(description="Banne ein Mitglied") müsste auf der gleichen höhe wie def __init__(self, bot): stehen
hey,
leider ist es extrem unterschiedlich, was in der Schule in Informatik bis zum Abi alles behandelt wird.
an deiner Stelle würde ich mir zB ein Buch zu einem Thema anschauen, das ihr gerade braucht und das dann nutzen
danke^^
das weiß er eben nicht so wie ich das lese
bruh hatte es eig so komisch aber danke es geht
du hast noch so ein zitat dings drinne
ist doch mit Absicht er mag es zitiert und eben im codeblock
gehe ich mal davon aus
kommt aufs Bundesland an denke ich. schau dir vlt Mal die Themen auf dem Lehrplan für dein Bundesland an besorge dir dann Material dazu.
bei uns waren es zum Beispiel so Sachen wie Java, Algorithmen, theoretische Informatik und relationale Datenbanken
ja aber dieses zitat im codeblock geht glaube ich nicht
das habe ich bereits geschrieben xD
aha sry habe es nicht gesehen
beides geht nd

ahja discord
uiii
ich habe mir nun das hier bestellt:
https://www.amazon.de/Handbuch-Fachinformatiker-innen-Ausbildungsbegleiter-Anwendungsentwicklung/dp/3836281317/ref=sr_1_1?__mk_de_DE=ÅMÅŽÕÑ&crid=2K4IZP6603OQL&keywords=IT-Handbuch+für+Fachinformatiker&qid=1684693291&s=books&sprefix=it-handbuch+für+fachinformatiker%2Cstripbooks%2C69&sr=1-1
Hallo, weißt jemand wie ich bei ctx.selected_options die Attachment URL heraus kriege?
Weil so sieht ungefähr die ctx.selected_options aus (attachment)
Ich weiß auch wie ich abfrage ob es ein Attachment ist nur keine Ahnung wie ich die URL gette von dem Attachment!
LG shine ~ Louis
ah super, viel erfolg
das gibt es in einer Neuauflage
weißt du was die Einheit für die Zahl ist?
s
hab jz mal mit 1, 10, und 1000 versucht
sekunden
aber der löscht das bei mir instant
delete_after=
mein fehler
hab 2 response dinger und hab das bei der anderen geändert die ganze zeit :')
danke für eure hilfe
xD
kd
weiß jmd wie man dieses x auf dem roten hintergrund als emoji kriegt? Ich meine damit, dass es so ein Emoji nicht gibt.. ich hab nur ein weißes X auf grün gefunden und ein rotes X ohne Background
das X bei Exit ist btw vom Tatsumaki bot
wahrscheinlich über private server oder?
custom emoji
Ich meine das sind eigene Emojis von Servern
wie würde denn so eine Implementierung aussehen mit externen Emojis?
so
links server id rechts emote id?
ne des erste emoji id des 2. name
kannst einf \hierdesemoji dann hast du des und kannst es einf kopieren
also so meine ich und dann absenden
kd
funktioniert aber nur wenn dein bot auch auf dem server ist der das emoji hat
ne das funktioniert tatsächlich auch bei allen anderen
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/cog.py", line 774, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/xquizt/Python-Coding/EzCordBot/cogs/allgemein.py", line 15, in <module>
class Join(commands.Cog):
File "/home/xquizt/Python-Coding/EzCordBot/cogs/allgemein.py", line 22, in Join
async def on_member_join(self, member):
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/cog.py", line 400, in listener
raise TypeError(
TypeError: Cog.listener expected str but received 'function' instead.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/xquizt/Python-Coding/EzCordBot/main.py", line 16, in <module>
bot.load_cogs("cogs") # Load all cogs in the "cogs" folder
File "/home/xquizt/.local/lib/python3.10/site-packages/ezcord/bot.py", line 152, in load_cogs
self.load_extension(f"{'.'.join(path.parts)}.{name}")
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/xquizt/.local/lib/python3.10/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.allgemein' raised an error: TypeError: Cog.listener expected str but received 'function' instead```
```py
import discord
from discord.ext import commands
from datetime import datetime
import random
#Copyright (c) 2023 & !Bobby.#4747
WELCOME_CHANNEL = 1095107428850343968 # hier die channel id du fisch.
SERVER_ID = 1094820227512021143 # hier die server id du fisch.
class Join(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener
async def on_member_join(self, member):
channel = self.bot.get_channel(WELCOME_CHANNEL)
guild = self.bot.get_guild(SERVER_ID)
welcome_emojis = ["👋", "🙌", "🖐️", "🤚", "🙋♀️", "🙋♂️", "💁♀️"]
welcome_messages = [
f"Willkommen an Bord, {member.mention}! Lass uns zusammen den Server rocken.",
f"Wir haben schon auf dich gewartet, {member.mention}. Willkommen auf unserem Server!",
"Du bist hier! Endlich ist unser Server komplett. Herzlich willkommen.",
"Willkommen auf unserem Server! Wir hoffen, dass du hier eine großartige Zeit haben wirst.",
f"Hola, {member.mention}! Willkommen auf unserem Server.",]
embed = discord.Embed(title=f"Willkommen auf {guild.name}!", description=f"*{random.choice(welcome_messages)}*", colour=0x5c00c7)
if member.avatar is None:
url = "https://i.pinimg.com/564x/b5/d4/ce/b5d4ce10a744861ffd3314d20d116976.jpg"
else:
url = member.avatar.url
embed.set_footer(text=f'UserID: [{member.id}] Credits ! Bobby.#4747', icon_url=url)
embed.set_thumbnail(url=guild.icon.url)
view = discord.ui.View(timeout=None)
button3 = discord.ui.Button(label="Begrüßen", style=discord.ButtonStyle.green, emoji='🤗')
async def call1(interaction):
if member == interaction.user:
return await interaction.response.send_message(f'Hallo, gehts dir Noch gut? Du kannst dich nicht selbst Begrüßen xD' , ephemeral=True)
else:
button3.disabled = True
await interaction.response.send_message(f'{interaction.user.mention} heißt **{member.display_name}** Herzlich Willkommen {random.choice(welcome_emojis)}')
await interaction.message.edit(view=view)
button3.callback = call1
view.add_item(button3)
await channel.send(embed=embed, view=view)
runde klammern hinter listener
was soll es denn machen?
ai foto
du musst das embed noch senden
Wie kann man globale funktionen erstellen, wo cogs drauf zugreifen können?
du kannst überall im code eine funktion defininieren, du müsstest sie dann nur bei den cogs importieren
da gibt es wohl keine output_url in data
lass dir data doch mal printen und schau was drin ist
ja zum beispiel
verstehe, danke ^^
du hast bei openai dein 5$ limit erreicht

if __name__ == "__main__":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs.{filename[:-3]}")
Unterordner, wo andere Cogs enthalten sind werden hier nicht berücksichtigt in dem "cogs" Ordner oder?
richtig
aber dazu hat timo glaube im ezcord video was gesagt
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
EzCord Docs ► https://ezcord.readthedocs.io/
EzCord GitHub ► https://github.com/tibue99/ezcord
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https:...

👍
import discord
from discord import slash_command
from discord.ext import commands
class birthday(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(description="zeig dein birthday!")
async def birthday(self,ctx, member: discord.Member, day: int, month: int, year: int):
"""Setzt das Geburtsdatum eines Mitglieds."""
#code by ama#0999
if ctx.author.guild_permissions.administrator:
#code by ama#0999!
member.birthday = discord.Birthday(year=year, month=month, day=day)
await ctx.respond(f"Das Geburtsdatum von {member.mention} wurde auf {day}.{month}.{year} gesetzt.")
else:
await ctx.respond("Du hast nicht die erforderlichen Berechtigungen, um diesen Befehl auszuführen.")
def setup(bot):
bot.add_cog(birthday(bot))```
error
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\Rysii\OneDrive\Desktop\neu discord bot\cogs\birthday.py", line 17, in birthday
member.birthday = discord.Birthday(year=year, month=month, day=day)
^^^^^^^^^^^^^^^^
AttributeError: module 'discord' has no attribute 'Birthday'
discord.Birthday gibt es nicht
Time ich bekomme das von meinem Post nicht auf die reihe
@solid ingot ? Sollte es gestern reinsenden wegen meinem Problem?
@silk gulch hm da wüsste ich im mometn auch nicht woran es liegt. entweder hast du py-cord für eine andere python version installiert, als du zum starten des bots nutzt, oder es ist etwas anderes bei der installation schiefgelaufen. schau mal nach ob die python version, mit der du den bot startest, dieselbe version ist, die du bei pip freeze benutzt hast. ansonsten installiere mal py-cord neu
Hab Python3.8 installiert und starte es auch mit dieser Version..
hast du py-cord auch für version 3.8 installiert?
[ERROR] Error while executing /invites
Traceback (most recent call last):
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 982, in _invoke
await self.callback(ctx, **kwargs)
File "C:\Users\Rysii\OneDrive\Desktop\neu discord bot\main.py", line 111, in invites
invites_info = await guild.fetch_invites()
^^^^^^^^^^^^^^^^^^^
AttributeError: 'Guild' object has no attribute 'fetch_invites'```
@bot.event
async def on_invite_create(invite):
channel_id = 1110142912227987476
channel = bot.get_channel(channel_id)
invites[invite.code] = invite.uses
@bot.event
async def on_invite_delete(invite):
channel_id = 1110142912227987476
channel = bot.get_channel(channel_id)
invites.pop(invite.code, None)
@bot.slash_command()
async def invites(ctx):
"""Zeigt die Anzahl der genutzten Invites für den Server."""
guild = ctx.guild
invites_info = await guild.fetch_invites()
invite_counts = {}
for invite in invites_info:
invite_counts[invite.code] = invite.uses
response = "Invites:\n"
for invite_code, used_count in invite_counts.items():
response += f"{invite_code}: {used_count}\n"
await ctx.response("danke für invites ")```
kann wer helfen
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...
@solid ingot für was da video
für deinen error
gibts ein tutorial video zu prefix commands von timo?
von mir gibt es nur slash command tutorials, da prefix commands relativ veraltet sind
hmmm I see
ich war dabei ein command für das erstellen eines Backups für die Datenbank zu machen
als Slash command hab ichs geschafft, alles funktioniert
aber ich möchte ungern dass jeder user sieht dass es so einen Befehl gibt
deshalb dachte ich man könnte es mit dieser prefix command methode machen
du kannst den slash command für andere ausblenden, indem du den command nur für einen bestimmten server freigibst
auf dem server kannst du ja dann in den servereinstellungen festlegen, wer den command alles sieht
gute idee, danke!
könntte mir bitte wer helfen. ich habe die config aber erfinded sie dort im ordner nicht
du öffnest die Datei im write Mode aber du willst doch lesen
yo kurze frage bei aiosqlite.connect("PFAD") Kann man sowas wie aiosqlite.connect("Data/Database.db")??
jo
mit diff
test```
Danke
fafaf```
+ uwu
+ uwu HUHUHU
#Cool
+ Perfektt
from discord.ext import commands
from datetime import datetime
import random
#Copyright (c) 2023 & !Bobby.#4747
WELCOME_CHANNEL = 1095107428850343968 # hier die channel id du fisch.
SERVER_ID = 1094820227512021143 # hier die server id du fisch.
class Join(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_member_join(self, member):
channel = self.bot.get_channel(WELCOME_CHANNEL)
guild = self.bot.get_guild(SERVER_ID)
welcome_emojis = ["👋", "🙌", "🖐️", "🤚", "🙋♀️", "🙋♂️", "💁♀️"]
welcome_messages = [
f"Willkommen an Bord, {member.mention}! Lass uns zusammen den Server rocken.",
f"Wir haben schon auf dich gewartet, {member.mention}. Willkommen auf unserem Server!",
"Du bist hier! Endlich ist unser Server komplett. Herzlich willkommen.",
"Willkommen auf unserem Server! Wir hoffen, dass du hier eine großartige Zeit haben wirst.",
f"Hola, {member.mention}! Willkommen auf unserem Server.",]
embed = discord.Embed(title=f"Willkommen auf {guild.name}!", description=f"*{random.choice(welcome_messages)}*", colour=0x5c00c7)
if member.avatar is None:
url = "https://i.pinimg.com/564x/b5/d4/ce/b5d4ce10a744861ffd3314d20d116976.jpg"
else:
url = member.avatar.url
embed.set_footer(text=f'UserID: [{member.id}] Credits ! Bobby.#4747', icon_url=url)
embed.set_thumbnail(url=guild.icon.url)
view = discord.ui.View(timeout=None)
button3 = discord.ui.Button(label="Begrüßen", style=discord.ButtonStyle.green, emoji='🤗')
async def call1(interaction):
if member == interaction.user:
return await interaction.response.send_message(f'Hallo, gehts dir Noch gut? Du kannst dich nicht selbst Begrüßen xD' , ephemeral=True)
else:
button3.disabled = True
await interaction.response.send_message(f'{interaction.user.mention} heißt **{member.display_name}** Herzlich Willkommen {random.choice(welcome_emojis)}')
await interaction.message.edit(view=view)
button3.callback = call1
view.add_item(button3)
await channel.send(embed=embed, view=view)
def setup(bot):
bot.add_cog(Join(bot))```
Fehler ist er sendet keine nachricht, ich hab alles überprüft
Channel Perms
Bot Perms
Channel + Server IDS
usw
ich hab auch den channel ausgeprinted nichts kam
Member intents?
Wie mach ich, dass der command im chat angezeigt wird? habs wieder vergessen xd
so mit eckigen kalmmern und id glaube ich
🤔
Beispiel? xd
warte
bruh
ok doch nicht xD
aua
das is btw die id von @burnt prairie
wie hast du die id bekommen
hö bei mir nd
</name:cmdid>
man braucht die vom bot die id, soweit wusste ichs nd
</help:1005119817294041209>
</help:1005119817294041209>
ja aber ist nicht blau
hmm und wie klickt man da jtzt drauf? xd
</help:1005119817294041209>
</help:907032956432957510>
/</help:1005119817294041209>
wie?
lesen?
#</help:1005119817294041209>
wie bekommt man die id von dem command? ._.
einf schreiben den cmd und dann bei den / rechts klick drücken
interresant xD
geht bei mir nicht
ich bin iwie zu inkompetent dafür, bye ._.
#1020759567421931620
moment
musst nix reden zeige es dir dort einf
Bei mir geht das iwie nd haha
Natürlich
ahh
mach stream maybe an xD
</serverinfo:1072348194421346388>
ja geht doch
ja danke
bruh, habs jtzt auch kapiert
und wenn man keine slash cmd id hat kann man es z.B. in seiner about me mit 0 machen
</help:1013489331698147369>
zumindest früher mal
im chat geht es nur mit id ig
die haben des mit 0 vermutlich raus gemacht
kennt wer eine api, die bilder generieren kann?
openAI dalle
ok thx
Wie denn?
das ist von system zu system unterschiedlich. prüfe mal, was für python versionen du alles installiert hast. evtl mit pip3.8
Da passiert nix. Meinst du python3.8 freeze?
wenn da nichts passiert, hast du wohl keine packages für python 3.8 installiert
in dem fall zb pip3.8 install py-cord
ok
wenn man mehrere python versionen hat muss man wie gesagt aufpassen für welche man die packages installiert
Klappt.
passiert häufig dass man da die falsche erwischt
Dank dir. ❤️
Hallo, Ich würde mal was nachfragen unzwar Ich will das meine Liste mit \n und so funktioniert aber wenn ich nur listname[0] mache dann nimmt der nur das 1. Objekt also es geht aber es wird nicht "formatiert" also es kommt nur ('blahblah\nblahblah')
LG 
also [0] hat erstmal nichts mit der formatierung zu tun. wo funktioniert das \n denn nicht bei welcher ausgabe?
wie kann ich den slash command author bekommen {message.author}?
könnt mir bitte wer helfen er findet jz die liste in der json nicht obwohl sie vorhanden ist
lass dir das doch einfach mal printen um zu schauen wieso es nicht drin ist
wie kann ich den slash command author bekommen {message.author}?
oder {user.author}
ctx.author
wenn du einen f-string benutzt ja
ok

