如何获取在 discord.py 中引发错误的命令名称?

Posted

技术标签:

【中文标题】如何获取在 discord.py 中引发错误的命令名称?【英文标题】:How do I get the name of command that raised error in discord.py? 【发布时间】:2021-09-25 11:18:13 【问题描述】:

我希望我的机器人生成某种命令日志,并且我希望它不仅发送“刚刚执行了某些命令”,而且还发送如果用户在尝试使用此命令时出现任何错误(缺少参数/权限和很快)。我想使用on_command_error() 来实现它,但我仍然需要知道哪个命令引发了错误。有什么办法吗?

【问题讨论】:

这样的事情对您有帮助吗? Example。你可以实现很多错误,看看error, commands.???? 给你什么。如果您设置了侦听器/事件on_command_error,机器人会在执行命令后告诉您输入是否有错误等。 【参考方案1】:

因为您从失败的命令中获取 ctx,如果您想要完整的命令对象,可以使用 ctx.invoked_withctx.command 访问命令名称。

...
@bot.event
async def on_command_error(ctx, error):
    command = ctx.invoked_with

见:https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?highlight=notfound#discord.ext.commands.Bot.on_command_error

https://discordpy.readthedocs.io/en/stable/ext/commands/api.html?highlight=context#discord.ext.commands.Context.command

【讨论】:

以上是关于如何获取在 discord.py 中引发错误的命令名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 discord.py 创建颜色角色

Discord.py - 从错误对象中获取上下文

Discord.py - 嵌入缩略图参数 - 如何获取命令的用户头像

Discord.py 如何从不和谐消息中读取 int 并将其作为变量发送到嵌入中

如何将错误添加到特定命令 discord.py

如何使用新的 discord.py 版本获取不和谐服务器中所有成员的列表?