如何在discord.js 中定义用户的颜色?

Tob*_*yhn 3 javascript node.js discord.js

我正在创建一个命令,为用户提供嵌入内的统计信息。我希望嵌入的颜色不是每个人都使用相同的颜色,而是用户在服务器上的当前颜色(如角色给出的颜色)。有什么办法可以做到这一点吗?

我的代码:

let embed = new Discord.RichEmbed()
    .setAuthor(message.author.username, message.author.displayAvatarURL)
    .setColor('USER COLOR HERE')
    .addField('XP:', userXp, true)
    .addField('XP Reserve:', userXpReserve, true)
    .addField('Rank:', "working on this part", false)
    .setFooter(message.author.tag)
message.channel.send(embed);
Run Code Online (Sandbox Code Playgroud)

我想.setColor('USER COLOR HERE')成为使用该命令的用户的颜色。

lie*_*erg 6

GuildMember 拥有一个.displayHexColor属性,因此

.setColor(message.member.displayHexColor)
Run Code Online (Sandbox Code Playgroud)

会工作。如果您不想要没有颜色的角色(即@everyone,或不可见的管理员角色),请检查颜色是否等于#000000。如果是这种情况,通常.hoistRole会有一种颜色。.hoistRole是将成员置于成员列表中的单独类别中的角色。

let color = message.member.displayHexColor;
if (color == '#000000') color = message.member.hoistRole.hexColor;
// Embed
.setColor(color)
Run Code Online (Sandbox Code Playgroud)