discord.py:将公会中的所有角色添加到用户

时间:2020-06-11 17:46:39

标签: python discord.py

我想将公会中的所有角色添加到用户。但是我不知道如何。

我现在的代码:

@client.command()
async def addrole(ctx, member: discord.Member):
    roles = get(member.guild.roles)

    if ctx.message.author.guild_permissions.administrator:
        await member.edit(roles=[roles])
        await ctx.send(f'Alle Rollen des Servers {member.mention} hinzugefügt!')
    else:
        await ctx.send('Du hast keine Berechtigung!')

我知道,我可以使用add_roles来做到这一点,但我希望用户的所有角色都替换为所有公会角色。

1 个答案:

答案 0 :(得分:1)

如果您使用add_roles(),则用户已经拥有的任何角色都将被忽略,而他们没有的所有角色将被添加:

@client.command()
async def addroles(ctx, member: discord.Member):
    for r in ctx.guild.roles:
        try: # it will error if the bot has insufficient perms to give a role
            await ctx.author.add_roles(r)
        except:
            print(f"{r.name} couldn't be given to {member}")
    await ctx.send(f"Successfully gave {member} all the roles I could!")

参考: