Tutoriel Le texte en couleur : qu'est-ce que c'est?

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Il s'agit ici d'un article traitant essentiellement de la couleur, mais également de la mise en forme comme l'italique, le gras, le souligné...

Dans toutes les maps un minimum élaborées, il est normal de trouver des objets (ou créatures) renommés d'une autre façon que les items classiques; c'est pratique, et c'est la grande classe! Cependant, comment cela est-il possible? De quoi s'agit-il réellement?


Tout d'abord, il faut savoir que dans minecraft, la couleur et la mise en forme différentes sont affichées en utilisant l'une des deux principales méthodes (Il en existe peut-être d'autres, je connais pas les fichiers du jeu par coeur, quoi)
Méthode 1 : Le symbole "§"
Méthode 2 : Le JSON

La première méthode pour modifier les couleurs est extrèmement simple : dès que le symbole "§" est inséré, le jeu regarde le caractère suivant. Si vous avez eu l'occasion de voir des plugins de couleur sur les serveurs, c'est la technique du "§" qui y est exploitée.
Peu importe ce qui suit le symbole "§", du moment qu'il y a quelque chose, celle-ci et le symbole sont automatiquement mis "invisibles". Il est possible de les voir en déplaçant le curseur, si présent, avec les flèches de clavier.
Le jeu regarde donc le caractère précédé par "§". S'il s'agit d'un caractère de mise en forme valide, les caractères suivants seront modifiés en conséquence. Voici une liste des caractères valides :
images

Note : le "k" représente le style "obfuscated", ce qui fait changer sans arrêt les caractères ciblés (environ une fois par tick); Le mot écrit était "Minecraft", mais l'effet a changé les lettres. Les plus observateurs remarqueront que les caractères changeant sont de la même largeur que le caractère original; on voit que le "i" a été remplacé par "!". Il peut également devenir "¦", "|" ou d'autres...


Par exemple, lancer "§4Bonjour" dans le chat affichera "Bonjour", ou "§oBonjour" affichera "Bonjour".
Ce type de changement présente quelques règles : En effet, il est possible de combiner couleur et mise en forme, et ce, à une condition :
Un texte ne peut être affecté que par une seule couleur à la fois, mais peut par contre être combiné à plusieurs effets de mise en forme en même temps. En suivant cette logique, les modificateurs de mise en forme (et de couleur) perdront leur effet si un nouveau modificateur de couleur est déclaré

Exemple :
"§4§lBonjour" : "Bonjour"
"§4§l§n§oBonjour" : "Bonjour"
"§l§4Bonjour" : "Bonjour"
"§lBon§4jour" : "Bonjour"
"§p47Bonjour" : "Bonjour"
...Non, celui-là, c'est pour de faux lol

Finalement, si le caractère "r" est inséré, tous les effets de mise en forme actifs seront réinitialisés
Exemple "§4§lBon§rjour" : "Bonjour"
Bon, voilà le problème : Les occasions d'utiliser cette technique sont très rares, vu qu'on ne peut pas insérer "§" via le jeu. Soit il faut pénétrer les fichiers de la map et modifier les noms d'item, par exemple avec NBTexplorer, ou utiliser un filtre MCEdit (galère...)

Seule exception : Si vous écrivez "§" dans une zone de texte quelconque et le copiez, vous pouvez le coller dans un livre! (J'imagine que c'est toujours comme ça maintenant) Vous pouvez donc écrire des livres avec mise en forme, même si peu de gens connaissent ce genre de truc
Sur un serveur assez populaire, les admins voulaient me ban parce qu'ils ne comprenaient pas comment je faisait pour faire ça...

Oui, ce symbole est dur à insérer, mais il a l'avantage de fonctionner partout. Après ce post, je vais écrire un autre article vous montrant une méthode pour insérer malgré tout le fameux "§" dans un bloc de commande, et ainsi de pouvoir l'utiliser dans des commandes de votre choix.
Le symbole "§" reste visible tant qu'il n'y a rien à sa suite

...c'est tout...

Pour l'anecdote, j'avais accès au /pokekolor sur un serveur pixelmon, ce qui me permettait d'insérer le caractère "§" via plugin dans le nom de mes pokémon. C'est un plugin de base qui ajoute "§[code couleur]_[Nom du pokémon]_§r".
Je ne pouvais mettre que des couleurs, mais je remplaçais le code couleur par un code obfuscated et j'enlevais le "§r" via l'éditeur de nom de pokémon.

Du coup, en combat, comme le code obfuscated ne se limitait plus au nom vu que j'avais enlevé le "§r", celui-ci affectait également tout l'interface de mon pokémon!
Résultat : TOUT, des attaques jusqu'aux PV, était en obfuscated; l'adversaire n'avait absolument aucune idée de ce que je faisais. Autant dire qu'avec un chapignon orbe poison avec façade-spore-synthèse et une autre attaque utile, l'ennemi avait devant lui un pokémon à la strat invisible qui se régénérait tout le temps sans explication!!! Des heures de troll intense!
...Bon, les admins ont pas trop aimé, ça a été vite interdit mais qu'est-ce que j'ai pu me poiler!


La deuxième méthode est de loin la plus utilisée, même si elle ne fonctionne pas partout : Il s'agit du JSON, un langage permettant de personnaliser le texte : Evidemment, les couleurs et la mise en forme, comme le "§", mais cela permet également d'afficher le score d'un joueur, le nom d'une entité, d'un objet, d'effectuer une action au clic, de montrer une description quand on passe la souris dessus...

Personnellement, j'adore cette méthode et toutes les possibilités qu'elle offre. Voici un article extrêmement réputé du grand skylinerw que je remercie pour son énorme travail. TOUTES les possibilités du JSON vous y sont expliqués clairement : https://github.com/skylinerw/guides/blob/master/java/text component.md
Je ne vais pas m'attarder là-dessus, skylinerw le fera pour moi si vous jetez un oeil à son article, ce que je conseille fortement, et que je considère comme un prérequis pour tout commandblocker.

Le JSON est un langage que minecraft utilise dans certains cas : Cela veut dire qu'il n'est valide que dans certains cas :
-Les commandes /tellra, /title et semblables
-Les noms d'objet et de créatures (1.13+)
-Le lore d'objet (1.14+ lol)
-Les panneaux et autres livres


Enfin, j'ai peut-être oublié des trucs, faites-le moi savoir si c'est le cas, mais en tout cas, j'espère que vous aurez trouvé cela utile!
 

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
P.S.
Si vous connaissez un serveur pixelmon gratuit avec le plugin /pokecolor, je me ferais un plaisir d'y faire un tour pour mettre le boxon!
Gné hé hé :fou:
 

Patato-carafe

Patate à grandes oreilles
28 Novembre 2014
239
58
140
Ailleurs
Très bien fait et ca peut effectivement être utile à certain ; néanmoins, je trouve que tu précise certains détails (la largeur des lettres en obfuscated, par ex.), ce qui est bien, tout en étant très vague dans d'autres cas (tu ne dis même pas où doit être placé le §qqc, seul l'exemple permet de le savoir)...

PS : Je sais que je suis pointilleux, mais en français, on met un espace avant ? et !
 

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Oui... J'ai un peu fait ça à l'arrache, j'avoue...
Pour le tuto pour insérer le "§" dans les blocs de commande, ça va venir, mais j'ai un petit contretemps... Carte graphique, driver, black screen et tout ça...