Python表示“ ValueError:没有足够的值要解压(预期2,得到1)”,指的是第四行代码。我已经搜索了教程,因为我是discord.py的新手,而且似乎都没有帮助。
我尝试在不拆分名称和区分符的情况下禁止用户使用,但我也无法使其正常工作。
@client.command()
async def unban(ctx, *, member):
banned_users = await ctx.guild.bans()
member_name, member_discriminator = member.split('#')
for ban_entry in banned_users:
user = ban_entry.user
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.guild.unban(user)
await ctx.send(f'Unbanned {user.mention}')
return
答案 0 :(得分:0)
您为什么要拆分它们?将user
转换为discord.User
对象,然后取消禁止该用户(由于该用户不再是公会成员,因此不能再成为discord.Member
对象),这将更加有意义。>
@client.command()
async def unban(ctx, *, user=None):
try:
user = await commands.converter.UserConverter().convert(ctx, user)
except:
await ctx.send("Error: user could not be found!")
return
try:
bans = tuple(ban_entry.user for ban_entry in await ctx.guild.bans())
if user in bans:
await ctx.guild.unban(user, reason="Responsible moderator: "+ str(ctx.author))
else:
await ctx.send("User not banned!")
return
except discord.Forbidden:
await ctx.send("I do not have permission to unban!")
return
except:
await ctx.send("Unbanning failed!")
return
await ctx.send(f"Successfully unbanned {user.mention}!")
这样做的好处是您可以指定ID,提及,名称或名称+区分。