Discord.py-重写当出现未知命令或其他错误时发送错误消息



我希望能够发送类似await ctx.send("Error: Unknown command. Do -help for acceptable commands."或类似的消息(仅供参考,我不是在问如何删除Help is already a defined function或类似的东西。(;但我不知道如何为非命令的东西生成错误消息,比如如果命令出现错误,比如他们没有输入任何参数,那么我可以为@command.error生成错误,然后我定义它。但我不确定如何启动。如果可能的话,有没有办法在代码的底部检查错误是什么?比如,如果他们需要admin,但他们缺少它,那么if isinstance(error, commands.MissingPermissions):,或者如果他们需要允许服务器成员向他们发送消息,也许它会有不同的检查内容?

TLDR;我希望能够在代码的底部有一个东西,检查是否存在错误,如果是,如果是由不存在的命令引起的(那么它会用ctx.send说明一些内容(,但如果是由缺少管理员或缺少角色引起的,或者可能是他们需要允许服务器成员在隐私设置中对他们进行dm处理,那么它也会说明一些内容。我不想为每个命令定义一个错误。

额外

我还有一个命令需要数字才能工作,我想要一个代码块来检查它是否是整数,如果不是,则给出一个错误,说它需要是数字。然后检查它是否为正数,如果不是,则给出错误。

Discord.py有一个on_command_error事件,它将错误作为参数。你可以这样使用它:
@bot.event
async def on_command_error(ctx, error):
await ctx.send(f"An error occured: {str(error)}")

下面列出了各种不和谐的解释
如果你想为每个错误自定义一条消息,你可以这样做:

@bot.event
async def on_message_error(ctx, error):
if isinstance(error, discord.ext.commands.errors.CommandNotFound):
await ctx.send("Unknown command")

最新更新