Campo de Cor em Embed de Webhook do Discord: Conversão de Hex para Decimal
🔍 WiseChecker

Campo de Cor em Embed de Webhook do Discord: Conversão de Hex para Decimal

Ao enviar um embed via webhook do Discord, o campo color não aceita códigos hexadecimais comuns como #FF5733. Em vez disso, o Discord exige o valor da cor como um número inteiro decimal. Essa incompatibilidade faz com que os embeds apareçam com a cor cinza padrão se você colar um código hex diretamente. Este artigo explica por que o Discord usa decimal para cores em embeds e fornece um método confiável para converter qualquer cor hexadecimal no número decimal correto. Você também aprenderá como testar a conversão no payload do seu webhook.

Principais Pontos: Convertendo Hex para Decimal em Embeds do Discord

  • Remova o sustenido (#) do código hex: O valor hex deve ser uma string limpa de 6 caracteres para a conversão.
  • Use parseInt(hex, 16) em JavaScript: Esta função converte a string hex em um inteiro decimal que o Discord aceita.
  • Conversores de cores online: Muitas ferramentas podem converter hex para decimal instantaneamente; verifique o resultado testando o embed em um webhook.

Por que o Discord Exige Decimal para Cores em Embeds

A API do Discord usa um inteiro para representar cores em objetos embed. Esse inteiro é o equivalente decimal da cor RGB hexadecimal padrão. Por exemplo, a cor branca (hex #FFFFFF) é armazenada como 16777215 em decimal. A API não interpreta strings hex ou nomes de cores. Quando você envia um código hex, o Discord o ignora e usa como padrão uma borda cinza escura no embed. O motivo é técnico: a API trata o campo color como um valor numérico para processamento eficiente. Esse design é consistente em todos os endpoints de bots e webhooks do Discord.

O processo de conversão é direto. Uma cor hexadecimal é um número de base 16. Convertê-la para decimal (base 10) fornece o inteiro necessário. A conversão não afeta a aparência visual da cor. O valor decimal é matematicamente idêntico ao código hex. Depois de entender isso, você pode gerar facilmente o valor correto para qualquer cor.

Como Converter Hex para Decimal em Embeds de Webhook do Discord

Siga estas etapas para converter uma cor hexadecimal em um número decimal e usá-lo no embed do seu webhook. Você pode usar uma linguagem de programação, uma planilha ou uma ferramenta online. O exemplo abaixo usa JavaScript, que é comum no desenvolvimento de bots para Discord.

  1. Obtenha seu código de cor hexadecimal
    Escolha uma cor e escreva seu código hex. Exemplo: #3498DB (um tom de azul). Remova o símbolo de sustenido. O resultado é 3498DB.
  2. Use parseInt com base 16
    Em JavaScript, execute parseInt('3498DB', 16). O segundo argumento 16 informa à função para interpretar a string como hexadecimal. O resultado é 3447003. Este é o valor decimal.
  3. Insira o decimal no JSON do embed
    Adicione o campo color ao objeto embed. Exemplo: "color": 3447003. O JSON completo do embed pode ser assim:
    { "embeds": [{ "title": "Olá", "color": 3447003 }] }.
  4. Envie o webhook e verifique
    Use uma ferramenta como Postman ou cURL para enviar o payload para a URL do seu webhook. Verifique o embed no Discord. A borda esquerda deve exibir a cor escolhida. Se aparecer cinza, o valor decimal está incorreto.

Se preferir não escrever código, use um conversor online de hex para decimal. Pesquise por “conversor hex para decimal” e insira sua string hex de 6 caracteres. A ferramenta retornará o inteiro decimal. Copie esse número para o campo color.

Erros Comuns ao Usar o Campo Color

Incluir o símbolo de sustenido no valor da cor

O Discord não aceita o caractere sustenido. Se você enviar "color": "#3498DB", a API o trata como string e o ignora. Sempre envie um inteiro simples, sem aspas.

Usar um nome de cor em vez de decimal

O Discord não suporta nomes de cores como "red" ou "blue". Você deve fornecer o valor numérico decimal. Se enviar uma string, o embed ficará sem cor.

Esquecer que o campo color é opcional

Se você omitir o campo color completamente, o Discord aplica uma borda cinza escura padrão. Isso não é um erro, mas pode parecer não intencional. Para definir uma cor específica, sempre inclua o campo color com um inteiro decimal válido.

Tabela de Conversão de Cores Hex para Decimal

Cor Código Hex Valor Decimal
Vermelho E74C3C 15158332
Verde 2ECC71 3066993
Azul 3498DB 3447003
Amarelo F1C40F 15844367
Laranja E67E22 15105570
Roxo 9B59B6 10181046
Branco FFFFFF 16777215
Preto 000000 0

Use esta tabela como referência rápida para cores comuns em embeds. Para cores personalizadas, faça a conversão usando o método descrito acima.

Testando a Cor do Embed no Discord

Depois de montar o payload do webhook, envie uma mensagem de teste. Você pode usar o testador de webhook do Discord nas configurações do servidor ou uma ferramenta como cURL. Abaixo está um exemplo completo de cURL que envia um embed com cor azul.

curl -X POST -H "Content-Type: application/json" -d '{"embeds":[{"title":"Test Embed","description":"Este embed tem borda azul.","color":3447003}]}' YOUR_WEBHOOK_URL

Substitua YOUR_WEBHOOK_URL pela URL real do seu webhook. Execute o comando. Se a borda do embed estiver azul, a conversão funcionou. Se a borda estiver cinza, verifique se o valor da cor é um inteiro e não uma string.

Conclusão

Agora você pode converter qualquer cor hexadecimal em um inteiro decimal para embeds de webhook do Discord. Use a função parseInt em JavaScript ou um conversor online para obter o número correto. Sempre remova o símbolo de sustenido e passe o inteiro sem aspas. Teste seu embed com um payload simples de webhook para confirmar se a cor é exibida conforme o esperado. Para uso avançado, considere criar um pequeno script que gere múltiplos embeds com esquemas de cores consistentes.