我想做一个命令,告诉我机器人所在的服务器中的用户总数。我搜索了一下怎么做,发现是这样的:
const users = await client.users.cache.size
但当我使用它时,机器人告诉我它只为一个用户服务。
client.users
是在任何点缓存的所有用户对象,由它们的ID映射。
我不认为有一个单一的方法或属性来获取bot所在的每个服务器的成员总数。您可能可以迭代客户机当前处理的guilds
并取而代之地获取成员。
应采取以下措施:
async function getTotalNumberOfMembers(client) {
const guilds = client.guilds.cache;
let numberOfMembers = 0;
// resolves once members from every guild is fetched
await Promise.all(
guilds.map(async (guild) => {
const members = await guild.members.fetch();
numberOfMembers += members.size;
}),
);
return numberOfMembers;
}
// ...
const total = await getTotalNumberOfMembers(client);
console.log(total);
编辑:是的,您还可以使用.MemberCount
属性:
js prettyprint-override">function getTotalNumberOfMembers(client) {
const guilds = client.guilds.cache;
let numberOfMembers = 0;
guilds.each((guild) => {
numberOfMembers += guild.memberCount;
});
return numberOfMembers;
}
const total = getTotalNumberOfMembers(client);
这不再起作用,它只循环通过大约4个成员才停止。自从补丁之后,我需要添加什么新的东西吗?我注释了整个循环主体,只放了一个system.println member.geteffectiveName(),每次只打印4个名字,当有大约80人不和时。
你好,我一直在尝试自动化监控一个站点,但它“响应”多个文档,我想知道如何浏览他们或选择哪一个我想要分析。 代码非常简单: 站点这样“回应”: 它不允许我发布图片,但这里有链接: 如何选择不同的单据而不是第一个单据?
问题内容: 我想知道实时有多少用户连接到我的应用程序。我想到了要打开的会话数循环的想法,但是我找不到该怎么做的方法。如果您有另一种方法可以提出您的建议。 问题答案: 到目前为止,我发现的最佳解决方案是计算会话的创建和销毁时间。 然后在VaadinServlet init()方法中添加SessionListeners
问题内容: 我已经看到了以下问题,但并不能完全让我知道我要去的地方:[如何获取Python当前模块中所有类的列表?](尝试这个:http://codingdict.com/questions/163282 import sys current_module = sys.modules[name] 在您的情况下: import sys, inspect def print_classes(): fo
我尝试在Kafka中创建新主题时启动动态消费者,但动态启动的消费者总是缺少起始/第一条消息,但从那里开始消费消息。我正在使用kafka-python模块,并且正在使用更新的KafkaConsumer和KafkaProducer。 请建议一些解决这个问题的方法,或者我必须包含在我的生产者和消费者实例中的任何配置。
问题内容: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 是否有用于获取数据库中所有集合的命令?其他数据类型(哈希,列表,排序集)又如何呢? http://redis.io/topics/data-types 问题答案: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 不管您的密钥是哪种数据类