所以我想发出一个命令,删除一个成员的所有角色,并在清除他/她的角色后为该成员添加一个角色 这是我所拥有的
@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!")
现在这给他们添加了角色但没有明确角色,有人知道为什么吗?
答案 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 的层次结构低于您想要“监禁”的用户。为了解决这个问题,在公会设置中将机器人角色移到比这个用户角色更高的角色。
如果您还有任何问题,请随时在评论中提问。