无法返回用户总在线状态。全局状态

2022-07-24 00:00:00 javascript discord.js

我想检索使用我的机器人的所有行会的所有用户。 我需要的是这些内容的全部(全局):

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);

希望这能有所帮助!

相关文章