Команда kick выдает ошибки

#python #bots #discord #discord.py #discord.py-rewrite

#python #боты #Discord #discord.py #discord.py-перезаписать

Вопрос:

Моя команда kick приведена ниже:

    @bot.command()
   async def kick(ctx, member: discord.Member, *,reason=None):
      d = datetime.datetime.now()
      channel = bot.get_channel(556058910566514688)
      embed=discord.Embed(title='**Kicked By:** {}# 
     {}'.format(ctx.message.author.name, 
             ctx.message.author.discriminator), colour=discord.Colour(0x7ed321), description='**Reason:** {} n **Time:** {}/{}/{}'.format(reason, d.year, d.month, d.day))
embed.set_author(name='{}#{}'.format(member.name, member.discriminator), url="https://discordapp.com", icon_url='{}'.format(member.avatar_url, member.name, member.discriminator))
embed.set_thumbnail(url="{}".format(ctx.message.author.avatar_url))
role = discord.utils.get(ctx.guild.roles, name="Retired Staff")
if ctx.message.author.top_role < role:
        await ctx.send('```Only staff Can kick anyone```')
elif reason is None:
    await ctx.send('You can't kick anyone without a reason')
elif ctx.message.author.top_role > role:
    if ctx.message.author.top_role < member.top_role:
        await ctx.send('```You can't ban a staff member higher than you```')
    else:
        if ctx.message.author.top_role > member.top_role:
            await member.kick()
            await channel.send(embed=embed)
 

Ошибка:

    Ignoring exception in on_command_error
       Traceback (most recent call last):
     File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-3 
    2libsite-packagesdiscordextcommandscore.py", line 64, in wrapped
    ret = await coro(*args, **kwargs)
     File "C:UsersBKhushiDesktopggDiscordgang.py", line 42, in kick
       await member.kick()
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36- 
    32libsite-packagesdiscordmember.py", line 433, in kick
    await self.guild.kick(self, reason=reason)
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordguild.py", line 1268, in kick
    await self._state.http.kick(user.id, self.id, reason=reason)
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordhttp.py", line 210, in request
    raise Forbidden(r, data)
discord.errors.Forbidden: FORBIDDEN (status code: 403): Missing Permissions

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordclient.py", line 227, in _run_event
    await coro(*args, **kwargs)
  File "C:UsersBKhushiDesktopggDiscordgang.py", line 96, in on_command_error
    raise error
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordextcommandsbot.py", line 814, in invoke
    await ctx.command.invoke(ctx)
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordextcommandscore.py", line 682, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:UsersBKhushiAppDataLocalProgramsPythonPython36-32libsite-packagesdiscordextcommandscore.py", line 73, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden: FORBIDDEN (status code: 403): Missing Permissions
 

я не знаю, где ошибка, где ошибка

Комментарии:

1. У вашего бота отсутствуют разрешения. Проверьте ctx.guild.me.guild_permissions.kick_members и убедитесь, что человек, которого вы пытаетесь выгнать, находится ниже в иерархии, чем бот, который их выгнал (не участник, который вызвал команду)

Ответ №1:

У вашего бота нет разрешений, необходимых для удаления соответствующего участника. Убедитесь, что у вашего бота есть KICK_MEMBERS разрешение и что ваш бот может взаимодействовать с участником (самая высокая роль вашего бота выше их самой высокой роли, и участник не является владельцем гильдии).