多个角色作为 discord.js v12 的角色计数器

时间:2021-07-16 17:35:53

标签: discord.js

亲爱的读者,我目前正在尝试制作角色计数器语音频道,但它仅适用于 一个角色。

我想使用一个带有角色 ID 的数组并构建一些显示在语音频道名称中..

目前我有这个代码:

module.exports = async (client) =>{
    const guild = client.guilds.cache.get('858804331829395477');
    setInterval(() =>{
       // const memberCount = guild.memberCount;
        let memberCount = guild.members.cache.filter(member => !member.user.bot).size;

        roleids = [
            '858813502747181086', // Ceo
            '858817762108112927' //Bots

        ];
       
            roleids.forEach(findrole =>{
               const rolesize = guild.roles.cache.get(findrole).members;
                console.log(`Got ${rolesize.size} members with that role.`);
  
            })
    

            const rolechannel = guild.channels.cache.get('865628426392174592');
            rolechannel.setName(`Role Member: `);

           
        const userchannel = guild.channels.cache.get('865626409593864212');
        userchannel.setName(`Total Members: ${memberCount.toLocaleString()}`);

       console.log('Updating Member Count');
    }, 5000);
}

我希望这是使我在一个角色 1 成员和另一个角色 7 中拥有的两个角色 ID(或更多)的总和......但它打印了 forEach 循环的 1 和 7 cuz。

你知道我应该查看哪个函数来获得角色计数器吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

const roleMembers = new Set();
roleids.forEach(findrole =>{
    const rolesize = guild.roles.cache.get(findrole).members;
    roleMembers.set(rolesize.map(x => x.id));
})
// ...
rolechannel.setName(`Role Member: ${roleMembers.size}`);

如果我理解正确的话,这应该是你想要的。