ban命令,如果member是None: [discord.py]


@bot.command()
@commands.has_permissions(ban_members=True)
async def ban (ctx, member:discord.User, reason =None):
if member is None:
await ctx.channel.send("I have no one to ban")
return
if member == ctx.message.author:
await ctx.channel.send("you can't ban yourself")
return
await ctx.guild.ban(member)
await ctx.channel.send(f"{member} was banned")

这是我的代码

我需要修复:

if member is None:
await ctx.channel.send("I have no one to ban")
return

错误:

成员是缺少的必需实参。

像这样将member的默认值设置为None,那么它将不再是必需的参数

async def ban (ctx, member:discord.User = None, reason =None):

将此添加到您的代码中:

@ban.error
async def ban_error(ctx, error):
if isinstance(error, commands.MemberNotFound):
await ctx.send('I could not find that member...')

这是一个错误处理器

它还可以防止成员日志记录:D

最新更新