Проблема с on_command_error в discord.py

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

Привет, я хотел сделать так, чтобы при выполнении команды она отправляла сообщение «Похоже, у вас отсутствуют некоторые разрешения — {разрешение здесь}», но это не работает. Вот мой код:

 @client.event
async def on_command_error(ctx, error):
    if isinstance(error,commands.MissingPermissions):
            print(error.missing_perms)
            await ctx.send(f' It looks like your missing some permissions - `{" amp; ".join(error.missing_perms)}`')
  

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

1. в чем ошибка?

Ответ №1:

Вот хороший способ сделать это :

 async def on_command_error(self, ctx, error):
    # get the original exception
    error = getattr(error, 'original', error)
    
    if isinstance(error, commands.MissingPermissions):
        missing = [perm.replace('_', ' ').replace('guild', 'server').title() for perm in error.missing_perms]
        if len(missing) > 2:
            fmt = '{}, and {}'.format("**, **".join(missing[:-1]), missing[-1])
        else:
            fmt = ' and '.join(missing)
        _message = 'You need the **{}** permission(s) to use this command.'.format(fmt)
        await ctx.send(_message)
        return