获取我的 Discord 机器人用户的昵称

时间:2021-07-04 10:52:21

标签: discord discord.js

我可以看到我的机器人所在服务器的名称、ID 和用户编号,但我如何获取用户列表(昵称)?

2 个答案:

答案 0 :(得分:2)

您可以使用 guild.members.fetch() 来获取所有成员,然后使用 nickname 属性来接收他们的昵称。最后,我用一个简单的 filter 删除了所有机器人。

const members = (await message.guild.members.fetch())
  .filter((m) => !m.user.bot)
  .map((m) => m.displayName);
console.log(members);

作为命令的工作示例:

client.on("message", async (message) => {
  if (message.author.bot) return;
  if (message.content === "!list") {
    const members = (await message.guild.members.fetch())
      .filter((m) => !m.user.bot)
      .map((m) => m.displayName);
    console.log(members);
  }
});

client.login("your-token");

感谢 @MrMythical 建议只使用 displayName。当没有为用户设置昵称时,该属性会自动返回正常的 username

答案 1 :(得分:0)

用户没有 nicknames,只有公会成员,如果您尝试获取服务器成员昵称列表。

您可以使用下面的代码片段:

const map = message.guild.members.cache.filter(c=> !c.member.user.bot).map(c=>c.displayName).join('\n');
console.log(map)

message.guild.members.cache.filter(c=> !c.member.user.bot)

从列表中过滤机器人

.map(c=>c.displayName).join('\n');

映射数据和用户昵称,并通过分段符将它们连接起来。

如果有任何问题,请评论!