首页 > 解决方案 > 不和谐.py | 如何在全局错误处理程序的命令中显示所有缺少的参数

问题描述

所以我想在discord.py的全局错误处理程序中处理我的每个命令,on_command_error(ctx, error)我想做的是告诉用户缺少哪些参数,但是discord.py(我认为)只为我提供了1个缺少的参数而且我不想告诉用户,例如在清除命令中缺少的参数是数量,然后在 2 条消息中也缺少另一个参数,我只想告诉他们所有缺少的参数。

所以这是我的代码:

    async def on_command_error(ctx, error):
        if isinstance(error, cmd.MissingRequiredArgument):
           arg = error.param.name
           await ctx.send(arg)

不幸的是,上面只显示了 1 个缺少的参数,并且错误变量没有提供更多信息。所以我的问题是有没有办法得到所有缺失的论点?如果不在 discord.py 库中,那么可能是另一个?

标签: pythondiscorddiscord.py

解决方案


您必须为此创建自己的错误,

class PurgeError(commands.CommandError):
   def __init__(self, text):
       self.text = text
   
   def __str__(): #used to get string of error
      return self.text

async def purge(ctx, args = None): #your command
  if args is None: #missing argument
      raise PurgeError("args is a required argument that is missing")

async def on_command_error(ctx, error): #error handler
  if isinstance(error, PurgeError):
      await ctx.send(error) #format error

参考:


推荐阅读