client.on('presenceUpdate', (oldPresence, newPresence) => { if (!newPresence.activities) return false; newPresence.activities.forEach(activity => { if (activity.type == 'STREAMING') { //Do stuff if someone starts a stream }He estado desarrollando un bot de Discord para el servidor Discord de mi amigo que notifica automáticamente si alguien comienza a transmitir. Todo estaba funcionando bien y elegante, pero ayer sucedió algo que no puedo comprender.
Una persona comenzó a transmitir y el bot lo vio, por lo que envió un mensaje notificando a las personas como debería. Sin embargo, esa misma transmisión estaba llegando a su fin, cuando el bot decidió "Voy a enviar 2 notificaciones más de que la transmisión ha comenzado". Estas notificaciones estaban separadas por minutos entre sí.
¿Podría alguien ayudarme con este problema? Proporcioné un pequeño fragmento de código de mi código que verifica si una persona comienza a transmitir. ¿Hay alguna forma de evitar que el bot envíe más notificaciones si el usuario ha estado transmitiendo? Solo me gustaría que el bot notifique esto una vez cuando alguien comience a transmitir, no varias veces con respecto a una transmisión específica.
presenceUpdate también emitiría, cuando alguien entra en dnd o inactivo, así como, al cambiar de juego.
Entonces, su caso podría ser que el transmisor se quedó inactivo y en línea, o cambió la aplicación que actualizó sus actividades y, por lo tanto, su presencia.
Una posible solución sería tener una base de datos (o una colección temporal) que rastree las transmisiones activas para que solo envíe un mensaje por transmisión y luego espere hasta que se detenga la transmisión.