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!
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.