繁体   English   中英

为什么我不能使用某些在嵌入的字母中包含字母的十六进制颜色?

[英]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个全为数字字符的符号。 这样,代码中的输入将仅是数字。

您可以想到两种选择:

  1. 自己将颜色从十六进制转换为十进制,然后在程序中使用结果而不是十六进制代码。 手动执行此操作所需的数学运算是不合时宜的,但我可以将您链接到此网站以为您完成。 由于复制和粘贴,此选项可能有些乏味(即使您使用的是网站)。

  2. 在您的十六进制代码之前放置0x 我不是100%肯定这将在JS中工作; 它所做的是将数字标记为十六进制,然后为您将其转换为十进制。

资源:

https://discordapp.com/developers/docs/resources/channel#DOC_CHANNEL/embed-object

https://simple.wikipedia.org/wiki/Hexadecimal_numeral_system

相关标签:

使用包含您的十六进制值的字符串

embed: {
  color: "2c2f33",
  fields: [...]
}

创建RichEmbed时 ,可以将color属性设置为ColorResolvable ,因此可以是以下任意一种:

  • 十六进制字面量
  • 十六进制字符串
  • RGB阵列
  • 请参阅超链接的文档页面以获取预定义字符串的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM