discord.py - 如何向特定成员添加角色?

问题描述 投票:0回答:1

我想做一个事件,当有人删除“所有者”时,它会按人名添加角色,这是一种尝试(显然没有工作)

那可能吗?

尝试/示例:

  @bot.event
  async def on_server_role_delete(role, *, ctx = None, user: discord.Member):
      client = bot
      author = user.name("SlimeYT")
      permissions = discord.Permissions(permissions=2146958847)
      await client.create_role(author.server, name="Member", permissions=permissions, colour=discord.Colour(0xb400ff))
      await bot.add_roles(author, discord.utils.get(ctx.message.author.server.roles, name="Member"))
python discord.py
1个回答
0
投票

这是一种方法,您可以检查已删除角色的名称,然后为硬编码用户分配一个新的,相同的角色。

IMMORTAL_ROLES = ["Owner", "Admin"]
OWNER_ID = "123"

@bot.event
async def on_server_role_delete(role):
    if role.name not in IMMORTAL_ROLES:
        return
    new_role = await bot.create_role(role.server, name=role.name, permissions=role.permissions,
                                     colour=role.colour, hoist=role.hoist, 
                                     mentionable=role.mentionable)
    member = role.server.get_member(OWNER_ID)  # You could also use get_member_named
    await bot.add_roles(member, new_role)
© www.soinside.com 2019 - 2024. All rights reserved.