您如何定义 discord.js 中用户的颜色?
How would you define a user's color in 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);
我希望.setColor('USER COLOR HERE')
成为使用命令的用户的颜色
一个 GuildMember 有一个 .displayHexColor
属性,因此
.setColor(message.member.displayHexColor)
会起作用。如果您不想要没有颜色的角色(即@everyone 或不可见的管理员角色),请检查颜色是否等于 #000000
。如果是这种情况,通常 .hoistRole
会有颜色。 .hoistRole
是将成员放在成员列表中的单独类别中的角色。
let color = message.member.displayHexColor;
if (color == '#000000') color = message.member.hoistRole.hexColor;
// Embed
.setColor(color)
message.member.colorRole.color
这个定义角色的颜色定义用户的颜色
2021 年我使用以下代码:
function check_color ( message ) {
if ( message.member ) {
var role = message.member.roles.color
if ( ! role ) return "#ffffff"
else return role.hexColor
} else return = "#ffffff"
}
首先通过member是否定义来判断消息是否来自guild,如果是则获取负责color的role。
如文档所示:
GuildMemberRoleManager
.color [READ-ONLY]
| The role of the member used to set their color
| Type: (Role)
如果没有作用,return是白色的。如果消息是 DM,也 return 白色。
编辑:
为什么不使用 GuildMember#displayColor
?
如果用户没有角色,它将return黑色。
检查,如果颜色是黑色,然后把它变成白色在我看来不是一个好主意,因为它会消除角色实际上有黑色的可能性
我正在执行一个命令,向用户提供嵌入内的统计信息。我希望嵌入成为用户在服务器上的当前颜色(如角色指定的颜色),而不是对每个人都使用相同的颜色。有什么办法吗?
我的代码:
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);
我希望.setColor('USER COLOR HERE')
成为使用命令的用户的颜色
一个 GuildMember 有一个 .displayHexColor
属性,因此
.setColor(message.member.displayHexColor)
会起作用。如果您不想要没有颜色的角色(即@everyone 或不可见的管理员角色),请检查颜色是否等于 #000000
。如果是这种情况,通常 .hoistRole
会有颜色。 .hoistRole
是将成员放在成员列表中的单独类别中的角色。
let color = message.member.displayHexColor;
if (color == '#000000') color = message.member.hoistRole.hexColor;
// Embed
.setColor(color)
message.member.colorRole.color
这个定义角色的颜色定义用户的颜色
2021 年我使用以下代码:
function check_color ( message ) {
if ( message.member ) {
var role = message.member.roles.color
if ( ! role ) return "#ffffff"
else return role.hexColor
} else return = "#ffffff"
}
首先通过member是否定义来判断消息是否来自guild,如果是则获取负责color的role。 如文档所示:
GuildMemberRoleManager
.color [READ-ONLY]
| The role of the member used to set their color
| Type: (Role)
如果没有作用,return是白色的。如果消息是 DM,也 return 白色。
编辑:
为什么不使用 GuildMember#displayColor
?
如果用户没有角色,它将return黑色。 检查,如果颜色是黑色,然后把它变成白色在我看来不是一个好主意,因为它会消除角色实际上有黑色的可能性