Discord py - 反应角色

Discord py - reaction role

** 想要做出反应角色,如果用户在特定频道上反应消息将获得角色 但它不起作用**

@client.event
async def on_reaction_add(member):
  ChannelID = 932268491556405268
  role = discord.utils.get(member.guild.roles, id=941124409341648957)
  if member.message.channel.id != ChannelID:
    return
  if member.emoji == "1️⃣":
    await member.add_roles(role, reason=None, atomic=True)

您可以使用 on_raw_reaction_add 中的 payload 对象来做您想做的事情

@client.event
async def on_raw_reaction_add(payload):  # Requires Intents.reactions
    channel = client.get_channel(...)
    guild = client.get_guild(payload.guild_id)
    role = discord.utils.get(guild.roles, id=...)

    if str(payload.emoji) == "1️⃣":
        await payload.member.add_roles(role, atomic=True)
        await channel.send(...)