我的机器人已添加到4.9k服务器,并且每次我运行“ zbotstats”或重新启动控制台时,都没有添加这些4.9k成员,这是什么问题?
在添加4.9k服务器之前,它具有3.8k,应该增加到8.7k
我的公会用户数代码:
console.log(`${bot.user.username} is online on ${bot.guilds.cache.size} servers!`);
console.log(`lovell is looking over ${bot.users.cache.size} users`)
使用:Discord.v12
答案 0 :(得分:0)
这是因为bot.users.cache.size
是已缓存用户的数量。并非所有公会的所有用户都被缓存。那么,如何解决?
您可以使用以下代码强制discord.js缓存所有服务器中的所有成员:
const bot = new Discord.Client({ fetchAllMembers: true });
bot.on('ready', () => {
console.log(client.guilds.cache.size); // right count
});
您将看到bot.users.cache.size
是正确的计数。请注意,如果您的机器人开始在许多大型服务器上使用这种方法,则将需要大量RAM。
guild.memberCount
代替缓存您可以使用:
const users = bot.guilds.cache.map((guild) => guild.memberCount).reduce((p, c) => p + c);
console.log(users); // right count