O mesmo texto vermelho quebra no Java e na Bedrock
Um código de cor que funciona perfeitamente em um plugin aparece como "e" comerciais literais no próximo. O formato é o motivo, não o plugin.
Um código § e uma tag MiniMessage podem descrever a mesma cor e ainda assim serem rejeitados pelo mesmo servidor. Texto colorido em servidores não é um único formato — são pelo menos cinco, e os plugins discordam sobre quais aceitam.
Os cinco dialetos
| Dialeto | Aparência | Onde sobrevive |
|---|---|---|
| Section legado | §cHello | Chat vanilla, plugins mais antigos |
| Ampersand legado | &cHello | Arquivos de configuração, muitos plugins |
| Hex do BungeeCord | &x&f&f&0&0&0&0 | Plugins de proxy, alguns chats |
| MiniMessage | <red>Hello</red> | Plugins modernos do Paper |
| Componente JSON | {"text":"Hello","color":"red"} | Comandos vanilla, /tellraw |
O formato com ampersand não é um código de cor de verdade até que algo o traduza. Cole &c em um plugin que espera MiniMessage e os jogadores vão ler os caracteres literais.
Os códigos legados ficam sem cores
O sistema de section sign carrega um conjunto fixo de letras de cor mais alternadores de formatação. Não há como expressar uma cor arbitrária nele. O hex chegou depois, e o formato do BungeeCord o codifica um caractere por vez — &x seguido de seis dígitos hexadecimais prefixados com &, e é por isso que ele parece tão longo.
O MiniMessage aceita #ff0000 diretamente. O JSON aceita o mesmo hex como valor de string.
Java e Bedrock não concordam
A Bedrock também usa o section sign, mas seu conjunto de cores e seu tratamento de redefinições de formatação diferem do Java. Uma string que funciona corretamente em um servidor Java pode exibir caracteres estranhos em clientes Bedrock, e proxies de cross-play muitas vezes traduzem entre os dois em vez de repassar o texto. Se o seu servidor aceita jogadores da Bedrock, teste a saída em ambas.
A armadilha do aninhamento
Os códigos legados são stateful: um código de cor redefine a formatação, então §l§cBold é vermelho e negrito, mas §c§lBold é vermelho em negrito apenas até o próximo código de cor, que limpa o negrito. O MiniMessage é uma árvore — <red><bold>text</bold></red> fecha de forma limpa. Converter uma string MiniMessage aninhada para códigos legados perde a estrutura, porque o legado não tem tag de fechamento.
Escape
O MiniMessage trata < como sintaxe. Um jogador chamado <Steve> quebra qualquer plugin que analise seu nome como um componente. Os formatos legados têm o mesmo problema com &, e é por isso que muitos plugins exigem && ou uma flag de configuração para escapá-lo.
Escreva o texto uma vez, escolha o dialeto que seu plugin realmente analisa e copie a string exata do Server Text Studio.