Le même texte rouge casse sur Java et sur Bedrock
Un code couleur qui s'affiche parfaitement dans un plugin apparaît sous forme d'ampersands littéraux dans le suivant. C'est le format qui est en cause, pas le plugin.
Un code § et une balise MiniMessage peuvent décrire la même couleur et être quand même rejetés par le même serveur. Le texte coloré sur un serveur, ce n'est pas un seul format — c'en est au moins cinq, et les plugins ne s'accordent pas sur ceux qu'ils acceptent.
Les cinq dialectes
| Dialecte | Aspect | Où il survit |
|---|---|---|
| Section legacy | §cHello | Chat vanilla, plugins plus anciens |
| Ampersand legacy | &cHello | Fichiers de configuration, de nombreux plugins |
| Hexadécimal BungeeCord | &x&f&f&0&0&0&0 | Plugins de proxy, certains chats |
| MiniMessage | <red>Hello</red> | Plugins Paper modernes |
| Composant JSON | {"text":"Hello","color":"red"} | Commandes vanilla, /tellraw |
La forme avec ampersand n'est pas un code couleur tant que quelque chose ne le traduit pas. Collez &c dans un plugin qui attend du MiniMessage et les joueurs lisent les caractères littéraux.
Les codes legacy à court de couleurs
Le système à signe de section transporte un ensemble fixe de lettres de couleur plus des bascules de formatage. Il n'existe aucun moyen d'exprimer une couleur arbitraire avec. L'hexadécimal est arrivé plus tard, et la forme BungeeCord l'encode caractère par caractère — &x suivi de six chiffres hexadécimaux préfixés par &, ce qui explique pourquoi c'est si long.
MiniMessage prend #ff0000 directement. JSON prend le même hexadécimal comme valeur de chaîne.
Java et Bedrock ne s'accordent pas
Bedrock utilise aussi le signe de section, mais son jeu de couleurs et sa gestion des réinitialisations de formatage diffèrent de Java. Une chaîne qui s'affiche correctement sur un serveur Java peut montrer des caractères parasites sur les clients Bedrock, et les proxys cross-play traduisent souvent entre les deux plutôt que de transmettre le texte tel quel. Si votre serveur accepte les joueurs Bedrock, testez le rendu sur les deux.
Le piège de l'imbrication
Les codes legacy sont à état : un code couleur réinitialise le formatage, donc §l§cBold est rouge et gras, mais §c§lBold n'est gras rouge que jusqu'au prochain code couleur, qui efface le gras. MiniMessage est un arbre — <red><bold>text</bold></red> se ferme proprement. Convertir une chaîne MiniMessage imbriquée en codes legacy perd la structure, car le legacy n'a pas de balise de fermeture.
Échappement
MiniMessage traite < comme de la syntaxe. Un joueur nommé <Steve> casse tout plugin qui analyse son nom comme un composant. Les formats legacy ont le même problème avec &, c'est pourquoi de nombreux plugins exigent && ou un indicateur de configuration pour l'échapper.
Écrivez le texte une fois, choisissez le dialecte que votre plugin analyse réellement, et copiez la chaîne exacte depuis Server Text Studio.