es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregar función cuando se reaccione a un emoji en discord.py

Estoy tratando de agregar un rol cuando el usuario reacciona a estos emojis, pero no puedo lograrlo.

Configuración de roles

@bot.command()
async def roles(ctx):
    global IDMessage
    reaction   = await ctx.reply("Select your Game" + '\n' + '\n' + "- Valorant 👤" + '\n' + "- World of Warcraft ⚔" + '\n' + "- League of Legends 👤" + '\n' + "- Cs:Go ⚙️")

await reaction.add_reaction('👤')
await reaction.add_reaction('⚔')
await reaction.add_reaction('👤')
await reaction.add_reaction('⚙️')

IDMessage = reaction.message_id

Y esta es la parte del código que no me funciona.

Agregar rol en reacción

@bot.event
async def on_reaction_add(reaction, user):
  ChID = '920320584032870424'
  if reaction.message.channel.id != ChID:
    return
  if reaction.emoji == "👤":
    Valorant = discord.utils.get(user.server.roles, name="Valorant")
    await bot.add_roles(user, Valorant)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un rol cuando el usuario reacciona a un emoji, puedes usar el evento on_reaction_add. Primero, necesitas especificar el ID del canal donde se encuentra el mensaje que contiene las reacciones. Luego, puedes verificar el emoji específico al que se reaccionó y obtener el rol que deseas agregar al usuario. Finalmente, puedes usar el método add_roles para agregar el rol al usuario.

    Aquí tienes un ejemplo de cómo puedes modificar el código que proporcionaste para agregar el rol:

    @bot.event
    async def on_reaction_add(reaction, user):
        ch_id = 920320584032870424  # Reemplaza con el ID de tu canal
        if reaction.message.channel.id != ch_id:
            return
        if reaction.emoji == '💃':
            role = discord.utils.get(user.guild.roles, name='NombreDelRol')  # Reemplaza con el nombre de tu rol
            await user.add_roles(role)
    

    Simplemente reemplaza NombreDelRol con el nombre del rol que deseas agregar, y actualiza ch_id para que coincida con el ID del canal donde se encuentra el mensaje con las reacciones.

Comments are closed.