为什么discord.js不让我做guild.members.fetch()



当我尝试运行membermanager.fetch();(文档(时,我得到错误Error [GUILD_MEMBERS_TIMEOUT]: Members didn't arrive in time.

我的网络连接很好,我试着给它更多的时间。这种情况既发生在我的测试服务器上,它有大约10个成员,也发生在它打算使用的服务器上,大约有30个成员。membermanager.cache对于我的用例来说是不够的。这不是一个暂时的问题,因为昨天也发生了这种情况。我的discord.js版本是12.4.1,我今天早上更新了它。如果有帮助的话,机器人是用打字脚本写的。

我注意到,如果我将query参数作为非空字符串传递,或者将user作为用户id数组传递,它是有效的,但我认为discord.js源代码调用的是完全不同的方法。

这让我很为难。如果你能帮忙,我将不胜感激。

在这里回答我自己的问题。

原来我没有GUILD_MEMBERS的意图集。快速修复:

import { Client, Intents } from "discord.js";
export const client: Client = new Client();

包括意图的东西:

import { Client, Intents } from "discord.js";
let intents = new Intents(Intents.NON_PRIVILEGED);
intents.add('GUILD_MEMBERS');
export const client: Client = new Client({ ws: {intents: intents} });

以及discord开发者门户中的修复程序。这就是它所需要的。

最新更新