Команда 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:\Users\BKhushi\AppData\Local\Programs\Python\Python36-3 
    2\lib\site-packages\discord\ext\commands\core.py", line 64, in wrapped
    ret = await coro(*args, **kwargs)
     File "C:\Users\BKhushi\Desktop\gg\Discordgang.py", line 42, in kick
       await member.kick()
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36- 
    32\lib\site-packages\discord\member.py", line 433, in kick
    await self.guild.kick(self, reason=reason)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\guild.py", line 1268, in kick
    await self._state.http.kick(user.id, self.id, reason=reason)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\http.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:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\client.py", line 227, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\BKhushi\Desktop\gg\Discordgang.py", line 96, in on_command_error
    raise error
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 814, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 682, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.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

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

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

Patrick Haugh 18.04.2019 17:06
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
377
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме