The Best Resource for Minecraft
The Best Resource for Minecraft

/tellraw JSON-tekst: clickEvent, hoverEvent en waarom je bericht niets toont

/tellraw JSON-tekst: clickEvent, hoverEvent en waarom je bericht niets toont

Eén verkeerd haakje zorgt ervoor dat tellraw geruisloos faalt. Hier is de componentstructuur, de klik- en hoveracties die daadwerkelijk werken in chat, en de escape-regel die mensen over het hoofd zien.

/tellraw takes a JSON text component, and the failure mode is unhelpful: a malformed component produces geen bericht en geen foutmelding. Alles hieronder gaat over het meteen goed krijgen van de structuur.

De drie geldige vormen

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

De lijstvorm is degene die je gebruikt voor alles wat interessant is, omdat elk element zijn eigen opmaak kan bevatten. De opmaak van het eerste element wordt overgenomen door de rest tenzij ze deze overschrijven — daarom kleurt een heel bericht soms onverwacht goud. Begin een lijst met een lege string om dat te voorkomen:

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

Klikacties

clickEvent takes an action and a value:

ActieWaardeOpmerking
run_command/spawnVoert uit als de speler, op hun machtigingsniveau
suggest_command/msg Steve Vult het chatvak, verzendt niet
open_urlhttps://…Vraagt om bevestiging voor het openen
copy_to_clipboardelke tekstDe handigste manier om coördinaten te delen
change_pagepaginanummerAlleen boeken

run_command is the one with a trap: it executes with van de klikkende speler machtigingen, niet die van het opdrachtblok. Een menu dat /gamemode creative does nothing for a normal player.

Hoveracties

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

show_text, show_item and show_entity. Note contents — older guides use value, which was replaced and now fails silently. That single rename accounts for a lot of dead hover tooltips copied from tutorials.

Escapen is waar het misgaat

Het hele component is één opdrachtargument, dus aanhalingstekens erin moeten de commando-parser overleven. Typ het in een opdrachtblok rechtstreeks. In een functiebestand, is backslash-escaping niet nodig. In een /give written book, the JSON is a string inside a string and is wel escaping nodig — dat is het geval dat onleesbare muren genereert van \".

Vuistregel: als je tekstcomponenten nest in een itemcomponent, bouw het dan met een tool in plaats van met de hand.

Selectors in tekst

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

wordt tijdens het verzenden omgezet naar spelersnamen. {"score":{"name":"@s","objective":"Kills"}} pulls a scoreboard value. Both beat trying to concatenate values yourself.

Vertaalsleutels werken in alle talen

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

wordt weergegeven in de eigen taal van elke speler — 제작대 voor een Koreaanse client, 作業台 voor een Japanse. Voor een meertalige server is dit absoluut beter dan Engels hardcoden.

Bouw het component visueel, met de klik- en hoveracties in hun huidige vorm, in de Text & Display Command Builder.

Probeer de tool: Text & Display Command Builder →