CommandBlock Tutoriel Insérer de la couleur dans un bloc de commandes en vanilla!

Comment trouvez-vous cet article? (2 réponses)

  • J'ai appris plein de trucs!

    Votes: 0 0.0%
  • Je savais déjà tout ça [Menteur!]

    Votes: 1 20.0%
  • Mal expliqué

    Votes: 0 0.0%
  • peu intéressant

    Votes: 1 20.0%
  • Très intéressant

    Votes: 1 20.0%
  • Trop long [Ben oui mais quoi...]

    Votes: 0 0.0%
  • L'auteur de cet article est un crétin

    Votes: 4 80.0%

  • Total voters
    5

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
[Bonus] Dites bonjour en japonais à vos potes en jeu et balancez-leur plein d'émoticônes!
Jetez un oeil, ça m'étonnerai que vous sachiez tout ça!
...Non, ça, c'est pour s'afficher quand le monde passe la souris sur le post, dans le forum

Bonjour à tous!
Dans mon dernier tuto (ça commence à dater...), j'expliquer un peu la base du fonctionnement des couleurs / mises en forme de texte dans minecraft. J'y évoquais vaguement un moyen d'insérer de la couleur dans un bloc de commande, et c'est finalement de ceci dont il sera question dans ce tutoriel.

J'avais trouvé cette technique par hasard et je me suis rendu compte qu'elle était assez difficile à retrouver sur internet, en plus que des fois, ça ne marchais pas... C'est donc pour vous que je vais la décrire ici.

Tout d'abord, je sais que ce que j'explique ci-dessous et possible avec des plugins, mods et McEdit.
Cependant, ça reste la manière la plus simple de le faire, sans machins à installer ni risques d'altérer les fichiers...
Ce système vous permettra de mettre de la couleur dans toutes les actions exécutables par bloc de commande. C'est moins utile en 1.14 où le JSON a été ajouté à plein de paramètres.
Cependant, cela permettra de mettre de la couleur dans les textes ne pouvant pas être mis en JSON :
Par exemple, invoquer des créatures avec des noms en couleur depuis la 1.8, les noms d'objets et leur Lore en couleur (utilie encore en 1.13), un /say en couleur, etc.

En plus, ce tuto vous initiera aux joies du langage unicode, qui vous permettra de mettre plein de nouveaux caractères dans vos messages!

Pour commencer, vous allez devoir mettre une des commandes ci-dessous dans un bloc de commande, dépendamment de votre version minecraft :

1.8 - 1.12 [testé en 1.12.2] :
Code:
/give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"setblock ~ ~1 ~ minecraft:command_block 1 0 {Command:\\\"\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\\",LastOutput:\\\"[\\\\\\\"\\\\\\\",{\\\\\\\"text\\\\\\\":\\\\\\\"\\\\\\\\u00a74Mdr j'vous ai bien trollé lol \\\\\\\\u00a7r- \\\\\\\\u00a7aEglaios\\\\\\\"}]\\\"}\"}}",Text2:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"tellraw @s [\\\"\\\",{\\\"text\\\":\\\"Un bloc de commande apparaît!\\\",\\\"color\\\":\\\"red\\\"}]\"}}"},display:{Name:"Générateur de couleur"}}
1.13 [testé en 1.13] :
Code:
give @p minecraft:sign{BlockEntityTag:{Text1:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"setblock ~ ~1 ~ minecraft:command_block{Command:\\\"\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\\",LastOutput:\\\"[\\\\\\\"\\\\\\\",{\\\\\\\"text\\\\\\\":\\\\\\\"\\\\\\\\u00a74Mdr j'vous ai bien trollé lol \\\\\\\\u00a7r- \\\\\\\\u00a7aEglaios\\\\\\\"}]\\\"}\"}}",Text2:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"tellraw @s [\\\"\\\",{\\\"text\\\":\\\"Un bloc de commande apparaît!\\\",\\\"color\\\":\\\"red\\\"}]\"}}"},display:{Name:"Générateur de couleur"}}
1.14 [testé en 1.14] :
Code:
give @p minecraft:oak_sign{BlockEntityTag:{Text1:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"setblock ~ ~1 ~ minecraft:command_block{Command:\\\"\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\\",LastOutput:\\\"[\\\\\\\"\\\\\\\",{\\\\\\\"text\\\\\\\":\\\\\\\"\\\\\\\\u00a74Mdr j'vous ai bien trollé lol \\\\\\\\u00a7r- \\\\\\\\u00a7aEglaios\\\\\\\"}]\\\"}\"}}",Text2:"{\"text\":\"\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"tellraw @s [\\\"\\\",{\\\"text\\\":\\\"Un bloc de commande apparaît!\\\",\\\"color\\\":\\\"red\\\"}]\"}}"},display:{Name:"Générateur de couleur"}}

Activez le bloc de commande : Vous obtiendrez une magnifique pancarte banale... Vous allez maintenant devoir la poser quelque part, n'importe où, puis cliquer dessus :
2019-06-13_13.08.08.png


Ô surprise, un bloc de commande apparaît !

Et maintenant, ouvrez le bloc de commande. Quelle surprise nous réserve-t-il? Quel contenu divin vous permettra d'accéder à l'immense pouvoir qu'est l'insertion de couleur dans un bloc de commande? J'ai travaillé dur [même pas vrai...] pour finalement accéder à cette antique technique secrète, et vous, vous qui languissez devant votre écran de PC bon marché et à qui je commence à les casser sévère avec tout ce fichu texte, vous allez finalement y avoir accès!
Bref, lisez la suite...

Et voici finalement ce que vous trouverez dans le bloc de commande invoqué :
2019-06-13_13.25.02.png


MDR LE TROLL, Y A RIEN DU TOUT LOL!!! T'AS VU TA TRONCHE? TU VIENS LIMITE DE TE FAIRE DESSUS PTDR!






Euh...
Je me fiche vraiment de vous à ce point-là?
Eh non; en fait, malgré les apparences, il s'agit bien là d'un bloc pouvant contenir de la couleur! En apparence, il n'y a rien, mais appuyez sur la touche [Flèche gauche]; et là, magie!
2019-06-13_13.34.07.png


Qu'est-ce que c'est que ça? Qu'est-ce que ça fait là?
Si vous avez lu mon tuto [un peu bâclé] sur les couleurs / mises en forme de texte dans minecraft, vous devriez avoir une petite idée :

ce symbole est appelé "paragraphe", ou, en anglais, "Section sign" (d'après wikipédia).

Le "§" est très spécial dans le jeu : en effet, dès qu'il doit afficher un texte comportant ce symbole, Il prend le caractère se trouvant après lui et s'en sert pour définir un code couleur ou mise en forme; le "§" ainsi que le caractère à sa suite sont automatiquement mis invisibles à l'affichage en jeu, et ce, peu importe d'où le texte vient, contrairement au JSON (quoique dans les prochaines version, on pourra s'attendre à ce que le JSON soit compatible partout dans le jeu), langage permettant un effet similaire. Cette "mise invisible" explique pourquoi le bloc de commande semblait vide à l'ouverture.

Voici la liste des caractères représentant des couleurs/mises en forme :
download.jpg


Le truc, c'est que ce symbole est très peu utilisable dans minecraft, car le jeu refusera l'insertion du caractère; taper "§" directement dans le chat n'aura aucun effet.

Exception :
Il existe un seul et unique moyen d'insérer "§" directement en jeu (à ce que je sache, et 2 avec le tuto) : ouvrez un livre, copiez le "§" via un éditeur de texte, puis collez-le dans le livre avec CTRL+V. Il y aura un chiffre alternant entre 0 et 7, et lui et le curseur seront blancs (testé en 1.12.2) :
Le contenu réel de la page est "§"
On voit ici le "7" et le curseur à sa suite.
2019-06-13_13.56.45.png
Comme ce moyen est le plus pratique, je vais l'utiliser pour les prochains exemples :

Exemple 1 :
Ecrire "§4Bonjour" : Le jeu détecte le "§", regarde le "4" à sa suite. Ce chiffre représentant la couleur rouge foncé.
2019-06-13_14.03.23.png



Il est également possible d'insérer plusieurs couleurs à la suite. Si le jeu détecte une couleur avec "§", le texte gardera la même couleur jusqu'à sa fin, mais cette couleur changera si une autre est déclarée :

Exemple 2 :
Ecrire "§4Bon§2jour" : Le jeu détecte la couleur "4" (rouge foncé), met le "Bon" en rouge, puis détecte la couleur "2" (vert foncé), et met le "jour" en vert.
2019-06-13_14.10.27.png



En plus des couleurs, il y a également les mises en forme, représentées par les lettres de K à R :
download.jpg

Précisions :
"K" : Obfuscated; Les caractères affectés seront remplacés par d'autres caractères environ tous les ticks.
"R" : Reset; Retourne à la couleur standard
Si le caractère à la suite de "§" ne fait pas partie de cette liste, il sera considéré comme le caractère "R", et sera quand même caché.

Contrairement aux couleurs, il est possible d'insérer plusieurs mises en forme en même temps. Cependant, si une couleur est déclarée, elle mettra fin à toute mise en forme active avant elle. Pour déclarer un texte en couleur avec mise en forme, il est donc nécessaire d'insérer le(s) code(s) de mise en forme après le code de couleur, sans quoi la mise en forme ne sera pas prise en compte.

Exemple 3 :
Ecrire "§4Bo§3§lnj§2§n§oou§4r" : Détection de la couleur "4", puis détection de la couleur "3" puis de la mise en forme "l" (gras). Ensuite, détection de la couleur "2" avec mises en forme "n" et "o" (souligné et italique). Enfin, détection de la couleur "4", donc réinitialisation des mises en forme.
2019-06-13_14.24.33.png



C'est à peu près tout (et c'est déjà pas mal) en ce qui concerne l'utilisation du symbole "§".
[ça doit être plus détaillé que dans mon autre tuto, sans doute]

Eh oui! Posséder ce symbole dans ce bloc de commande permet d'insérer de la couleur!
Mais d'abord, comment ai-je fait pour l'insérer là-dedans?
On ne peut pas insérer le symbole "§" directement dans un bloc de commande! C'est pour ça qu'on utilise une alternative : Le langage unicode!

Pour ceux qui ne connaissent pas, le langage unicode permet d'insérer des symboles qui ne sont pas présents sur le clavier, notamment utilisé pour communiquer avec des étrangers aux alphabets différents.
Dans minecraft, un unicode est représenté par "\u[numéro du caractère]". Il ne peut être utilisé que dans le langage JSON (tellraw, title,...)

Comme exemple, voilà de quoi vous la péter auprès de vos potes :
En Japonais, "Bonjour" se dit "Moshimoshi", et s'écrit "もしもし".
Sachant que le caractère "MO" (も) est représenté par l'unicode 3082 et que le "SI" (し), par l'unicode 3057, voici comment dire "Bonjour" avec un /tellraw :
Code:
/tellraw @p ["",{"text":"\u3082\u3057\u3082\u3057"}]
Résultat :
2019-06-13_14.49.27.png


Ce qui est vraiment intéressant, c'est que le symbole "§" possède lui aussi un unicode : le numéro 00a7 [enfin, l'ID, quoi].

Donc, pour dire "Bonjour" en rouge, vous pouvez utiliser cette commande (indiquer la couleur en argument) :
Code:
/tellraw @p ["",{"text":"\u3082\u3057\u3082\u3057","color":"dark_red"}]
...Mais vous pourriez tout aussi bien insérer le rouge via l'unicode "§"! (avec "\u00a74", le dernier caractère représentant le code couleur) :
Code:
/tellraw @p ["",{"text":"\u00a74\u3082\u3057\u3082\u3057"}]
Et le résultat est le même :
2019-06-13_14.54.20.png



En fait, les unicodes, vous n'avez même pas besoin de les mettre sous forme de numéro; vous pouvez carrément copier-coller les symboles dans le jeu (et pour les lettres étrangères, prenez-les sur google traduction, c'est plus rapide ;)). Evidemment, le "§" est une exception vu qu'on ne peut pas l'insérer directement)

En plus des langues étrangères (dont le braille!), il existe une liste de symboles divers! vous pouvez les copier-coller dans le jeu pour faire des super effets dans les maps, le lien ici :
☻ ★ ☆ ☀ ☠ ☢ ☣ ♫ ♻ ⛵ ⛽ ⚽ ⚜ ♔ ☏ ☃
https://fr.wikipedia.org/wiki/Table_des_caractères_Unicode/U2600

D'autres symboles, les casseaux :
✊ ❄ ➀ ➁ ➂ ❤ ➪ ❔ ❀ ✞
https://fr.wikipedia.org/wiki/Table_des_caractères_Unicode/U2700

Une autre série d'unicodes que j'aime utiliser, pour des affichages dans le chat ou des barres de vie, les pavés (très utile quand vous voulez mettre le boxon en spammant le chat) :
███ ▉▉▉▌▌▌░░░▓▓▓▔▔▔▔▁▁▁▁▁▁
https://fr.wikipedia.org/wiki/Table_des_caractères_Unicode/U2580



Les unicodes permettent même d'insérer un certain symbole de la seconde guerre mondiale, je ne sais plus trop lequel [...]
Ah oui, je me souviens...
C'était le truc que je spammais dans les chats des serveurs quand j'étais pas content :fou::fou::fou:

...C'est exactement l'équivalent du /ban @s... Ne faites pas ça... :'(

Maintenant, il faut trouver un moyen pour mettre l'unicode du "§" dans un bloc de commande via une commande en JSON...
Eh bien c'est très simple...
-Schizophrène-

Il se trouve que le contenu d'une pancarte est codé en JSON. Il ne reste plus qu'à insérer un clickEvent qui placerait un bloc de commande contenant "\u00a7", traduit par le JSON en "§".

En gros :
-Donner une pancarte au joueur
-Quand le joueur clique dessus, ça exécute cette commande :

setblock ~ ~1 ~ minecraft:command_block 1 0 {Command:\\\"\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\u00a7\\\",LastOutput:\\\"[\\\\\\\"\\\\\\\",{\\\\\\\"text\\\\\\\":\\\\\\\"\\\\\\\\u00a74Mdr j'vous ai bien trollé lol \\\\\\\\u00a7r- \\\\\\\\u00a7aEglaios\\\\\\\"}]\\\"}

Il y a des tonnes de backslashes car c'est une seconde couche de JSON dans la commande du panneau (Je ne m'attarderai pas là-dessus), mais si je les enlève, ça donne ça :

/setblock ~ ~1 ~ minecraft:command_block 1 0 {Command:"\\u00a74(X10)",LastOutput:"[\"\",{\"text\":\"\\u00a74Mdr j'vous ai bien trollé lol \\u00a7r- \\u00a7aEglaios\"}]"}

Si vous éxecutez la seconde commande, vous obtiendrez ça :
-Ah mais flûte, quoi, j'ai droit à que 10 images!-

Ben en gros, Le texte dans "résultat précédent" sera toujours "Mdr j'vous ai bien trollé lol - Eglaios".
Par contre, le texte dans "commande" sera devenu "\\u00a74(X10)".
La raison est simple : Le LastOutput est toujours en JSON, mais le "Command" ne l'est plus, et ne prend donc plus en compte la conversion d'unicode. C'est pourquoi il était nécessaire de placer le bloc via une pancarte, pour avoir le "Command" en JSON.

Finalement, voici un petit guide pour utiliser le bloc de commande invoqué afin de tirer parti des symboles obtenu :
Mais non, enfin!
Premier conseil : Copiez le bloc avec Ctrl+Clic molette de la souris; Vous pourrez ainsi le placer n'importe où, plus pratique pour les systèmes de commandes couleur

Dans le bloc de commande invoqué, j'ai mis 10 fois le symbole "§", au cas où vous voudriez faire une commande avec plusieurs couleurs. Vous pouvez tout aussi bien rajouter des "\\u00a7" dans la commande pour en avoir plus.

Le fonctionnement du "§" a été décrit ci-dessus, je vais simplement vous suggérer un moyen d'utiliser le bloc correctement :
Le truc, c'est que comme le "§" a tendance à être souvent caché, il faut s'arranger pour savoir où ils sont :
Pour cela, lorsque vous vous apprêtez à taper une commande avec de la couleur, je vous suggère d'abord de spammer la touche [Flèche gauche] (Il y a une touche aussi pour aller au début de texte, je ne sais plus laquelle...) de façon à être sûr qu'il n'y aie plus aucun "§" à gauche du curseur. Maintenant, tapez votre commande, et à chaque fois que vous voulez insérer un "§", appuyez simplement sur [Flèche droite]. Lorsque vous avez fini votre commande, supprimez les "§" restants : Placez votre curseur à la fin de la commande et appuyez sur [Suppr] jusqu'à ce que vous arriviez à la fin de votre commande, de façon à retirer les "§" inutilisés.

Il est aussi conseillé de mettre "§r" à la fin de chaque zone de couleur que vous voulez pour éviter un dysfonctionnement de la commande, ou améliorer la visibilité.

Exemple :
/summon Cow ~ ~ ~ {CustomName:"§4§lLa vache folle§r"}
 
Dernière édition:

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Et attends, dans deux ans, je te fais un tuto sur le JSON! :fou: (Enfin bon, aucun tuto là-dessus n'égalera celui de skylinerw)
...Et dans dix ans, un tuto sur les unicodes!
Je vais rajouter la commande pour 1.13... Je pense pas qu'il y ait des oak_sign dans cette version lol
 
Dernière édition:

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
D'après les sondages, 66% de la population trouve que je suis un crétin...
Merci bien...
(Sachant que je représente 33% de cette population, et 50% de celle qui a répondu ceci :fou:)

EDIT :
Yes! Je touche le 100%! Merci à tous pour votre soutien!
-Euh, attendez...
 
Dernière édition:
16 Février 2014
1 944
391
217
le sud (de Melun)
Allez, j'ai du temps à passer, je vais créer un topic pour mettre de la couleur dans les blocs de commande (insérer le symbole §) sans mod pour que tu sois complètement satisfait

Thanks Régis pour tes précisions!
Après 1 mois il l'a fait le bougre.

Bon tuto, big up.

D'après les sondages, 66% de la population trouve que je suis un crétin...
Merci bien...
(Sachant que je représente 33% de cette population, et 50% de celle qui a répondu ceci :fou:)
T'aurais dû me tag comme ça on aurait été plus à te prendre pour un crétin, faut dire c'est moi qui ai fait tout le sale boulot en te donnant l'idée. :^)
 

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Et attends, dans deux ans, je te fais un tuto sur le JSON! :fou: (Enfin bon, aucun tuto là-dessus n'égalera celui de skylinerw -EDIT- en fait, si, il est pas mis à jour pour 1.13+)
...Et dans dix ans, un tuto sur les unicodes!
Je vais rajouter la commande pour 1.13... Je pense pas qu'il y ait des oak_sign dans cette version lol
 

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Et attends, dans deux ans, je te fais un tuto sur le JSON! :fou: (Enfin bon, aucun tuto là-dessus n'égalera celui de skylinerw)
...Et dans dix ans, un tuto sur les unicodes!
Je vais rajouter la commande pour 1.13... Je pense pas qu'il y ait des oak_sign dans cette version lol
J'ai parlé trop vite, skylinerw a pas actualisé depuis la 1.12
 

Eglaios

Crétin de la commu
14 Avril 2018
312
43
89
22
Je me permet de Up ce tuto parce qu'il est pas mal en haut, que c'est un sujet que je pense très méconnu dans le milieu, mais surtout simplement pour dire à quel point j'me suis bien marré quand j'ai écrit ça... Je sais pas si c'est très bien rédigé mais j'aime quand c'est pas juste des tutos super stricts et complètement blasés.

J'me permet même de recommander de le partager rien que pour montrer à quel point on peut transformer un tuto sérieux en gros troll, pourtant toujours aussi instructif (et aussi mal expliqué)


Btw chuis d'retour par ici! (Je sais pas pour combien de temps mais je trouvais plus d'intérêt sur les serveurs, j'en ai visité une bonne pelletée, peut-être que le confinement me propulsera un peu...)