首页 > 解决方案 > 如何从地图中排除具有特定角色的成员?[discord.js]

问题描述

我需要一个命令,它给我一个成员列表,Xrole但没有Yrole。如果member1Xrole,将其包含在列表中;如果member2Xrole Yrole,则从列表中排除。

我当前的代码:

const Xrole = message.guild.roles.cache.get('id');
message.guild.roles.cache
 .get(Xrole.id)
 .members.map((m) => m.user.tag)
 .join('\n');

这很好用,但我不知道如何排除具有额外角色的成员

标签: discord.js

解决方案


您可以Collection.filter()在集合上使用GuildMemberManage.cache

message.guild.members.cache
 .filter(
  (member) =>
   member.roles.cache.has('X Role ID') && !member.roles.cache.has('Y Role ID')
 )
 .map((m) => m.user.tag)
 .join('\n');

推荐阅读