Cet article fait partie d’une série servant à enseigner l’art du développement sur Minecraft. Vous pourrez retrouver l’introduction et le sommaire en cliquant ici.
Avant de commencer, il nous faut d’abord vous expliquer ce qu’est le JSON à savoir “un format de données textuelles”. Pour mieux comprendre cette phrase, prenons un exemple tout simple d’une structure au format JSON.
Le fichier que vous voyez ici se dessine au travers d’une structure simpliste avec des informations suivant quasiment le même modèle ⇒ “nom/clé”:”valeur”, on appelle ça un ensemble de paires.
Avec cet exemple, on comprend :
- que la classe se nomme «1ère G5»
- qu’elle possède 34 élèves et 15 professeurs
- qu’elle a cours pendant 30 heures durant la semaine, que son professeur principal est «Mr. Dupont».
Jusque là, rien de trop compliqué, seulement, dès la ligne 9, les informations changent d’élément, l’information « liste_d_eleves » n’est plus présentée avec un ensemble de paires mais avec une liste. Et c’est là où le JSON se révèle de plus en plus utile, car on peut stocker plusieurs informations avec des éléments différents les uns des autres.
C’est bien beau tout ça, seulement, quelle place occupe au juste le JSON dans Minecraft ?
Eh bien tout d’abord, il permet le stockage d’informations (comme on a pu le voir avec les NBT, pas besoin de plus de précisions puisqu’il existe déjà un article dessus) et aussi la personnalisation du jeu avec des messages communiquant directement avec le joueur, notamment grâce à des commandes telles que le /tellraw, le /title, le /bossbar, etc… Commençons par le /tellraw qui est un très bon exemple pour appréhender la création de données textuelles.
La syntaxe
La syntaxe se présente comme ceci:
/tellraw <sélecteur> <message>
Elle est plutôt simpliste car vous connaissez déjà le paramètre sélecteur, le plus gros reste donc le message. Pas de panique ! Vous allez voir comment faire !
Pour l’exemple, imaginons que nous voulions envoyer un simple message de bienvenue avec un peu d’éléments classiques de mise en forme du texte (mots en gras, en italique, ou soulignés, etc…). Dans notre langage à nous, le message ressemble à ça (oui, il est moche mais pratique pour l’exemple): «Bienvenue <Joueur> ! Nous te souhaitons un agréable moment en notre compagnie.».
Avant de nous lancer dans la traduction en JSON, laissez-moi vous lister chaque élément que possède le “JSON minecraft”.
- text —> texte affiché (chaîne de caractères)
- color —> couleur d’affichage (chaîne de caractères)
- bold —> gras
- italic —> italique
- underlined —> soulignement
- strikethrough —> barre
- obfuscated —> caractères illisibles
- selector —> sélecteur affichant le nom des cibles (chaîne de caractères)
- translate —> traduction d’un texte du jeu ou du pack de ressources (chaîne de caractères)
- score —> affiche le score d’un joueur pour un objectif particulier
- clickEvent —> en cas d’un clic sur le texte, l’action associé à l’événement sera exécutée
- hoverEvent —> lorsque la souris passe sur le texte une autre action est déclenchée
(Plus d’informations ici https://fr-minecraft.net/commande-json_message-cmd.html)
Dès maintenant, faisons la traduction en JSON ! Tout d’abord, on peut voir que le message va se séparer en plusieurs parties, nous devrons donc débuter le JSON avec une liste. Ensuite, dénombrons le nombres de parties. Pour les compter, il faut relever chaque changement de mise en forme du texte (couleur, épaisseur, soulignement, évènements [clickEvent, hoverEvent,…], sélecteur, etc…). Dans notre cas, on retrouve 6 parties. Pour chaques parties relevées, rajoutez des “{}” suivis d’une virgule si ils s’en trouvent d’autres juste après.
Maintenant qu’on a créé nos parties, remplissons-les comme il se doit. Avant de se jeter la tête la première dans cette opération, il faut savoir quoi remplir, et heureusement que plus haut je vous ai donné les principaux éléments de mise en forme, car ils vont nous servir. Dans la première partie, on souhaite mettre un simple texte, donc on aura:
Si l’on souhaite ajouter une couleur ou un autre élément de mise en forme du texte, il suffit de rajouter une virgule après la valeur de la clé “text” et d’insérer le-dit élément.
Ensuite, dans la 2ème partie nous avons un sélecteur, au lieu de mettre la clé “text”, nous allons ajouter la clé “selector” avec comme valeur entre guillemets: le sélecteur.
Même opération, si vous souhaitez rajouter un élément de mise en forme ⇒ virgule + ensemble de paires (ou objets) correspondants.
C’est bien gentil tout ça, seulement à la fin j’obtiens un trop gros pâté et je ne peux le rentrer dans Minecraft. Comment faire ?
Ce qu’il y a de bien avec le JSON, c’est qu’on peut le rendre compact. Voici donc un outil qui pourra vous servir si vous avez vous aussi écrit en sautant des lignes.
Quoi qu’il en soit, vous pourrez passer de ça:
à une version plus compacte, utilisé dans le jeu:
Les outils
Plusieurs outils sont à disposition pour vous faciliter la vie et vous faire gagner beaucoup de temps. Vous retrouverez notament:
- JSON formatter: Il vous permettra entre autre de passer d’un JSON bien formaté de façon lisible avec des retours à la ligne, en une version plus compacte pour Minecraft. Cela vous évitera de devoir chercher les éléments dans un pâté de texte incompréhensible.
Chose intéressante, les commandes comme /bossbar et /team utilisent dans certains de leurs paramètres du JSON fonctionnant de la même manière que celui du /tellraw.
Les applications
Maintenant que vous êtes un véritable professionnel du /tellraw, attaquons-nous à d’autres mécaniques de Minecraft utilisant du JSON.
Dans l’ordre (avec les documentations et outils correspondants), nous avons:
- Les tables de butins (ou loot tables en anglais) ⇒ https://minecraft-fr.gamepedia.com/Tutoriels/Cr%C3%A9er_un_pack_de_donn%C3%A9es#Tables_de_butin ou https://minecraft.gamepedia.com/Loot_table ou https://github.com/skylinerw/guides/blob/master/java/advancements.md [Attention: 1.12 pas 1.13+] ou mcstacker.net rubrique “loot tables”
- Les étiquettes (ou tags) ⇒ https://minecraft-fr.gamepedia.com/Tutoriels/Cr%C3%A9er_un_pack_de_donn%C3%A9es#Tags
- Les progrès (ou advancements) ⇒ https://minecraft-fr.gamepedia.com/Tutoriels/Cr%C3%A9er_un_pack_de_donn%C3%A9es#Progr.C3.A8s ou https://advancements.thedestruc7i0n.ca/
- Les recettes (ou recipes) ⇒ https://minecraft-fr.gamepedia.com/Tutoriels/Cr%C3%A9er_un_pack_de_donn%C3%A9es#Recettes ou https://crafting.thedestruc7i0n.ca/
- Les packs de ressources (modèles, sons, etc…) ⇒ https://minecraft-fr.gamepedia.com/Pack_de_ressources
C’est ici que s’achève cet article, gardez en tête que le JSON est très utile dans Minecraft pour stocker simplement tout type d’information pour ensuite les réutiliser dans d’autre mécaniques (messages, tables de butins, progrès, sons, etc…) et qu’il existe moulte générateurs et façon d’apprendre pour vous aider.
Pouir en savoir plus (car nous n’avons ici qu’effleuré la surface du JSON en expliquant ce qui est utile sur Minecraft) :
- https://minecraft.gamepedia.com/JSON
- https://fr.wikipedia.org/wiki/JavaScript_Object_Notation
- https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Objets_%C3%A9l%C3%A9mentaires_JavaScript
- https://la-cascade.io/json-pour-les-debutants/
Merci pour ce guide sur le JSON !