如何获取公会 Discord.js 中的成员列表

Posted

技术标签:

【中文标题】如何获取公会 Discord.js 中的成员列表【英文标题】:How to Get a List of Members in a Guild Discord.js 【发布时间】:2020-11-21 14:50:40 【问题描述】:

我正在尝试使用 Discord.js v12 让公会中的所有成员。这就是我所拥有的:

    const list = client.guilds.cache.get("720352141709148200");
    list.members.forEach(member => 
       //do stuff with guild memebrs here
    

我看过这个stack overflow question,但我认为它已经过时了,因为它会抛出一个错误,说guilds 是未定义的。这是我在上面修改过的代码时遇到的错误:

TypeError: list.members.forEach is not a function

【问题讨论】:

【参考方案1】:

正如 Jakye 所指出的,您需要将list.members 更改为list.members.cache

但是,您不能使用.forEach(),因为这是一个数组方法,list.members.cache 返回一个 Discord 集合 (Discord.Collection())。

你可以用.each()代替.forEach()

list.members.cache.each(member => 
  // do stuff with guild members here
);

或者,您可以使用 .array() 将集合转换为值数组,然后在其上使用 .forEach()

list.members.cache.array().forEach(member => 
  // do stuff with guild members here
);

【讨论】:

【参考方案2】:

由于您使用的是 Discord JS v12,因此您需要使用 list.members.cache.forEach() 而不是 list.members.forEach()

【讨论】:

以上是关于如何获取公会 Discord.js 中的成员列表的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 如何感知公会成员何时更改活动

如何在 discord.js v12 中列出所有公会成员

无法通过 Discordjs v13 获取所有公会成员

Discord.js 让所有成员陷入公会问题

Discord.js - 发送消息的计数器,DM给公会的所有成员

discord.js - 从所有成员中删除特定角色