大家好,這裡是岩壁巨人
這篇大概是最後一篇了吧(#
把所有的json語法介紹完之後,最後我會再做個統整。
還記得上次的回家作業嗎
題目:
左鍵名字→密頻
Shift+左鍵名字→插入名字
Shift+左鍵文字→插入文字
使用目標選擇器的答案:
/tellraw @a [{"text":"[ "},{"translate":"%s","with":[{"selector":"@p"}],"color":"yellow","insertion":"@p"},{"text":" ] "},{"text":"微婆 會養會疼 要真心 有點裝 人要正 要的來2-18","insertion":"微婆 會養會疼 要真心 有點裝 人要正 要的來2-18"}]
不使用目標選擇器的答案:
/tellraw @a [{"text":"[ \u00a76LZK\u00a7R ]","insertion":"LZK","clickEvent":{"action":"suggest_command","value":"/msg LZK"}},{"text":"微婆 會養會疼 要真心 有點裝 人要正 要的來2-18","insertion":"微婆 會養會疼 要真心 有點裝 人要正 要的來2-18"}]
其實很簡單對吧(笑
不過複製文字的部分目前只能利用這樣的方式,未來或許有可能自定義,這樣在製作多人地圖或者開放多人伺服器的時候也許會方便很多。
上一次介紹到"clickEvent"這個語法
接下來要介紹另一個性質很類似的東西
"hoverEvent" :
帶有這個語法的文本,當鼠標指向這個文本的時候會觸發某些事件
這個組件跟clickEvent一樣
包著兩個小東西 一個是"action"一個是"value"
action是鼠標指著文本時觸發的事件
value則是這個事件的內容
它的action有4個
1. show_text 秀出文字
2. show_achievement 秀出進度(還有統計)
3. show_item 秀出物品
4. show_entity 秀出實體
show_text :
主要是讓你用來顯示字串,value裡面的內容就是json語法
不過請注意以下語法不能放在這個裡面:
clickEvent、hoverEvent、selector、score(擁有明確的數值才可以)
範例:
/tellraw @a {"text":"[地圖作者資訊]","hoverEvent":{"action":"show_text","value":[{"text":"\u00a76LZK"},{"text":"\n\u00a7R技術人員,負責地圖內所有的紅石機關及指令"}]}}
製作地圖時可以利用hoverEvent來讓玩家查看作者資訊
可惜的是目標選擇器語法無效
/tellraw @a {"text":"[地圖作者資訊]","hoverEvent":{"action":"show_text","value":[{"translate":"%s ","with":[{"selector":"@p"}],"color":"gold"},{"text":"\n\u00a7R技術人員,負責地圖內所有的紅石機關及指令"}]}}
show_achievement :
可以顯示出遊戲進度
這個指令我怎麼測試就是顯示不出來
不知道是不是因為1.12移除了成就,變成"進度"的關係還尚待研究。
show_item:
用來顯示某個物品
他的value只能是NBT格式,而且物品的數量至少要是1,數據值也要打出來才會顯示
範例
製作地圖的時候可以用來顯示玩家已找到的線索
/tellraw @a {"text":"[已知線索]","hoverEvent":{"action":"show_item","value":"{id:\"minecraft:pumpkin_pie\",Damage:0,Count:1,tag:{display:{Name:\"過期的南瓜派\",Lore:[\"上面被刻了「3」、「First」\"]},ench:[{id:33}]}}"}}
順便解釋一下這裡面的NBT
id →物品id 不能是數字形式
Damage → 數據值 例如白色羊毛是0 橘色羊毛是1 (遊戲中按F3+H可查看方塊數據值)
Count →物品數量
tag →該物品的附加NBT格式
Name、Lore →物品名稱跟敘述
ench →附魔
show_entity
顯示實體名稱、實體形式(type)和UUID的高級事件
要先把進階標籤提示打開(F3+H)才看得見
一般來說用不太到 因為這個事件的value都是字串,你還不如直接用show_text就好
舉個例子:
/tellraw @a {"text":"爆炸生物","hoverEvent":{"action":"show_entity","value":"{name:\"苦力怕\",type:\"Creeper\"}"}}
其實就跟show_text差不多
只是文本是以NBT形式存在而不是json
hoverEvent差不多就是這些東西
最後再跟大家介紹"extra"這個語法
extra
額外的、附加的
就想像成安插在文本裡面的另一個tellraw
舉個例子:
/tellraw @a {"text":"\u00a74Someone ","extra":[{"text":"\u00a74\u00a7Kwatching "}," \u00a74you......"]}
extra 裡面可以放進任何我之前介紹過的語法,包括clickEvent和hoverEvent
唯一不同的地方是: 中括號是一定要加的
不像tellraw本身,裡面若放入多種語法,才要以中括號全部包起來
extra也能拿來做很狂的事情
像是extra裡面放extra:
/tellraw @a {"text":"test00","extra":[{"text":" test01","extra":[{"text":" test02","extra":[{"text":" test03","extra":[{"text":" test04","extra":[{"text":" test05","extra":[{"text":"\ntest06","extra":[{"text":" test07","extra":[{"text":" test08","extra":[{"text":" test09","extra":[{"text":" test10","extra":[{"text":" test11"}]}]}]}]}]}]}]}]}]}]}]}}
括號的數量非常可觀呢
那麼問題來了,上面我在介紹hoverEvent時有講到:
show_text的值是json,但是不能包含clickEvent、hoverEvent、selector還有數字以外的score
於是我建立了一個「假說」:
show_text的值若是extra,則extra中的這些語法不在此限
「實驗」:
將上面執行結果不如預期的指令拿來做修改
/tellraw @a {"text":"[地圖作者資訊]","hoverEvent":{"action":"show_text","value":[{"translate":"%s ","with":[{"selector":"@p"}],"color":"gold"},{"text":"\n\u00a7R技術人員,負責地圖內所有的紅石機關及指令"}]}}
修改成
/tellraw @a {"text":"[地圖作者資訊]","hoverEvent":{"action":"show_text","value":[{"text":"","extra":[{"translate":"%s ","with":[{"selector":"@p"}],"color":"gold"}]},{"text":"\n\u00a7R技術人員,負責地圖內所有的紅石機關及指令"}]}}
「實驗結果」:
「結論」:
extra不能排除語法上的限制
那教學文就到這邊囉ˊˇˋ如果還有問題歡迎留言告訴我
我還在想下次要介紹什麼
json文本自製表格↓ 歡迎下載