先從Wiki上最開始的內容學起,每次學習的時間很少,因此每一個模塊可能要分好幾個部分。json
原本想從覆蓋原版內容開始的,畢竟原版已經有了基礎JSON文本,我只須要修改一部分就能夠直觀的感覺到每一個標籤的做用,但事實上我錯了。學習
JSON文本格式確實一學就會,可是即便有了JSON文本格式的基礎,看懂這些東西並不容易,我還須要學會Minecraft裏專用的原始JSON文本(Raw JSON text)測試
按照用途裏所說的,原始JSON用途很是普遍,包括標識能夠翻譯的文本,告示牌、書與筆裏的各類文字,實體的命名,進度的描述等等。spa
字符串的做用就很少說了。必定要注意是英文半角雙引號,同時若是想要在雙引號裏輸入一個雙引號和反斜槓時須要用反斜槓轉義。翻譯
例如:文本內容爲 這是一個雙引號",這是一個反斜槓\code
字符串應該是這樣的 "這是一個雙引號\",這是一個反斜槓\\"orm
就是讓文本變得更好看,我以爲初學者不須要學習太花裏胡哨的東西,只要記住幾個表示顏色的單詞就好了:black,gold,gray,blue,green,red,yellow,white。對象
固然,還能夠經過輸入十六進制來設置顏色。排序
具體的格式以下:
{ "text":"Hello Minecraft!", "color":"green"//設置爲綠色 }
{ "text":"Hello Minecraft!", "color":"#1BFF00"//經過十六進制來設置成綠色 }
這些文本格式都是布爾值,就是要麼true,要麼false。
obfuscated本質上和其餘添加格式的元素相同,但它將會把文本變爲會一直變化的隨機字符。遊戲只會選擇與原文本等寬的字符做爲其隨機字符。
font用於指定對象內文本的字體,使用的字體須要在assets/<namespace>/font
內進行定義。若輸入字體內不存在的字符,它將會顯示爲一個方框。
字體須要經過資源包添加。遊戲內存在的字體有:
標準銀河字母,就是好看用的。
translate用於在不一樣的語言下顯示不一樣文本,其值爲一個翻譯標識符。
{ "translate":"block.minecraft.stone" }
在簡體中文裏,它會顯示爲石頭,但若是將遊戲語言切換爲英語,這個對象又會顯示爲stone。遊戲裏全部須要顯示文本的地方都使用了翻譯標識符。
若是翻譯標識符在所選語言裏沒有對應值,它將使用en_us.json裏該翻譯標識符的值。若是該翻譯標識符沒法在任何語言文件裏被找到,遊戲會直接輸出翻譯標識符。
說明:en_us.json在客戶端核心jar包的\assets\minecraft\lang
下能夠找到。格式就是 "標識符名稱":"對應語言的翻譯"
若是要添加翻譯標識符,則須要使用資源包。
有些翻譯標識符會使用像「%s」和「%n$s」這樣的參數來表示變量。直接使用 translate時,這些參數會被忽略。想要讓參數也顯示爲特定的文本,就須要使用元素 with。
with是一個列表,列表中的每個元素都應該是原始JSON文本對象。列表內的元素將會這樣分配給每一個參數:
對於「%s」而言,第一個「%s」會使用列表中的第一個元素,而下一個「%s」將會接着使用第二個元素,依次類推,直至再也不出現「%s」。
對於「%n$s」而言,其將會直接使用列表中的第n個元素。
這裏直接引用原來的例子:
「translation.test.complex」是用於測試的翻譯標識符,其在zh_cn.json裏的原始值以下:(我沒找到zh_cn.json這個文件)
前綴,%s%2$s 而後是 %s 和 %1$s 最後是 %s 還有 %1$s!
若是隻使用 translate元素,它看起來是這樣的:
前綴, 而後是 和 最後是 還有 !
如今,咱們用 with來給這些參數賦值:
{ "translate":"translation.test.complex", "with":[ "a", {"text":"b"}, {"text":"c","color":"dark_red"} ] }
具體什麼樣我就不展現了,Markdown很差表示彩色。
前綴,ab 而後是 b 和 a 最後是 c 還有 a!
原始值中的「%1$s」和「%2 $s」都分別對應了第一個元素"a"和第二個元素{"text":"b"},而其中的「%s」按照從前日後的順序分別被賦予了"a"、{"text":"b"}和{"text":"c","color":"dark_red"}。
大體意思就是with裏面的字符串用$s表示,能夠用%n(n表示一個數字) $s 指明第幾個字符串。
除了指明的字符串以外,其他的$s將會按照with裏面的順序自動排序填入。
還沒完,可是今天就到這兒吧。