无法返回用户总在线状态。全局状态 [英] Can't return user total presence.status of Global

查看:0
本文介绍了无法返回用户总在线状态。全局状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

希望这能有所帮助!

这篇关于无法返回用户总在线状态。全局状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆