Quiero recuperar a todos mis usuarios de todos los gremios donde se usa mi bot. Lo que necesito es un total (global) de estos:
presence?.status == "offline") presence?.status == "online") presence?.status == "DND") presence?.status == "bots")bueno, lo que hice es esto y devolvió 0:
let userCount = message.client.users.cache.filter(member => member.presence?.status == "offline").size console.log("total",userCount)Si quiero devolver a todos como un total (global) que funciona normalmente:
let userCount = message.client.users.cache.size; console.log("total",userCount)si hago esto los obtengo pero por separado, necesito un total.
client.guilds.cache.forEach((guild) => { const total = guild.members.cache.filter(member => member.presence?.status == "online").size console.log(total) }¿Alguna idea de cómo hacer esto? estoy en v13
Saludos
Usar forEach() podría ser una posible solución. Vamos a utilizar el operador de incremento ( ++ ). Por ejemplo, algo como esto debería funcionar:
let userCount = 0; client.guilds.cache.forEach((guild) => { Array.from(guild.members.cache.filter(member => member.presence?.status === 'online').values()).forEach(() => userCount++); }); console.log(userCount);¡Esperaba que esto ayudara!