Discord.py 重写自定义错误
Discord.py Rewrite custom errors
我是编码的新手,我想知道如何在此处实现 "missing a dev role" 等自定义错误:
@bot.command()
@commands.has_any_role("Temp.", "Owner")
async def sh(ctx):
await ctx.message.add_reaction(':true:508022488093949973')
await ctx.send("<a:siren:507952050181636098> `Shutting down` <a:siren:507952050181636098>")
await bot.logout()
我有一个像这样的简单处理程序
@bot.event
async def on_command_error(ctx, error):
await ctx.message.add_reaction(':false:508021839981707304')
await ctx.send("<a:siren:507952050181636098> `Invalid command` <a:siren:507952050181636098>")
但它总是输出无效命令
您可以检查 error
的 class 以确定您正在处理的错误类型。如果将此与特定命令 error handler 配对,您可以编写一个响应,告诉用户他们缺少什么:
@sh.error
async def sh_error(ctx, error):
if isinstance(error, commands.CheckFailure):
await ctx.send("You do not have the correct roles Temp. or Owner")
@bot.event
async def on_command_error(ctx, error):
if not isinstance(error, commands.CheckFailure):
await ctx.message.add_reaction(':false:508021839981707304')
await ctx.send("<a:siren:507952050181636098> `Invalid command` <a:siren:507952050181636098>")
我是编码的新手,我想知道如何在此处实现 "missing a dev role" 等自定义错误:
@bot.command()
@commands.has_any_role("Temp.", "Owner")
async def sh(ctx):
await ctx.message.add_reaction(':true:508022488093949973')
await ctx.send("<a:siren:507952050181636098> `Shutting down` <a:siren:507952050181636098>")
await bot.logout()
我有一个像这样的简单处理程序
@bot.event
async def on_command_error(ctx, error):
await ctx.message.add_reaction(':false:508021839981707304')
await ctx.send("<a:siren:507952050181636098> `Invalid command` <a:siren:507952050181636098>")
但它总是输出无效命令
您可以检查 error
的 class 以确定您正在处理的错误类型。如果将此与特定命令 error handler 配对,您可以编写一个响应,告诉用户他们缺少什么:
@sh.error
async def sh_error(ctx, error):
if isinstance(error, commands.CheckFailure):
await ctx.send("You do not have the correct roles Temp. or Owner")
@bot.event
async def on_command_error(ctx, error):
if not isinstance(error, commands.CheckFailure):
await ctx.message.add_reaction(':false:508021839981707304')
await ctx.send("<a:siren:507952050181636098> `Invalid command` <a:siren:507952050181636098>")