/tellraw JSON text: clickEvent, hoverEvent और आपका संदेश कुछ क्यों नहीं दिखाता
एक गलत ब्रैकेट tellraw को चुपचाप विफल कर देता है। यहाँ कंपोनेंट का आकार, चैट में वास्तव में काम करने वाले click और hover एक्शन, और एस्केपिंग का नियम है जिसे लोग भूल जाते हैं।
/tellraw takes a JSON text component, and the failure mode is unhelpful: a malformed component produces कोई संदेश नहीं और कोई त्रुटि नहीं। नीचे सब कुछ पहली बार में ही आकार सही प्राप्त करने के बारे में है।
तीन मान्य आकार
"plain string"
{"text":"one component"}
["joined ",{"text":"list","color":"gold"}]
दिलचस्प चीज़ों के लिए सूची वाले रूप का उपयोग किया जाता है, क्योंकि प्रत्येक तत्व की अपनी फॉर्मेटिंग हो सकती है। पहले तत्व की फॉर्मेटिंग बाकी तत्वों द्वारा इनहेरिट की जाती है जब तक कि वे इसे ओवरराइड न करें — यही कारण है कि लोगों को अप्रत्याशित रूप से पूरा संदेश सुनहरा दिखाई देता है। इससे बचने के लिए सूची को खाली स्ट्रिंग से शुरू करें:
/tellraw @a ["",{"text":"Warning: ","color":"red"},{"text":"low health"}]
Click एक्शन
clickEvent takes an action and a value:
| एक्शन | वैल्यू | नोट |
|---|---|---|
run_command | /spawn | चलाता है खिलाड़ी के रूप में, उनके अनुमति स्तर पर |
suggest_command | /msg Steve | चैट बॉक्स भरता है, भेजता नहीं है |
open_url | https://… | खोलने से पहले पूछता है |
copy_to_clipboard | कोई भी टेक्स्ट | निर्देशांक साझा करने के लिए सबसे सुविधाजनक |
change_page | पेज नंबर | केवल किताबों के लिए |
run_command is the one with a trap: it executes with क्लिक करने वाले खिलाड़ी की अनुमतियाँ, न कि command block की। एक मेनू जो कॉल करता है /gamemode creative does nothing for a normal player.
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.
एस्केपिंग में ही गड़बड़ी होती है
पूरा कंपोनेंट एक कमांड तर्क है, इसलिए अंदर के कोट्स को कमांड पार्सर से बचना होगा। command block में, इसे सीधे टाइप करें। एक function फ़ाइल, बैकस्लैश-एस्केपिंग की आवश्यकता नहीं है। एक /give written book, the JSON is a string inside a string and ज़रूर एस्केपिंग की आवश्यकता होती है — यही वह स्थिति है जो न पढ़े जा सकने वाले ढेरों को बनाती है \".
अंगूठे का नियम: यदि आप किसी आइटम कंपोनेंट के अंदर टेक्स्ट कंपोनेंट नेस्ट कर रहे हैं, तो इसे हाथ से बनाने के बजाय किसी टूल से बनाएं।
टेक्स्ट के अंदर Selectors
{"selector":"@p","separator":{"text":", "}}
भेजते समय खिलाड़ी के नामों में बदल जाता है। {"score":{"name":"@s","objective":"Kills"}} pulls a scoreboard value. Both beat trying to concatenate values yourself.
अनुवाद कुंजियाँ विभिन्न भाषाओं में काम करती हैं
{"translate":"block.minecraft.crafting_table"}
प्रत्येक खिलाड़ी की अपनी भाषा में रेंडर होता है — कोरियाई क्लाइंट के लिए 제작대, जापानी क्लाइंट के लिए 作業台। बहुभाषी सर्वर के लिए यह अंग्रेज़ी को हार्डकोड करने से कहीं बेहतर है।
कंपोनेंट को दृश्यात्मक रूप से बनाएँ, click और hover एक्शन के वर्तमान रूप के साथ, Text & Display Command Builder.