无法返回用户总在线状态。全局状态
我想检索使用我的机器人的所有行会的所有用户。 我需要的是这些内容的全部(全局):
presence?.status == "offline")
presence?.status == "online")
presence?.status == "DND")
presence?.status == "bots")
我所做的是,它返回0:
let userCount = message.client.users.cache.filter(member => member.presence?.status == "offline").size
console.log("total",userCount)
如果我想以合计(全局)的形式返回正常工作的所有人:
let userCount = message.client.users.cache.size;
console.log("total",userCount)
如果我这样做,我会得到它们,但要分开,我需要一个总数。
client.guilds.cache.forEach((guild) => {
const total = guild.members.cache.filter(member => member.presence?.status == "online").size
console.log(total)
}
你知道怎么做吗?我在服用V13
问候
解决方案
使用forEach()
可能是一种可行的解决方案。我们将使用增量运算符(++
)。例如,下面这样的代码应该可以工作:
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);
希望这能有所帮助!
相关文章