Guides / Commands & Data

Texte JSON /tellraw : clickEvent, hoverEvent et pourquoi votre message n'apparaît pas

Une simple parenthèse mal placée peut faire échouer tellraw silencieusement. Voici la structure des composants, les actions de clic et de survol qui fonctionnent réellement dans le chat, et la règle d'échappement souvent oubliée.

/tellraw prend un composant de texte JSON, et le mode d'échec est peu utile : un composant malformé ne produit aucun message ni aucune erreur. Tout ce qui suit vise à obtenir la bonne structure du premier coup.

Les trois formes valides

"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]

La forme de liste est celle à utiliser pour tout ce qui est intéressant, car chaque élément peut avoir son propre formatage. Le formatage du premier élément est hérité par les autres à moins qu'ils ne le remplacent — c'est pourquoi les gens obtiennent un message entier inopinément en or. Commencez une liste par une chaîne vide pour éviter cela :

/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]

Actions de clic

clickEvent prend une action et une valeur :

ActionValeurNote
run_command/spawnS'exécute en tant que Joueur, avec son niveau de permission
suggest_command/msg Steve Remplit la boîte de chat, n'envoie pas
open_urlhttps://…Demande confirmation avant d'ouvrir
copy_to_clipboardn'importe quel texteLe plus convivial pour partager des coordonnées
change_pagenuméro de pageLivres uniquement

run_command est celle qui contient un piège : elle s'exécute avec les permissions du Joueur qui clique, et non celles du Bloc de commande. Un menu qui appelle /gamemode creative ne fait rien pour un Joueur normal.

Actions de survol

"hoverEvent":{"action":"show_text","contents":["Click to teleport"]}

show_text, show_item et show_entity. Notez contents — les anciens guides utilisent value, qui a été remplacé et échoue maintenant silencieusement. Ce simple renommage explique de nombreux infobulles de survol mortes copiées de tutoriels.

L'échappement est la source des problèmes

Le composant entier est un argument de commande, donc les guillemets à l'intérieur doivent survivre à l'analyseur de commandes. Dans un Bloc de commande, tapez-le directement. Dans un fichier de fonction, l'échappement par antislash n'est pas nécessaire. Dans un Livre écrit /give, le JSON est une chaîne à l'intérieur d'une chaîne et nécessite un échappement — c'est le cas qui génère des murs illisibles de \".

Règle générale : si vous imbriquez des composants de texte dans un composant d'objet, construisez-le avec un outil plutôt qu'à la main.

Sélecteurs dans le texte

{"selector":"@p","separator":{"text":", "}}

se résout en noms de Joueurs au moment de l'envoi. {"score":{"name":"@s","objective":"Kills"}} extrait une valeur de tableau de score. Les deux sont préférables à essayer de concaténer les valeurs vous-même.

Les clés de traduction voyagent entre les langues

{"translate":"block.minecraft.crafting_table"}

s'affiche dans la langue de chaque Joueur — 제작대 pour un client coréen, 作業台 pour un client japonais. Pour un serveur multilingue, c'est strictement mieux que de coder en dur l'anglais.

Construisez le composant visuellement, avec les actions de clic et de survol dans leur forme actuelle, dans le Générateur de commandes de texte et d'affichage.

Commandes de texte et d'affichage →

More guides

Browse all →

Vous cherchez d'autres outils Minecraft ?

Une collection de générateurs, visionneuses et convertisseurs qui tournent dans le navigateur — tous gratuits.