现在我完成了我的审核命令(大部分),我正尝试添加错误。我已经犯了“请指定成员”错误,但是我无法使机器人说“此成员不存在”输入无效名称时。
@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中给我一个错误。
我们将不胜感激,谢谢!
答案 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