Komponen teks /tellraw: click_event, hover_event dan kenapa pesanmu tidak muncul
Satu kurung yang salah berarti tellraw tidak mengirim apa pun ke targetnya. Berikut bentuk komponennya, aksi klik dan hover yang benar-benar berfungsi di chat, dan aturan escaping yang sering terlewat.
/tellraw menerima komponen teks, dan mode kegagalannya tidak membantu: komponen yang salah bentuk menghasilkan tidak ada pesan untuk siapa pun yang ditargetkan — satu-satunya error hanya sampai ke siapa pun yang menjalankan perintah, atau ke output Balok Perintah, tempat tidak ada yang melihat. Semua di bawah ini tentang mendapatkan bentuknya benar sejak awal.
Tiga bentuk yang valid
"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]
Bentuk daftar adalah yang harus dipakai untuk apa pun yang menarik, karena setiap elemen bisa membawa formatting-nya sendiri. Formatting elemen pertama diwarisi oleh sisanya kecuali mereka menimpanya — itulah sebabnya orang mendapatkan seluruh pesan tiba-tiba berwarna emas. Mulai daftar dengan string kosong untuk menghindarinya:
/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]
Aksi klik
click_event menerima sebuah aksi plus field milik aksi itu sendiri — tidak ada value bersama:
| Aksi | Field | Catatan |
|---|---|---|
run_command | command: "/spawn" | Dijalankan sebagai Pemain, pada level izin mereka |
suggest_command | command: "/msg Steve " | Mengisi kotak chat, tidak mengirim |
open_url | url: "https://…" | Meminta konfirmasi sebelum membuka |
copy_to_clipboard | value: "any text" | Yang paling ramah untuk berbagi koordinat |
change_page | page: 2 | Hanya untuk Buku |
run_command adalah yang punya jebakan: ia dieksekusi dengan izin Pemain yang mengklik, bukan izin Balok Perintah. Menu yang memanggil /gamemode creative tidak melakukan apa pun untuk Pemain biasa.
Aksi hover
"hover_event":{"action":"show_text","value":["Click to teleport"]}
show_text, show_item dan show_entity. Perhatikan namanya — panduan lama menggunakan hoverEvent, clickEvent dan contents, yang digantikan 1.21.5 dengan hover_event, click_event dan, untuk show_text, value. Penggantian nama itu menjelaskan banyak tooltip hover mati yang disalin dari tutorial.
Escaping adalah tempatnya rusak
Seluruh komponen adalah satu argumen perintah, jadi tanda kutip di dalamnya harus bertahan melewati parser perintah. Di Balok Perintah, ketik langsung. Di file function, backslash-escaping tidak diperlukan. Di Buku Tertulis /give, halaman juga merupakan komponen teks, ditulis sebagai SNBT — tidak ada escaping string-di-dalam-string sejak 1.21.5, dan halaman yang masih ditulis sebagai string JSON yang di-escape sekarang muncul sebagai teks literal beserta tanda kutipnya.
Aturan praktis: jika kamu menyusun komponen teks di dalam komponen item, buatlah dengan alat, bukan dengan tangan.
Selector di dalam teks
{"selector":"@p","separator":{"text":", "}}
menghasilkan nama Pemain pada saat pengiriman. {"score":{"name":"@s","objective":"Kills"}} mengambil nilai scoreboard. Keduanya lebih baik daripada mencoba menggabungkan nilai sendiri.
Kunci terjemahan melintasi bahasa
{"translate":"block.minecraft.crafting_table"}
ditampilkan dalam bahasa masing-masing Pemain — 제작대 untuk klien Korea, 作業台 untuk klien Jepang. Untuk server multibahasa ini jelas lebih baik daripada menuliskan bahasa Inggris secara hardcode.
Bangun dan pratinjau perintah teks dan tampilan di Text & Display Command Builder.