Discord.js以任何方式获得所有角色

时间:2019-11-09 15:08:53

标签: javascript discord.js

如何使用Discord.js获得服务器中的所有角色?我已经message.guild.roles了,但是从那开始我还是一个谜。

3 个答案:

答案 0 :(得分:1)

您可以像这样使用message#guild#roles。

var roles = message.Guild.roles;

roles.every((current_role) => {
    //you can do whatever you want with the role here (reference by using current_role)!
    //here, I change the color with Role#setColor

    current_role.setColor('LUMINOUS_VIVID_PINK')
})

答案 1 :(得分: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 :(得分:1)

 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);

此处介绍了如何在Guild Discord.js v12中获得所有角色