Как отобразить сообщение об ошибке, если у пользователя нет прав? Discord.py - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь выполнить простую команду очистки и вернуть сообщение об ошибке, если участник не имеет разрешения на управление сообщениями.

@bot.command()  
@commands.has_permissions(manage_messages=True)  
async def clear(ctx, amount=10):  
    await ctx.channel.purge(limit=amount)

1 Ответ

0 голосов
/ 16 февраля 2020

Это поможет.

@bot.command()   
async def clear(ctx, amount = 10): 
    authorperms = ctx.author.permissions_in(ctx.channel)
    if authorperms.manage_messages:
        await ctx.channel.purge(limit=amount)
    else:
        await ctx.send("You don't have the permissions to do that!")

Вероятно, есть лучший способ сделать это, используя Исключение, возникающее, когда кто-то без необходимых разрешений пытается использовать команду, или перезаписывая метод on_error. но я не знаю как. Это должно решить проблему для вас, пока вы не найдете лучшее решение.

...