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.

discord.py, el evento on_member_update() no detecta actualizaciones de estado, pero si detecta otros eventos.

Aún estoy aprendiendo python/discord.py y estoy intentando construir un bot sencillo para detectar cambios en el estado de un usuario (en línea/fuera de línea); a continuación se muestra una implementación que debería detectar todas las actualizaciones de miembros.

from discord.ext import commands
import discord

intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix="$", intents=intents)

target_channel_id = <id aquí="">

@bot.event
async def on_ready():
    print("bot listo")

@bot.event
async def on_member_update(before, after):
    channel = bot.get_channel(target_channel_id)
    await channel.send("¡Miembro actualizado!")
    print("¡miembro actualizado!")

bot.run("<token aquí="">")

Tengo mis intents habilitados correctamente, como lo demuestra el bot respondiendo a los cambios de nombre/rol, pero parece que no sucede nada con los cambios de estado. Como dije, soy nuevo en python y discord.py, así que no estoy seguro si simplemente no sé algo, pero en la documentación dice que on_member_update() debería ser llamado con cambios de estado, así que no sé cuál es el problema. ¡Gracias por leer!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que la implementación proporcionada debería funcionar para detectar los cambios de estado, ya que la función on_member_update() debería ser llamada cada vez que cambia el estado de un miembro. Sin embargo, es posible que la variable del canal no esté siendo definida correctamente o que el bot no tenga permiso para enviar mensajes a ese canal. Puede ser útil agregar instrucciones de impresión para probar si la función está siendo llamada y si la variable del canal está definida correctamente. Además, puede ser útil verificar los permisos del bot y asegurarse de que tenga permiso para enviar mensajes al canal especificado.

Comments are closed.