[英]Why I can't use some of HEX-colors that include letters in my embed?
我正在尝试使用带有字母(例如2c2f33)的十六进制颜色,但是它不起作用,但是如果我使用“ 3447003”这样的颜色,它会起作用。 那么我应该怎么做才能使其正常工作呢?
message.channel.send({embed: {
color: 2c2f33,
fields: [
{ name: "Gaming Roles:", value: "<:gta:605106790534742057><@&587234726834733056>\n<:r6s:605106790677348372><@&587234959752822824>\n<:Fortnite:605106790580879361><@&587461980172976168>\n<:pubg:605106790690193428><@&587240268068159497>\n<:arma:605109711703900170><@&587238820890804224>\n<:division:605106790673416202><@&587239012909973517>", inline: true}
]
Discord Javascript API中嵌入对象内的颜色字段的类型为integer ,这意味着它将仅将数字作为值。 十六进制数的基数为16,这意味着前16个数字使用16个不同的符号(0-9,AF)表示。 由于颜色字段只能接受数字字符,而不能包含字母数字字符,因此十六进制不起作用。 因此,Discord的API小组决定使用更为通用的十进制 (以10为底)数字系统,我们每天使用的系统中包含10个全为数字字符的符号。 这样,代码中的输入将仅是数字。
您可以想到两种选择:
自己将颜色从十六进制转换为十进制,然后在程序中使用结果而不是十六进制代码。 手动执行此操作所需的数学运算是不合时宜的,但我可以将您链接到此网站以为您完成。 由于复制和粘贴,此选项可能有些乏味(即使您使用的是网站)。
在您的十六进制代码之前放置0x
。 我不是100%肯定这将在JS中工作; 它所做的是将数字标记为十六进制,然后为您将其转换为十进制。
资源:
https://discordapp.com/developers/docs/resources/channel#DOC_CHANNEL/embed-object
https://simple.wikipedia.org/wiki/Hexadecimal_numeral_system
相关标签: javascript , 十六进制 , discord.js
使用包含您的十六进制值的字符串 。
embed: {
color: "2c2f33",
fields: [...]
}
创建RichEmbed时 ,可以将color
属性设置为ColorResolvable ,因此可以是以下任意一种:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.