MC Toolkit

Guides / Commandes et données

Composants de texte /tellraw : click_event, hover_event et pourquoi votre message n'affiche rien

Une seule accolade mal placée et tellraw n'envoie rien à ses cibles. 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 que tout le monde oublie.

/tellraw prend un composant de texte, et le mode d'échec n'aide pas : un composant malformé ne produit aucun message pour quiconque il cible — la seule erreur va à celui qui a lancé la commande, ou dans la sortie d'un bloc de commande, là où personne ne regarde. 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 en liste est celle à utiliser pour tout ce qui est intéressant, car chaque élément peut porter son propre formatage. Le formatage du premier élément est hérité par les suivants sauf s'ils le remplacent — c'est pourquoi on obtient un message entier doré sans l'avoir voulu. Commencez une liste par une chaîne vide pour éviter cela :

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

Actions de clic

click_event prend une action plus le champ propre à cette action — il n'y a pas de value commun :

ActionChampRemarque
run_commandcommand: "/spawn"S'exécute en tant que le joueur, à son niveau de permission
suggest_commandcommand: "/msg Steve "Remplit la zone de chat, sans envoyer
open_urlurl: "https://…"Demande confirmation avant d'ouvrir
copy_to_clipboardvalue: "any text"La plus pratique pour partager des coordonnées
change_pagepage: 2Livres uniquement

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

Actions de survol

"hover_event":{"action":"show_text","value":["Click to teleport"]}

show_text, show_item et show_entity. Attention aux noms — les anciens guides utilisent hoverEvent, clickEvent et contents, que la 1.21.5 a remplacés par hover_event, click_event et, pour show_text, value. Ce renommage explique bon nombre d'infobulles de survol mortes copiées depuis des tutoriels.

L'échappement, voilà où ça casse

Le composant entier est un seul argument de commande, donc les guillemets à l'intérieur doivent survivre au parseur de commandes. Dans un bloc de commande, tapez-le directement. Dans un fichier de fonction, l'échappement par barre oblique inverse n'est pas nécessaire. Dans un livre écrit /give, les pages sont aussi des composants de texte, écrits en SNBT — plus d'échappement de chaîne dans une chaîne depuis la 1.21.5, et une page encore écrite comme une chaîne JSON échappée s'affiche désormais comme du texte littéral avec ses guillemets.

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.

Les 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"}} récupère une valeur de tableau de scores. Les deux valent mieux que d'essayer de concaténer les valeurs soi-même.

Les clés de traduction traversent 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 et prévisualisez vos commandes de texte et d'affichage dans le Générateur de commandes de texte et d'affichage.

Commandes de texte et d'affichage →

Plus de guides

Tout voir →