Discord.py – die neusten Beiträge

Warum synchronisiert Discord die Befehle meines Bots nicht?

Hallow!

Ich bin gerade dabei einen Discord Geburtstagsbot zu schreiben.

Der Code funktioniert super, jedoch habe ich seit gestern (06.07) das Problem, dass meine Befehle, die ich hinzufüge oder aktualisiere, nicht in Discord geändert werden.

Ich habe zuerst versucht, direkt am Start eine Sync zu starten:

await bot.tree.sync() 
print("Slash Commands synchronisiert.") 

Als ich dann aber gelesen habe, dass es dabei ein Limit gäbe, habe ich die Autosync rausgenommen und einen eigenen Befehl erstellt (Was ziemlich blöd war von mir, was bringt der mir, wenn ich den Bot ja nicht syncen kann?)

@bot.event async def on_ready(): logging.info(f'{bot.user} hat sich erfolgreich angemeldet und ist bereit!') 
print("-" * 30) 
print("Versuche Slash Commands zu synchronisieren...")
 try: synced = await bot.tree.sync() 
# Versucht globale Synchronisierung 
logging.info(f"Erfolgreich {len(synced)} Slash Commands synchronisiert.") 
 for command in synced: 
  print(f"Synchronisierter Befehl: /{command.name}") print("-" *30) except Exception as e: logging.error(f"Fehler bei der Synchronisierung der Slash Commands: {e}", exc_info=True) print("-" * 30)

(Gutefrage hat den Code in ein komisches Format gebracht und bin zu faul, den wieder richtig zu ordnen lol)

Da das Sync Limit angeblich nur pro Tag gilt, sollte es heute eigentlich wieder gehen, tut es aber nicht.

Ich habe auch schon einen neuen Bot mit einer neuen Application erstellt, in der Hoffnung, dass der Sync dann wieder funktioniert, aber selbst nach einer Stunde wurde kein Befehl für den neuen Bot hinzugefügt. Die Bots selber sind aber online und in der Konsole wird bestätigt, dass der Bot erfolgreich angemeldet wurde.

Ich hab keinen Plan, wie ich den Sync wieder zum Laufen bekomme. Kann mir jemand helfen? Dankeee!

LG, Chris!

App, Bot, Command, Programmiersprache, Python, Synchronisierung, Discord, Discord Bot, discord.py

Warum passiert nichts bei diesem Command (discord.py)?

Das ist mein Code:

import discord

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_ready():
    print('bot is ready') # Prints when started up


@client.event
async def on_message(message): # Two commands that should show an embed
    await client.process_commands(message)
    if message.content.startswith(",feedback"):
        role = discord.utils.get(message.guild.roles, id=1060954421980319834)
        if role in message.author.roles:
            embed = discord.Embed(title="Feedback",description="Please fill in this feedback form. [ Optional ]\n\n```How good was the customer service?\nHow fast did you get your product?\nHow good did the product work?\nDo you want to give the staff a tip?```",color=1226812)
            embed.set_footer(text="Tips go 100% to the assisting staff")
            embed.set_thumbnail(
                url="https://cdn.discordapp.com/attachments/1060992798880448553/1060992810947453019/image.png")
            embed.set_author(name="ProBoosts")
            await message.channel.send(embed=embed)
            await message.delete()
        else:
            await message.channel.send("`You don't have the permissions to use this command`")
    elif message.content.startswith(",staffping"):
        role = discord.utils.get(message.guild.roles, id=1060954421980319834)
        if role in message.author.roles:
            embed = discord.Embed(title="Staff-Ping",description="Do NOT ping Staff. It may result a warning/mute. And it could delay staff seeing the ticket.", color=16530981)
            embed.set_footer(text="ProBoosts")
            embed.set_thumbnail(
                url="https://cdn.discordapp.com/attachments/1060992798880448553/1060992810947453019/image.png")
            await message.channel.send(embed=embed)
            await message.delete()
        else:
            await message.channel.send("`You don't have the permissions to use this command`")

Eigentlich sollte dort ein Embed kommen im Channel wo der Command ausgeführt wurde. Es kommt aber nix. Rein garnix. Der Bot wird übrigens ausgeführt ich habe die "client.run" Funktion aber ausgelassen damit mein Token nicht iwie geleaked wird.
programmieren, discord.py

Wieso löscht ein Discord.py Bot alle Nachrichten eines Users wenn er ihn bannt?

Heyho!

Ich programmieren jetzt schon seit längerem an einen Discord Bot in Python.
Das meiste bekomme ich alleine hin, nur jetzt brauche ich dringend Hilfe!

Wenn ich den Ban Befehl in Discord ausführen möchte, wird der User zwar gebannt, aber seine gesamten Nachrichten werden gelöscht, wie bei einem Softban?
Ich versteh das irgendwie nicht... Ich bin auf vielen Servern Moderator und wenn ich dort den Ban Befehl ausführe wird nur der User gebannt und nicht seine Nachrichten gelöscht...

Was mir noch gerade einfallen ist, dass wenn ich den Clear Befehl ausführe wird die Nachricht zum Beispiel "Clear 4" gesendet, aber bei den vier Nachrichten die gelöscht werden ist der Clear Befehl auch dabei.

Ban:

@bot.command(name='ban', pass_context=True)
@has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban(reason=reason)
    embed = discord.Embed(description='', color=0x27ae60)
    embed.add_field(name='__**Banned**__', value=f'Der User {member.name} wurde erfolgreich gebannt!\r'
                                                 f'Grund: **{reason}**', inline=True)
    embed.set_footer(text=f'Moderator: {ctx.author.name} • {ctx.author.id}', icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embed)


@ban.error
async def ban_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **@User/ID** fehlt!', inline=True)
        await ctx.send(embed=embed)

Clear:

@bot.command(pass_context=True, name='clear')
@has_permissions(manage_messages=True)
async def clean(ctx, limit: int, deleted=None):
    await ctx.channel.purge(limit=limit)
    await ctx.send(format(len(deleted) - 1))


@clean.error
async def clean_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **Anzahl** fehlt!', inline=True)
        await ctx.send(embed=embed)

Hat jemand eine Ahnung was bei den beiden die Fehler sein könnten?

Danke schon mal im Voraus :)

LG Max

P.S. Sorry, dass das hier so lange wurde.

Computer, Technik, Python, Discord, Discord Bot, discord.py

Meistgelesene Beiträge zum Thema Discord.py