Discord.py重写自定义错误

时间:2018-11-08 15:53:47

标签: python python-3.x discord.py discord.py-rewrite

我对编码非常陌生,我想知道如何在此处实现自定义错误,例如“缺少开发人员角色”:

describe('Running user tests', () => {
  beforeEach((done) => {
    console.log('user before each');
    done();
  });

  it('user test #1',  () => {
    console.log('in user test 1');
  });

  it('user test #2',  () => {
    console.log('in user test 2');
  });
});

我有一个像这样的简单处理程序

    @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()

但总是输出无效命令

1 个答案:

答案 0 :(得分:0)

您可以检查error的类以确定要处理的错误类型。如果将其与特定于命令的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>")