【问题标题】:How can display roles and member count of roles如何显示角色和角色的成员数
【发布时间】:2021-06-18 22:05:08
【问题描述】:

我正在尝试使用 discord.js 创建一个命令,该命令将显示公会的角色和每个角色的成员数!到目前为止,我正在尝试的一切,它都会让我一直出错!

这是我正在尝试的代码:

const roles = message.guild.roles.cache.map(role => role).sort((a, b) => b.position - a.position).slice().join('')

我正在努力寻找一种方法来显示每个角色的成员数! 我一直在尝试这个:

const size = message.guild.roles.cache.get(roles).members.map(m=>`${m}`).size;

但它返回一个错误:

TypeError: Cannot read property 'members' of undefined

我只想展示照片:

【问题讨论】:

  • 出现错误的原因是因为您将整个数组传递给message.guild.roles.cache.get()。因此 get 方法尝试将整个数组转换为字符串,然后找到一个包含该字符串和键的条目。由于没有这样的条目,它返回未定义。您可以遍历 roles 数组并为每个数组调用 .get()

标签: javascript discord.js bots


【解决方案1】:

您可以做的是获取服务器角色,并从最高位置到最低位置对它们进行排序,然后将它们映射成您想要的样子。

这是一个例子:

let roles = await message.guild.roles.fetch();
message.channel.send(
    roles.cache.sort((a, b) => a.position - b.position).map((r) => `${r.name} - ${r.members.size}`),
  { split: true, code: true }
)

这应该像图片中的那样发送消息

【讨论】:

  • 正是我想要的!非常感谢老兄!
【解决方案2】:

使用这个:

await <message>.guild.roles.fetch(); //<message> is a placeholder for whatever variable you use for message
const roleArray = <message>.guild.roles.cache.array().sort((a, b) => b.position - a.position)
var members = roleArray.map((r) => {
members.push(r.members.size) //idk if this is right
});
//Now members and roleArray will have paired indexes (roleArray[0] has as many members as members[0])

对不起,如果它不起作用,我有时会弄乱 .toArray() 和 .array(),我没有测试它。

【讨论】:

    【解决方案3】:

    我猜这样就可以了

    function getRoleCount() { 
      message.channel.send(message.guild.roles.cache.map(x => `${x.name} - ${x.members.size}`).join('\n'));
    }
    
    getRoleCount();
    

    message.channel.send(message.guild.roles.cache 的每个元素都有namemembers 属性,对应于角色名称和具有该角色的成员。 members.size 返回拥有该角色的人数。因此函数的输出是

    roleA - 10
    roleB - 15
    

    公会中的每个角色等等

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 2021-04-06
      • 1970-01-01
      • 2013-03-31
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多