本文介绍了discord.py 重写 |为我的命令出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我完成了我的审核命令 [大部分],我正在尝试添加错误.我已经犯了请指定一个成员"错误,但我无法让机器人说这个成员不存在"输入无效名称时.

Now that I finished my moderation commands [mostly], I am trying to add errors in. I already made the "please specify a member" error, but I cannot manage to make the bot say "this member does not exist" when an invalid name is input.

@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 中给我一个错误.

This is one of my commands, where everything is working. I would like an error which says "User not found" if the member, obviously, doesn't exist. For example, k!kick ijhguiserb would make the bot say, "Member not found," rather than giving me an error in the shell.

我们将不胜感激,谢谢!

Help would be appreciated, thanks!

推荐答案

你必须定义一个 错误处理程序来处理ConversionError

You'll have to define an error handler to handle the ConversionError

from discord.ext.commands import ConversionError

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

这篇关于discord.py 重写 |为我的命令出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 16:03