【发布时间】:2021-05-29 11:15:25
【问题描述】:
我需要让所有成员加入 Discord 服务器/公会。而且这个解决方案必须在人数最多的不和谐服务器上运行。
我已经尝试了以下
async function getMembers(message){
console.log('getting members')
let members = await message.guild.members.fetch();
console.log('members are \n'+members);
}
和
message.guild.members.cache.array().forEach(member => {})
但是第一个代码块永远不会得到承诺,如果我在没有等待的情况下尝试它,它会说它以 {} 的形式等待。虽然第二种解决方案不会让每个人都进入服务器,但我很确定只有缓存中的人。 IE。在我有 6 人的测试服务器中,它只会得到其中 2 人。
编辑很长一段时间后,第一个块会抛出一个错误,说“成员没有及时到达。”所以我假设它正在超时。
老实说,我很困惑,只想知道公会的所有成员;-;
【问题讨论】:
-
非常不建议在公会内部拉取所有成员,因为拉取一个人的过程需要一段时间,而拉取数十、数百甚至数千人只是一个真实的机器人过量。如今,大多数 Discord 用户已经被缓存,因此我强烈建议使用
message.guild.members.cache.forEach(member => console.log(member.user.username))(只需输入member就会向您的控制台发送数百个对象及其属性的垃圾邮件)。
标签: node.js discord.js