Discord js机器人缓存问题



试图在discord公会(服务器(上获取用户列表,但每当我获取列表时,它总是返回1个用户,即机器人本身。尝试执行

console.log(client.guilds.cache.get(config.SERVER_ID).members.cache.size)
console.log(client.guilds.cache.get(config.SERVER_ID).memberCount)

第一行返回1,第二行返回420(discord服务器上的用户数(。我无法更新客户端的缓存。如有任何帮助,将不胜感激

您的第一行返回1,因为您的bot是服务器上唯一缓存的用户。第二行返回正确的数量,因为Guild.memberCount不需要缓存任何用户,它直接从公会获取数据。

如果你想缓存一个公会的每个成员,你可以使用GuildMemberManager.fetch()

client.guilds.cache
.get(config.SERVER_ID)
.members.fetch()
.then((members) => {
console.log(members.size); // 420
// code...
});

最新更新