Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
註冊
Advertisement
Disambig gray  本文章介紹的是基岩版中的原始JSON文字。關於Java版的原始JSON文字,請見「原始JSON文字格式」。
Information icon
此特性為基岩版獨有。

原始JSON文字是一種對顯示的文字加入修改的方法——其可以是改變文字顏色或是根據使用者的區域設定顯示其地區的文字。

基岩版中,原始JSON文字可以作用於/tellraw的內容、/titleraw的標題、書和羽毛筆的文字(題目和作者除外)以及告示牌的文字。

原始文字格式[]

基岩版的原始文字格式是一個支持以下元素(大部分可選)的JSON對象。

  • 根標籤。
    •  rawtext:含有所有文字對象的列表。
      • 基礎聊天對象。
        •  text:在文字中直接出現的原始文字的字串。\n用於換行(回車)。如果文字中有translate,則text的內容會被translate覆蓋。
        •  selector:在1.16.100.55中加入了selector的組件,可以在指令中輸出實體的名稱,如"@a" "@p" 會被轉換。(如/tellraw @a { "rawtext" : [ { "selector" : "@s" } ] } 會向全體玩家打印執行者玩家的名字)
        •  translate:使用玩家所選擇的語言顯示的翻譯識別符。此識別符與在assets檔案或紋理包的lang檔案中所發現的識別符相同。
        •  withtranslate使用的聊天字串參數的列表。參數支持["string", ...]或{rawtext}。
          • 此參數是與目前語言中使用的參數按順序所對應的文字(例如,列表中的第一個元素對應於translate中的「%%1」)。
        •  score:顯示所選目標在所選計分項的目前分數。 如果所選目標或所選計分項不存在,或者所選目標在所選計分項上沒有分數,則不顯示任何內容。
          •  name:選定要顯示分數的目標。可以是@p之類的目標選擇器或假名。如果為目標選擇器,則必須保證不會選擇多個實體。如果為*,則會顯示閱讀者自己的分數(例如,/tellraw @a {"rawtext":[{"score":{"name":"*","objective":"obj"}}]}會向每個線上玩家顯示他們自己在「obj」計分項的分數)。
          •  objective:選定要顯示分數的目標所在計分項的名稱。
          •  value:可選。如果存在此值,則無論分數是多少,都將使用此值。

基礎原始文字示例:

/tellraw @a { "rawtext" : [ { "text" : "Hello world" } ] }

這將向所有玩家發送一條訊息「Hello world」。然而,這是對於英語而言的,請參閱#Translate操作以知道如何使用語言的本地化。

組件需要包裹在「{ }」內(如 { "text" : "Hello world" } )。且組件名和值需要用「 」括起(如 "text""Hello world" ),組件的賦值需要使用「:」進行(如 "text" : "Hello world" ),每個組件都要在上級「[ ]」中。

追加用法[]

原始文字接受一批文字對象。列表中的每一個對象都會加入到之前的對象中,例如:

/tellraw @a { "rawtext" : [ { "text" : "Hello" }, { "text" : "World" } ] }

用於組合兩種不同語言的文字或給每個字元加上不同的顏色等。

Translate[]

translate允許使用者使用其他語言。如果其和text一起存在,其會覆蓋texttranslate提供的字串是語言檔案中字串的名稱。例如,原版Minecraft中,「commands.op.success」是當玩家使用/op成功時顯示的字串。

/tellraw @a { "rawtext" : [ { "translate" : "commands.op.success" } ] }

這將向所有玩家顯示「已將 %s 設為管理員」。請注意,由於在指定了translate的情況下忽略了text,下面的示例將輸出相同的文字:

/tellraw @a { "rawtext" : [ { "text":"Hello World", "translate":"commands.op.success" } ] }

With[]

在上面的translate示例中,意見回饋訊息為「已將 %s 設為管理員」。如果要顯示名稱或其他文字而不是%s,還需要指定「with」。值得注意的是,「with」只與「translate」一起使用,其參數可以使用使用列表類型的[] 或者Rawtext{}。例如:

/tellraw @a { "rawtext" : [ { "translate" : "commands.op.success", "with" : [ "Steve" ] } ] }

將向所有玩家顯示「已將 Steve 設為管理員」。

%%s[]

可以在「translate」中直接使用「%%s」,而不需要使用本地檔案中相應的字串。例如:

/tellraw @a { "rawtext": [ { "translate" : "Hello %%s", "with": [ "Steve" ] } ] }

這將向所有玩家顯示「Hello Steve」。

多個%%s[]

%%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」。

同時使用多個組件[]

組件於組件之間需要用「,」(半形逗號)隔開。

/tellraw @a { "rawtext" : [ { "selector" :  "@s " },{ "text" : " 记分板obj的值是:" },{ "score" : { "name" : "@s" , "objective" : "obj"} } ] }

會打印出執行者的名字,加上文字「計分板obj的值是: 」,加上自己obj的計分板數值

假設玩家叫Steve,obj計分板值為1234,則會輸出 "Steve 計分板obj的值是: 1234" 。

語言

Advertisement