为cog文件discord.py中的每个命令生成不同的错误处理程序

为cog文件discord.py中的每个命令生成不同的错误处理程序,discord,discord.py,Discord,Discord.py,我试图为cog文件中的每个命令创建一个单独的错误处理程序。例如,我希望bot说对不起,您没有这样做的权限!所需权限:管理员执行一个命令,抱歉,您没有权限执行此操作!所需权限:管理其他用户的角色。如何在cog文件中执行此操作?我已经有了 @commands.Cog.listener() async def on_command_error(self, ctx, error): if isinstance(error, commands.MissingRequiredArgume

我试图为cog文件中的每个命令创建一个单独的错误处理程序。例如,我希望bot说
对不起,您没有这样做的权限!所需权限:管理员
执行一个命令,抱歉,您没有权限执行此操作!所需权限:管理其他用户的角色。如何在cog文件中执行此操作?我已经有了

@commands.Cog.listener()
    async def on_command_error(self, ctx, error):
      if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send(f"{ctx.author.mention}, Sorry, you need to tell me what the new prefix is!")
      if isinstance(error, commands.MissingPermissions):
        await ctx.send(f"{ctx.author.mention}, Sorry, you do not have permission to do this! `Required Permission: Administrator`")

但这是我所有的命令。我知道如何在main.py文件中执行此操作,但我知道在cog文件中它是不同的。谢谢

您可以从
错误。missing_perms
属性中获取缺少权限的列表

如果isinstance(错误,命令.丢失权限):
等待ctx.send(f“{ctx.author.antify},抱歉,您没有执行此操作的权限!`所需权限:{*error.missing_perms,}`”)
编辑:
使用
str.join

{,“.join(错误.缺少\u perms)}
参考资料:

注意:
MissingPermissions.missing\u-perms
返回一个列表,因此我们使用
*list,
对其进行格式化,如果您不想使用
*list附带的括号,
您可以从
错误中获取缺少权限的列表。missing\u-perms
属性

如果isinstance(错误,命令.丢失权限):
等待ctx.send(f“{ctx.author.antify},抱歉,您没有执行此操作的权限!`所需权限:{*error.missing_perms,}`”)
编辑:
使用
str.join

{,“.join(错误.缺少\u perms)}
参考资料:

注意:
MissingPermissions.missing\u perms
返回一个列表,因此我们使用
*list,
对其进行格式化,您也可以使用
str.join
如果您不想使用
*list附带的括号,

谢谢,我已经让它工作了。但是我该如何准确地使用
str.join
,因为它在权限部分添加了括号?编辑了我的回答谢谢,我让它工作了。但是,由于在权限部分添加了括号,我如何准确地使用
str.join