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.

El bot discord.py funciona para el evento de mensaje o para el comando de ping, no puede hacer ambas cosas simultáneamente.

Quería que el bot dijera “pong” cuando yo escribiera el comando !ping, y cuando alguien escribiera “kiddo” en un mensaje, el bot respondería con un “hola”. Pero cuando comento el segundo comando, el comando ping funciona, y cuando elimino el comentario del evento kiddo, el comando ping deja de funcionar, ¿qué está pasando aquí?

@client.command()
async def ping(ctx):
    message = await ctx.send("¡Pong!")
    await message.edit(content = f"¡Pong! {round(client.latency*1000,2)} ms")

@client.event
async def on_message(message):
    if message.content.startswith("kiddo"):
        await message.channel.send("¿hola?")
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el evento on_message está entrando en conflicto con el comando ping. El evento on_message se activa para cada mensaje, incluyendo el comando !ping. Para solucionar esto, puedes agregar una verificación al evento on_message para asegurarte de que solo se active cuando el mensaje no comience con !:


    @client.event
    async def on_message(message):
    if not message.content.startswith('!'):
    if message.content.startswith("kiddo"):
    await message.channel.send("¿Hola?")

Comments are closed.