首页 > 解决方案 > 如何在 discord.js v12 中列出所有公会成员

问题描述

我正在尝试在机器人启动时列出来自指定服务器的所有用户,我正在使用 discord.js v12.5.1

const guild = client.guilds.cache.find(g => g.id === "my guild id");
guild.members.forEach(member => console.log(member.username));

我收到的错误:

guild.members.forEach(member => console.log(member));
      ^

TypeError: Cannot read property 'members' of undefined

如何解决这个问题?我如何列出所有公会成员?

标签: javascriptnode.jsdiscord.js

解决方案


guild.members是一个GuildMemberManager所以你要么需要使用它要么使用.cache成员fetch()

另一个错误是members 没有username属性,只有users 有,所以需要member.user.username改用:

const id = 'YOUR_ID';
const guild = client.guilds.cache.find((g) => g.id === id);

if (!guild)
  return console.log(`Can't find any guild with the ID "${id}"`);

guild.members
  .fetch()
  .then((members) =>
    members.forEach((member) => console.log(member.user.username)),
  );

推荐阅读