此特性為基岩版獨有。
本文章介紹的是基岩版中的原始JSON文本。關於Java版的原始JSON文本,請見「
原始JSON文本是一種對顯示的文本加入修改的方法——其可以是改變文本顏色或是根據使用者的區域設定顯示其地區的文本。
在基岩版中,原始JSON文本可以作用於書和羽毛筆的文本(題目和作者除外)以及告示牌的文本。
基岩版的原始文本格式是一個支持以下元素(大部分可選)的JSON對象。
根標籤。
rawtext:含有所有文本對象的列表。
基礎聊天對象。
text:在文本中直接出現的原始文本的字串。在beta 1.16.100.55中加入了selector的組件,可以在指令中輸出實體的名稱,如"@a" "@p" 會被轉換。\n用於換行(回車)。如果文本中有translate,則text的內容則不會被顯示。
translate:使用玩家所選擇的語言顯示的翻譯識別符。此識別符與在assets檔案或材質包的lang檔案中所發現的識別符相同。
with:translate使用的聊天字串參數的列表。
此參數是與當前語言中使用的參數按順序所對應的文本(例如,列表中的第一個元素對應於translate中的「%%1」)。
score:顯示所選目標在所選記分項的當前分數。 如果所選目標或所選記分項不存在,或者所選目標在所選記分項上沒有分數,則不顯示任何內容。
name:選定要顯示分數的目標。可以是@p之類的目標選擇器或假名。如果為目標選擇器,則必須保證不會選擇多個實體。如果為*,則會顯示閱讀者自己的分數(例如,/tellraw @a {"rawtext":[{"scores":{"name":"*","objective":"obj"}}]}會向每個線上玩家顯示他們自己在「obj」記分項的分數)。
objective:選定要顯示分數的目標所在記分項的名稱。
value:可選。如果存在此值,則無論分數是多少,都將使用此值。
基礎原始文本示例:
/tellraw @a { "rawtext" : [ { "text" : "Hello world" } ] }
這將向所有玩家發送一條消息「Hello world」。然而,這是對於英語而言的,請參閱#Translate操作以知道如何使用語言的本地化。
原始文本接受一批文本對象。列表中的每一個對象都會加入到之前的對象中,例如:
/tellraw @a { "rawtext" : [ { "text" : "Hello" }, { "text" : "World" } ] }
用於組合兩種不同語言的文本或給每個字元加上不同的顏色等。
translate允許使用者使用其他語言。如果其和text一起存在,其會覆蓋text。translate提供的字串是語言檔案中字串的名稱。例如,原版Minecraft中,「commands.op.success」是當玩家使用
/tellraw @a { "rawtext" : [ { "translate" : "commands.op.success" } ] }
這將向所有玩家顯示「已將 %s 設為管理員」。請注意,由於在指定了translate的情況下忽略了text,下面的示例將輸出相同的文本:
/tellraw @a { "rawtext" : [ { "text":"Hello World", "translate":"commands.op.success" } ] }
在上面的translate示例中,意見回饋消息為「已將 %s 設為管理員」。如果要顯示名稱或其他文本而不是%s,還需要指定「with」。值得注意的是,「with」只與「translate」一起使用,並且還需要使用[] 而不是{}。例如:
/tellraw @a { "rawtext" : [ { "translate" : "commands.op.success", "with" : [ "Steve" ] } ] }
將向所有玩家顯示「已將 Steve 設為管理員」。
可以在「translate」中直接使用「%%s」,而不需要使用本地檔案中相應的字串。例如:
/tellraw @a { "rawtext": [ { "translate" : "Hello %%s", "with": [ "Steve" ] } ] }
這將向所有玩家顯示「Hello Steve」。
%%s可多次使用,其將會按照「with」中的順序填寫。若%%s的個數多與「with」中的個數,多出的部分顯示為空。
/tellraw @a { "rawtext": [ { "translate" : "Hello %%s and %%s", "with": [ "Steve", "Alex" ] } ] }
這將向所有玩家顯示「Hello Steve and Alex」。
%%s的順序可以變更,方法是使用%%#,並替換#為其在「with」中的排列數字。若「with」中沒有指定此位置,則顯示為空。例如,要在上面的示例中交換Steve和Alex的位置,輸入指令:
/tellraw @a { "rawtext" : [ {"translate" : "Hello %%2 and %%1", "with": [ "Steve", "Alex"] } ] }
這將向所有玩家顯示「Hello Alex and Steve」。