Teks JSON /tellraw: clickEvent, hoverEvent, dan mengapa pesan Anda tidak muncul
Satu kurung yang salah dapat membuat tellraw gagal tanpa pemberitahuan. Berikut adalah bentuk komponen, tindakan klik dan hover yang benar-benar berfungsi di obrolan, dan aturan escaping yang sering terlewatkan.
/tellraw menerima komponen teks JSON, dan mode kegagalannya tidak membantu: komponen yang salah bentuk menghasilkan tidak ada pesan dan tidak ada kesalahan. Semua yang di bawah ini adalah tentang mendapatkan bentuk yang benar sejak awal.
Tiga bentuk yang valid
"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]
Bentuk daftar adalah yang harus digunakan untuk hal-hal menarik, karena setiap elemen dapat membawa formatnya sendiri. Format elemen pertama diwarisi oleh yang lain kecuali mereka menimpanya — itulah mengapa orang mendapatkan seluruh pesan berwarna emas secara tidak terduga. Mulai daftar dengan string kosong untuk menghindarinya:
/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]
Tindakan klik
clickEvent menerima tindakan dan nilai:
| Tindakan | Nilai | Catatan |
|---|---|---|
run_command | /spawn | Berjalan sebagai Pemain, pada tingkat izin mereka |
suggest_command | /msg Steve | Mengisi kotak obrolan, tidak mengirim |
open_url | https://… | Meminta konfirmasi sebelum membuka |
copy_to_clipboard | teks apa pun | Yang paling ramah untuk berbagi koordinat |
change_page | nomor halaman | Hanya Buku |
run_command adalah yang memiliki jebakan: ia dieksekusi dengan izin Pemain yang mengklik, bukan Balok Perintah. Menu yang memanggil /gamemode creative tidak melakukan apa-apa untuk Pemain biasa.
Tindakan hover
"hoverEvent":{"action":"show_text","contents":["Click to teleport"]}
show_text, show_item, dan show_entity. Perhatikan contents — panduan lama menggunakan value, yang telah diganti dan sekarang gagal tanpa pemberitahuan. Perubahan nama tunggal itu menyebabkan banyak tooltip hover yang mati yang disalin dari tutorial.
Escaping adalah titik kegagalan
Seluruh komponen adalah satu argumen perintah, jadi tanda kutip di dalamnya harus bertahan dari parser perintah. Di Balok Perintah, ketik langsung. Dalam file fungsi, escaping garis miring terbalik tidak diperlukan. Dalam Buku Tertulis /give, JSON adalah String di dalam String dan memang memerlukan escaping — itulah kasus yang menghasilkan dinding \" yang tidak dapat dibaca.
Aturan praktis: jika Anda menyarangkan komponen teks di dalam komponen item, buatlah dengan alat daripada secara manual.
Selektor di dalam teks
{"selector":"@p","separator":{"text":", "}}
menyelesaikan ke nama Pemain pada waktu pengiriman. {"score":{"name":"@s","objective":"Kills"}} menarik nilai papan skor. Keduanya lebih baik daripada mencoba menggabungkan nilai sendiri.
Kunci terjemahan melintasi bahasa
{"translate":"block.minecraft.crafting_table"}
dirender dalam bahasa masing-masing Pemain — 제작대 untuk klien Korea, 作業台 untuk klien Jepang. Untuk server multibahasa, ini secara tegas lebih baik daripada mengkodekan bahasa Inggris secara langsung.
Bangun komponen secara visual, dengan tindakan klik dan hover dalam bentuknya saat ini, di Text & Display Command Builder.