The Best Resource for Minecraft
The Best Resource for Minecraft

Testo JSON per /tellraw: clickEvent, hoverEvent e perché il tuo messaggio non mostra nulla

Testo JSON per /tellraw: clickEvent, hoverEvent e perché il tuo messaggio non mostra nulla

Basta una singola parentesi errata per far fallire tellraw silenziosamente. Ecco la struttura del componente, le azioni di clic e passaggio del mouse che funzionano davvero in chat e la regola di escape che molti dimenticano.

/tellraw takes a JSON text component, and the failure mode is unhelpful: a malformed component produces nessun messaggio e nessun errore. Tutto ciò che segue serve a ottenere la struttura corretta al primo colpo.

Le tre forme valide

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

La forma a elenco è quella da usare per qualsiasi cosa interessante, poiché ogni elemento può avere la propria formattazione. La formattazione del primo elemento viene ereditata dal resto a meno che non venga sovrascritta — motivo per cui spesso l'intero messaggio diventa inaspettatamente dorato. Inizia un elenco con una stringa vuota per evitarlo:

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

Azioni al clic

clickEvent takes an action and a value:

AzioneValoreNote
run_command/spawnEsegue come il giocatore, con il suo livello di permessi
suggest_command/msg Steve Riempie la barra della chat, senza inviare
open_urlhttps://…Chiede conferma prima di aprire
copy_to_clipboardqualsiasi testoIl più pratico per condividere le coordinate
change_pagenumero di paginaSolo libri

run_command is the one with a trap: it executes with del giocatore che clicca permessi, non di quelli del blocco comandi. Un menu che richiama /gamemode creative does nothing for a normal player.

Azioni al passaggio del mouse

"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.

I problemi nascono con l'escape

L'intero componente è un unico argomento del comando, quindi le virgolette interne devono superare il parser del comando. In un blocco comandi, digitalo direttamente. In un file di funzione, l'escape con backslash non è necessario. In un /give written book, the JSON is a string inside a string and è invece necessario l'escape — questo è il caso che genera muri illeggibili di \".

Regola empirica: se stai annidando componenti di testo all'interno di un componente di un oggetto, crealo con uno strumento anziché a mano.

Selettori nel testo

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

si risolve nei nomi dei giocatori al momento dell'invio. {"score":{"name":"@s","objective":"Kills"}} pulls a scoreboard value. Both beat trying to concatenate values yourself.

Le chiavi di traduzione funzionano tra le lingue

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

viene visualizzato nella lingua di ciascun giocatore — 제작대 per un client coreano, 作業台 per uno giapponese. Per un server multilingue questo è decisamente migliore rispetto a inserire l'inglese come testo fisso.

Crea visivamente il componente, con le azioni di clic e passaggio del mouse nella loro forma attuale, nel Generatore di comandi Testo e Display.

Prova lo strumento: Text & Display Command Builder →