我想将公会中的所有角色添加到用户。但是我不知道如何。
我现在的代码:
@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
来做到这一点,但我希望用户的所有角色都替换为所有公会角色。
答案 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!")
参考: