discord.py как заставить бота не пинать автора сообщения - PullRequest
0 голосов
/ 07 августа 2020

у меня есть команда кик

    @commands.has_permissions(kick_members=True)
    async def kick(self, ctx, member : discord.Member, *, reason=None):
        await member.kick(reason=reason)
        
        await ctx.trigger_typing()
            
        embed = discord.Embed(title=f"{gem} **User kicked!**", color=colgreen)
        embed.add_field(name="**{} has been succesfully kicked from the server!**".format(member), value="**Reason: {}.**".format(reason), inline=False)
        embed.set_footer(text="{0}\nID: {1}\n{2}".format(ctx.message.author.name, ctx.message.author.id, datetime.datetime.now().strftime("%A, %B %d %Y at %H:%M:%S %p")), icon_url=ctx.message.author.avatar_url)
        await ctx.send(embed=embed)

, но если пользователь, у которого есть права кик-участников, пытается кикнуть себя, бот его пинает.

как я могу сделать бот игнорирует пользователя и отправляет сообщение об ошибке, из-за которого вы не можете пнуть себя ??

я пробовал использовать if и else, но он не работает ... я либо получу ошибку, либо ничего ...

1 Ответ

0 голосов
/ 07 августа 2020

Вы можете добавить оператор if, чтобы проверить, равен ли пользователь автору, например:

    @commands.command()
    @commands.has_permissions(kick_members=True)
    async def kick(self, ctx, member : discord.Member, *, reason=None):
        if member == ctx.author: # Check if the user is the same as the author
            return

        await member.kick(reason=reason)
        
        await ctx.trigger_typing()
            
        embed = discord.Embed(title=f"{gem} **User kicked!**", color=colgreen)
        embed.add_field(name="**{} has been succesfully kicked from the server!**".format(member), value="**Reason: {}.**".format(reason), inline=False)
        embed.set_footer(text="{0}\nID: {1}\n{2}".format(ctx.message.author.name, ctx.message.author.id, datetime.datetime.now().strftime("%A, %B %d %Y at %H:%M:%S %p")), icon_url=ctx.message.author.avatar_url)
        await ctx.send(embed=embed)
...