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)
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étodoadd_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:
Simplemente reemplaza
NombreDelRol
con el nombre del rol que deseas agregar, y actualizach_id
para que coincida con el ID del canal donde se encuentra el mensaje con las reacciones.