#discord.py
#discord.py
Вопрос:
Я попытался создать сообщение об ошибке, когда у пользователя нет разрешений на использование команды, это потому, что я продолжал получать сообщение об ошибке в консоли, код должен отправлять сообщение в чат, когда у пользователя нет разрешений на его использование, ошибка исчезла с консоли, ноон не выводит сообщение
@client.command()
@has_permissions(manage_messages=True)
async def clear(ctx, limit: int):
await ctx.channel.purge(limit = limit)
await ctx.send('Cleared by {}'.format(ctx.author.mention))
@clear.error
async def clear_error(error, ctx):
if isinstance(error, MissingPermissions):
await ctx.send('Sorry, you do not have permissions to do that!')
Комментарии:
1. Если он не выводит сообщение, это означает, что ошибки нет
MissingPermissions
. Не могли бы вы попробовать добавитьprint(error)
обработчик ошибок и сообщить нам, что произойдет?2. Кроме того, у меня есть точно такой же код для моего бота, но вместо проверки
MissingPermissions
я проверяюCheckFailure
, что для меня работает нормально.3. Я попытался ввести
print(error)
свой код и запустить его, но консоль по-прежнему отображается как пустая @kr8gz. Я также пытался использоватьCheckFailure
в коде и все еще сталкивался с той же проблемой
Ответ №1:
Когда вы используете функцию обработки ошибок, вам нужно сделать async def clear_error(ctx, error):
. По сути, вам просто нужно поменять местами параметры.
@clear.error
async def clear_error(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.send('Sorry, you do not have permissions to do that!')
Комментарии:
1. Это сработало, я бы никогда этого не нашел, спасибо!