/tellraw JSON text: clickEvent, hoverEvent at bakit walang lumalabas sa mensahe mo
Ang isang maling bracket ay nagdudulot sa tellraw na tahimik na mabigo. Narito ang anyo ng component, ang mga aksyon ng pag-click at pag-hover na talagang gumagana sa chat, at ang panuntunan sa pag-escape na nakakaligtaan ng marami.
/tellraw takes a JSON text component, and the failure mode is unhelpful: a malformed component produces walang mensahe at walang error. Lahat ng nasa ibaba ay tungkol sa pagkuha ng tamang anyo sa unang subok.
Ang tatlong wastong anyo
"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]
Ang anyong listahan ang dapat gamitin para sa anumang kawili-wili, dahil ang bawat elemento ay maaaring magkaroon ng sarili nitong formatting. Ang formatting ng unang elemento ay minamana ng iba pa maliban kung i-override nila ito — kaya naman ang buong mensahe ay biglang nagiging ginto. Simulan ang isang listahan gamit ang walang laman na string upang maiwasan iyon:
/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]
Mga aksyon ng pag-click
clickEvent takes an action and a value:
| Aksyon | Halaga | Tala |
|---|---|---|
run_command | /spawn | Nagpapatakbo ng bilang ang manlalaro, sa antas ng kanilang pahintulot |
suggest_command | /msg Steve | Pumupuno sa chat box, hindi ipinapadala |
open_url | https://… | Nag-uudyok bago magbukas |
copy_to_clipboard | anumang teksto | Ang pinakamainam para sa pagbabahagi ng coordinates |
change_page | numero ng pahina | Mga aklat lamang |
run_command is the one with a trap: it executes with ng pumipindot na manlalaro na mga pahintulot, hindi ang sa command block. Isang menu na tumatawag sa /gamemode creative does nothing for a normal player.
Mga aksyon ng pag-hover
"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.
Sa pag-escape ito nasisira
Ang buong component ay isang command argument, kaya ang mga panipi sa loob ay dapat makalagpas sa command parser. Sa isang command block, direktang i-type ito. Sa isang function file, hindi kailangan ang backslash-escaping. Sa isang /give written book, the JSON is a string inside a string and ay talagang nangangailangan ng pag-escape — iyon ang sitwasyong bumubuo ng hindi mababasang mga pader ng \".
Pangunahing panuntunan: kung naglalagay ka ng mga text component sa loob ng isang item component, buuin ito gamit ang isang tool sa halip na manu-mano.
Mga selector sa loob ng teksto
{"selector":"@p","separator":{"text":", "}}
ay nagiging mga pangalan ng manlalaro sa oras ng pagpapadala. {"score":{"name":"@s","objective":"Kills"}} pulls a scoreboard value. Both beat trying to concatenate values yourself.
Ang mga translate key ay gumagana sa iba't ibang wika
{"translate":"block.minecraft.crafting_table"}
ay ipinapakita sa sariling wika ng bawat manlalaro — 제작대 para sa isang Korean client, 作業台 para sa isang Japanese client. Para sa isang multilingual na server, ito ay mas mainam kaysa sa pag-hardcode ng Ingles.
Buuin ang component nang biswal, kasama ang mga aksyon ng pag-click at pag-hover sa kanilang kasalukuyang anyo, sa Text & Display Command Builder.