Python: función de activación al mencionar un bot - discord.py

CorePress2024-01-25  9

Actualmente estoy trabajando en un bot de Discord usando discord.py. Mi pregunta es, ¿cómo puedo activar una función cuando menciono el bot? Estoy pensando en una declaración if, pero no sé qué variables necesito llamar.

if [mention] == [bot id]:
    # Here comes the code

El resto del código funciona correctamente. Sería bueno si pudiera obtener un fragmento de código :)



------------------------------------

Puedes hacer esto en tu evento/oyente on_message.

@bot.event
async def on_message(message):
    if message.author == bot.user:
        return

    if bot.user.mentioned_in(message) and message.mention_everyone is False:
        await ctx.send("The message")

La parte message.mention_everyone impide que el bot responda a @everyone o @here y la primera declaración if impide que el bot responda a sí mismo.



------------------------------------

Puedes utilizar el evento on_message para comprobar si hay una mención en el mensaje o si todo el mensaje es sólo una mención. Una simple declaración if debería funcionar

if f"<@!{bot.user.id}>" in message.content:
    ctx.channel.send("You mentioned me!")

1

En primer lugar, en el evento on_message no hay ctx; en segundo lugar, .send es una rutina, por lo que se debe esperar. En tercer lugar, hay una manera mucho mejor, la respuesta de NerdGuy.Ahmad lo explica bastante bien

 Łukasz Kwieciński

28/03/2021 a las 16:45

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare