亲爱的读者,我目前正在尝试制作角色计数器语音频道,但它仅适用于 一个角色。
我想使用一个带有角色 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。
你知道我应该查看哪个函数来获得角色计数器吗?
非常感谢。
答案 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}`);
如果我理解正确的话,这应该是你想要的。