首页 > 解决方案 > 如何获取大型公会 discord.js 的所有成员

问题描述

我正在尝试获取大型公会所有成员的 ID。这个公会有大约2000人。我正在使用这个:

const list = client.guilds.get("id"); 
list.fetchMembers().then(r => {

    r.members.array().forEach(r => {
    let userid = r.id        
    msg.channel.send(userid)
    })
});

它适用于我的 3 人测试公会,但是一旦我与大型公会一起尝试,我就会收到此错误

(node:8632) UnhandledPromiseRejectionWarning: Error: Members didn't arrive in time.
at Timeout._onTimeout (c:\Users\Han75\Documents\bot\node_modules\discord.js\src\client\Client.js:436:7)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7)

我知道它是因为超时。我该如何阻止这个?

标签: javascriptnode.jsnpmdiscord.js

解决方案


假设您使用的是最新的稳定版本 (v12),您可以使用没有参数的GuildMemberManager#fetch来获取公会的所有成员。


推荐阅读