python - 不和谐.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 库中,那么可能是另一个?
解决方案
您必须为此创建自己的错误,
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
参考:
推荐阅读
- boost - boost Spirit x3 的编译性能问题
- android - 如何在android studio的前台添加motionSensor
- javascript - 添加未版本化的 js 构建文件时,WebStorm 变得非常慢
- kubernetes - 识别持久卷声明的节点
- javascript - 在 PayPal 订单和 PayPal 订阅之间切换
- get - 如何获取 Json 格式的方法?
- snowflake-cloud-data-platform - 使用 Azure 数据工厂将数据引入到 Snowflake
- google-cloud-platform - 自动将容器注册表映像部署到 Cloud Run
- javascript - addEventListener 只是实现功能而不监听
- ios - 是否不需要第二个应用内购买项目注册的应用更新?