discord.py处理discord.errors.Forbidden:403 Forbidden(错误代码:50013):缺少权限

时间:2020-07-26 05:06:01

标签: python discord.py

我正尝试处理此错误discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

我知道当僵尸程序被不和谐服务器中的角色静音并且该僵尸程序尝试发送消息(on_message)或命令时出现错误。我只想在python终端中进行打印,例如“权限错误”。而不是编写的大错误。 我尝试过这个:

from discord.ext.commands import MissingPermissions
async def on_command_error(ctx, error):
    if isinstance(error, CommandNotFound):
        return
    elif isinstance(error, (ConversionError, BadArgument)):
        await ctx.send("Respeta el formato del comando :eyes:")
        print("No se respetó el formato del comando ")

        return
    elif isinstance(error, MissingRequiredArgument):
        await ctx.send("Debes ingresar la cantidad, Ej : *bot blabla 250* :eyes:")
        return
    if isinstance(error, MissingPermissions):
        print("error de permisos ")
        return 
    if isinstance(error, commands.BotMissingPermissions) and "Missing Permissions" in str(error):
        print("error de permiso")
        return
    if isinstance(exception, commands.MissingPermissions):
        print("Blabla")
        return
    raise error

我写的其他错误得到了很好的处理,但我无法使用missingPermissions。

2 个答案:

答案 0 :(得分:0)

老实说,最好的选择是做些类似的事情:

@commandnamehere.error
async def info_error(ctx, error):
    if isinstance(error, commands.CommandInvokeError):
        return

当特定命令出现错误时该怎么办,您可以使其执行任何操作,是否打印,向通道发送消息等

此外,请注意,上面示例中的命令为CommandInvokeError。您需要将其设置为收到的错误。

答案 1 :(得分:0)

尝试查看client.on_error。到目前为止,我已经看到,当on_message之类的事件发生错误时会触发该事件。