在Discord中查找具有2个角色的成员[使用Discordjs]

时间:2020-07-16 21:34:41

标签: discord.js

我正在使用discord.js制作一个discord机器人,我要做的是让该机器人找到具有角色A B的成员,并将其列出在嵌入式消息中。目前,我有:

else if (message.content === (!'guns') && message.channel.id == '732740415056380044') {

        let team = message.guild.roles.find('name', 'WindStar Team');
        let awper = message.guild.roles.find('name', 'AWPer');
        let rifler = message.guild.roles.find('name', 'Rifler');

        const Members1 = awper = awper.filter(val => !team.includes(val)).map(member => member.displayName);
        const Members2 = rifler = rifler.filter(val => !team.includes(val)).map(member => member.displayName);

        const embedmesage = new Discord.MessageEmbed()
            .setTitle('Preferred Guns')
            .setColor(0x00AE86)
            .addFields(
                { name: 'AWPers', value: `${Members1.join('\n')}` },
                { name: 'Riflers', value: `${Members2.join('\n')}` },
            );
    message.channel.send(embedmesage);
    return console.log('Preferred gun roles command for windstar team executed');
    }

基本上,我正在尝试对具有WindStar Team角色和AWPer角色的成员进行交叉检查,并将所有具有这些角色的成员的列表发送到嵌入中。我还试图通过WindStar团队角色和Rifler角色对成员进行交叉检查,并将这些成员的列表发送到嵌入中。

2 个答案:

答案 0 :(得分:0)

let awper = message.guild.roles.find('name', 'AWPer');

awper.members //Either .toArray() or .map(m => m.displayName)

我认为,我没有让我的机器人在我面前进行测试

答案 1 :(得分:0)

我认为现在可能为时已晚,但无论如何我都会给出我的解决方案。 (使用 discord.js v12.5.1)

<Message> = 您的消息实例

let roleMembers = <Message>.guild.roles.cache.filter(role => role.name === "AwPer" && role.name === "WindStar").members

// displaying the role members
roleMembers.map(member => member.user.username)

基本上,您将获得公会中的所有角色缓存并过滤它们以显示您想要的角色。

这应该有效^。除非你使用的是 discord.js 的破坏版本