机器人将服务器成员添加到其成员数的问题discord.js

时间:2020-09-29 05:06:21

标签: javascript node.js discord discord.js

我的机器人已添加到4.9k服务器,并且每次我运行“ zbotstats”或重新启动控制台时,都没有添加这些4.9k成员,这是什么问题?

enter image description here

在添加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

1 个答案:

答案 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