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.

Cómo hacer que el bot espere por 2 reacciones.

Quiero que mi bot de Discord.py espere 2 reacciones…

El código:

def check(reaction, user):
    return user == message.author and str(reaction.emoji) == '1️⃣'
def check(reaction, user):
    return user == message.author and str(reaction.emoji) == '2️⃣'

mm = await message.send(embed=embed1)
await mm.add_reaction("1️⃣")
await mm.add_reaction("2️⃣")
reaction, user = await bot.wait_for("reaction_add", check=check, timeout=180)
reaction, user = await bot.wait_for("reaction_add", check=check, timeout=180)
if reaction:
    await mm.edit(embed=embed1)
elif reaction:
    await mm.edit(embed=embed3)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que tu bot de discord.py espere 2 reacciones, debes definir dos funciones separadas check() para cada reacción, como se muestra en el código que proporcionaste.

    Después de agregar ambas reacciones al mensaje usando await mm.add_reaction(), puedes usar el método bot.wait_for() dos veces para esperar cada reacción por separado.

    reaccion1, usuario1 = await bot.wait_for("reaction_add", check=check1, timeout=180)
    reaccion2, usuario2 = await bot.wait_for("reaction_add", check=check2, timeout=180)
    

    En este ejemplo, check1() es la función que verifica la reacción 1️⃣, y check2() verifica la reacción 2️⃣.

    Después de esperar ambas reacciones, puedes realizar las acciones necesarias en función de las reacciones utilizadas.

    if reaccion1 and reaccion2:
        await mm.edit(embed=embed1)
    elif reaccion1:
        await mm.edit(embed=embed2)
    elif reaccion2:
        await mm.edit(embed=embed3)
    

    Este código verificará si se utilizaron ambas reacciones, si solo se utilizó la primera reacción o si solo se utilizó la segunda reacción, y luego realizará la acción correspondiente en función de eso.

Comments are closed.