首页 > 解决方案 > discord.py 中的公会参数

问题描述

这是我的代码,显然,出了点问题……我不知道在定义命令时将公会参数放在哪里,但看起来我没有把它放在正确的位置

async def unban(guild, 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}** !')
      await user.send(f"You have been unbanned from **{guild.name}")
      return```

标签: pythondiscord.pydisco

解决方案


所以你实际上可以在这篇文章中取出公会要求async def unban(guild, ctx, *, member):并完成它async def unban(ctx,*,member: discord.Member):

你需要放 member: discord.Member 而不仅仅是 member!

然后把 ctx 放在前面,{guild.name}看起来像{ctx.guild.name}

那么它应该看起来像这样!

@client.command()
async def unban( ctx, *, member:discord.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 **{member}** !')
      await member.send(f"You have been unbanned from **{ctx.guild.name}")
      return

推荐阅读