簡體   English   中英

角色成員計數僅統計發送命令的用戶的角色 discord.js v12

[英]Role member count only counts roles of the user who sent the command discord.js v12

我正在嘗試發送服務器中所有角色的列表,旁邊有成員計數。 它成功發送了角色名稱,但只計算發送命令的用戶的角色。 例如,如果用戶只有RoleA ,而不是發送RoleA - 3 RoleB - 5 RoleC - 2 ,它將發送RoleA - 1 RoleB - 0 RoleC - 0

const roles = client.guilds.cache.map(guild => {    
    return guild.roles.cache.map(role=>role.name).flat().filter(item => item !== '');
});

roles.sort().forEach(roleName => {
    let memberCount = msg.guild.roles.cache.find(role => role.name === roleName).members.size;
    
    if(roleName !== '@everyone')
        roles_as_list += '🔘 ' +roleName+ ' - ' +memberCount+ '\n';
});

msg.channel.send(roles_as_list);

它不是您的代碼的修復程序,但這里有一種方法可以更輕松地完成此操作:

let roles_as_list = msg.guild.roles.cache.filter(r => r.name !== `@everyone`).sort().map(r => `🔘 ${r.name} - ${r.members.filter(m => !m.user.bot).size}`).join(`\n`);
msg.channel.send(roles_as_list)

就像那樣,您將擁有從列表中排除機器人的服務器角色映射

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM