@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