【问题标题】:Discord.js any way to get all rolesDiscord.js 以任何方式获取所有角色
【发布时间】:2020-08-25 15:51:40
【问题描述】:

如何使用 Discord.js 获取服务器中的所有角色?我有message.guild.roles,但从那里对我来说是个谜。

【问题讨论】:

  • 我要做的第一件事是检查文档,其中指出Guild.rolesRoles 的集合。就我而言,它是一个常规数组。因此,要获得所有需要迭代的角色。 for ( let i = 0; i < roles.length; i++ ) { let role = roles[ i ]; ... }

标签: javascript discord.js


【解决方案1】:

正如其他答案和您的问题message.guild 所述,确实有一个属性roles

.roles
该公会中的角色集合。键是角色的ID,值是角色
类型:Collection <Snowflake, Role>

一个集合扩展了 JavaScript 类型 map 并有一些功能供您使用。

您确实拥有message.guild.roles 公会(服务器)的所有角色。
现在,如果您想对它做任何事情,例如列出它们,请检查 Collection / 类型映射中的函数。

message.guild.roles.forEach(role => console.log(role.name, role.id))

将在控制台中打印每个角色名称 + id。

【讨论】:

    【解决方案2】:
     let rolemap = message.guild.roles.cache
                .sort((a, b) => b.position - a.position)
                .map(r => r)
                .join(",");
                if (rolemap.length > 1024) rolemap = "To many roles to display";
                if (!rolemap) rolemap = "No roles";
        const embed = Discord.MessageEmbed()
        .addField("Role List" , rolemap)
        message.channel.send(embed);
    

    这里如何获得公会 discord.js v12 中的所有角色

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 2021-12-22
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多