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
Discord.py Bot Fehler beim Ban Command?

Guten Tag,

ich habe angefangen meine eigenen Discord Bot in Python zu programmieren. Clear, Kick, Userinfo, etc. schaffte ich. Der Ban Command ging zuerst auch. Ich hab dann versucht einen Softban Command hinzuzufügen und überraschenderweise ging er. Nur auf einmal war der normale Ban Command auch so wie ein Softban das er die Nachrichten von einem gebannten User löscht. Ich habe dann den Softban Command gelöscht, aber der normale Ban löschte noch immer die Nachrichten vom gebannten User. Ich habe dann auch denn Ban Command komplett neu geschrieben, aber er löschte noch immer die Nachrichten!
Ich hab keinen Plan was da los ist, kennt sich jemand damit aus und könnte mir weiter helfen, wie ich das beheben kann? :)

@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)

programmieren, Bots, Python, Discord, Discord Bot, discord.py
Discord.js Level Roles?
  //level system


  bot.on('message', function(message){
    if(message.author.bot) return;
    var addXP = Math.floor(Math.random() * 5) + 1;


    if(!xpfile[message.author.id]){
      xpfile[message.author.id] = {
        xp: 0,
        level: 0,
        reqxp: 100
      }


      fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
        if(err) console.log(err)
      })
    }


  xpfile[message.author.id].xp += addXP


  if(xpfile[message.author.id].xp > xpfile[message.author.id].reqxp){
    xpfile[message.author.id].xp -= xpfile[message.author.id].reqxp
    xpfile[message.author.id].reqxp *=1.5
    xpfile[message.author.id].reqxp = Math.floor(xpfile[message.author.id].reqxp)
    xpfile[message.author.id].level += 1


    message.reply("ist auf Level **"+ xpfile[message.author.id].level +"** aufgestiegen.")
  }



  fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
    if(err) console.log(err)
  
  //level roles


var role = message.guild.roles.cache.find(role => role.name === "test");


if(xpfile[message.author.id].level == 1)message.member.guild.roles.add(role);


  //rank command


  if(message.content.startsWith("fg!rank")){


    let user = message.mentions.users.first() || message.author


    if(!xpfile[user.id]) return message.channel.send("Dieser User hat noch keine XP gefarmt.")


    const rank = new Discord.MessageEmbed()


    .setTitle("**RANK**")
    .setColor("GREEN")
    .setAuthor(user.tag,user.avatarURL({dynamic:true}))
    .addField("Level: ",xpfile[user.id].level)
    .addField("XP: ",xpfile[user.id].xp +"/"+ xpfile[user.id].reqxp)


    message.channel.send(rank)
  }


    })


  })

Hey, ich habe ein LevelSystem in Discord.js gecodet.

Es funktioniert sehr gut, aber bei den LevelRoles gibt es ein Problem.

Es kommt kein Error oder sonstiges, aber der Bot vergibt die Role nicht. Weiß jemand woran das liegt?

Computer, JavaScript, node.js, Discord, Discord Bot, Discord.js

Meistgelesene Fragen zum Thema Discord Bot