discord.py重写|为我的命令出错

时间:2019-02-16 21:28:34

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

现在我完成了我的审核命令(大部分),我正尝试添加错误。我已经犯了“请指定成员”错误,但是我无法使机器人说“此成员不存在”输入无效名称时。

@client.command(name='kick',
            brief='Kicks user',
            aliases=['Kick'],
            pass_context=True)
async def kick(context, member:discord.Member=None):
# Errors
if not member:
    await context.send('Please specify a member.')
    return
# Actual Kicking
if context.author.guild_permissions.kick_members == True:
    await member.kick()
    await context.send(f"{member.mention} was kicked ")
else:
    await context.send(context.message.author.mention + ", you don't have permission")

这是我的命令之一,一切正常。如果成员明显不存在,我想显示一个错误,提示“找不到用户”。例如,k!kick ijhguiserb会让机器人说“找不到成员”,而不是在shell中给我一个错误。

我们将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

您必须定义一个error handler来处理ConversionError

from discord.ext.commands import ConversionError

@kick.error
async def kick_error(ctx, error):
    if isinstance(error, ConversionError):
        await ctx.send("Member not found")
    elif isinstance(error, BadArgument):
        await ctx.send('Member not found')
    else:
        raise error