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

2024-09-30 16:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我已经完成了我的控制命令,我正在尝试添加错误。我已经犯了“请指定一个成员”错误,但是当输入的名称无效时,我无法使bot说“此成员不存在”。在

@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会让bot说“找不到成员”,而不是在shell中给我一个错误。在

谢谢你的帮助!在


Tags: 命令名称clientsendtrueifbot错误
1条回答
网友
1楼 · 发布于 2024-09-30 16:32:59

您必须定义一个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

相关问题 更多 >