如何使用discord.py从成员中删除所有角色

时间:2021-05-30 11:40:30

标签: python discord.py

所以我想发出一个命令,删除一个成员的所有角色,并在清除他/她的角色后为该成员添加一个角色 这是我所拥有的

@client.command()
async def prison(ctx, member: discord.Member):
   role = discord.utils.get(ctx.guild.roles, name='Prisoner')
   await member.remove_roles(member.roles)
   await member.add_roles(role)
   await ctx.send(f"{member} is imprisoned!")

现在这给他们添加了角色但没有明确角色,有人知道为什么吗?

1 个答案:

答案 0 :(得分:2)

如果您只想删除所有角色,使用 edit() 方法会更容易。像这样:

@client.command()
async def prison(ctx, member: discord.Member):
    role = discord.utils.get(ctx.guild.roles, name="Prisoner")
    await member.edit(roles=[])
    await member.add_roles(role)
    await ctx.send(f"{member} is imprisoned!")

*此外,如果您收到 MissingPermissions 错误,则意味着 Bot 的层次结构低于您想要“监禁”的用户。为了解决这个问题,在公会设置中将机器人角色移到比这个用户角色更高的角色。

如果您还有任何问题,请随时在评论中提问。