如何使用Discord.js获得服务器中的所有角色?我已经message.guild.roles
了,但是从那开始我还是一个谜。
答案 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中获得所有角色