你可以使用guild。成员。fetch()
以获取所有成员,然后使用昵称
属性接收他们的昵称。最后,我用一个简单的过滤器删除了所有的机器人。
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
。当没有为用户设置昵称时,该属性自动返回正常的用户名。
用户没有昵称
,只有公会成员,如果您试图获取服务器成员昵称列表。
您可以使用下面的代码段:
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');
只映射数据和用户昵称,并通过段落分隔符将它们连接起来。
如有问题,欢迎评论!