Discord JS 客户端只有自己在公会成员缓存中

时间:2021-06-05 01:53:49

标签: javascript node.js discord.js

所以我试图通过

访问公会的成员
client.guilds.cache.find((guild) => guild.id === id).members.cache.find((member) => member.user.username === name)

但是当机器人启动时,公会只包含自己,直到用户发送消息。

3 个答案:

答案 0 :(得分:2)

您可能尚未启用 Server Members Intent,您可以在此处启用:

Server Members Intent

启用此功能应该允许您获取公会中的所有成员。

答案 1 :(得分:1)

创建客户端时需要开启member fetch client = new Client({fetchAllMembers: true}}

请注意,在公会上调用 Fetch() 会覆盖内部缓存的公会。

答案 2 :(得分:1)

多亏了 Ethan SnowDinty 的回答,我修复了问题。

首先,转到机器人设置并启用服务器成员意图,

enter image description here

接下来,将这个添加到你实例化客户端的地方

client = new Client({ fetchAllMembers: true }}