检查机器人是否有足够的权限(或处理它)

Check if bot has enough permissions (or handle it)

我正在寻找一种方法来处理缺少权限的机器人。就像我删除它的“send_messages”权限并尝试让它发送消息一样。

我不知道该怎么做,我已经找了好几个小时了,我不想添加

if bot.has_permissions("send_messages"):

每次我想做任何事。 另外这个机器人的目的是在我不在的服务器上,所以编辑公会的权限不是一个选项。

谢谢

您可以为 Forbidden 错误添加一个通用错误处理程序,该错误 discord.py 在 403 Forbidden: Missing Permissions 错误时引发。之前一般CommandInvokeError需要先解压

@bot.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.CommandInvokeError):
        error = error.original

    if isinstance(error, discord.errors.Forbidden):
        await ctx.send("Whatever you want to say here.")