Raw JSONテキストはMinecraftでリッチテキストを表示・送信するために使用されているフォーマットであり、コマンドやデータパックを使用することでプレイヤー自身が送信することも可能である。Raw JSONテキストは対人可読な形式であるJSON形式で記述される。
これを用いることで、/title
や/tellraw
を介したタイトルやチャットメッセージ、看板や本、テキスト表示エンティティ、アイテムのツールチップなど様々な場面で表示される文字列に装飾やクリック・ホバー時の効果、多言語表示などの機能や、スコアボードの値やエンティティ、プレイヤー名など任意の値を代入して表示する設定を実現できる。
Java Edition[]
Raw JSONテキストとして使用出来るJSONデータ形式は、 JSON文字列、 JSON配列、 JSONオブジェクト、 JSONブール値、 JSON数値、即ちnull以外の全てである。以下、それぞれの形式に関する解説を行う。
なお、改行やバックスラッシュのエスケープ、NBT上での文字列化などを含めJSONの記法についてはJSONを参照のこと。
JSONオブジェクト以外[]
JSONテキストの機能を最大限に利用する為には オブジェクト形式を採る必要があるが、特に装飾機能や相互作用性を指定しない場合は以下の形式で略記することができる。
- 文字列
- そのまま表示されるプレーンテキスト。
- オブジェクト形式において textのみを記述したものに等意である。
- 例えば
"A"
と{"text": "A"}
は同じ効果を持つ。
- ブール値
- ブール値は表示の際に文字列("true"または"false")に変換される。
- これは textのみのオブジェクトと同等である。
- 例えば
true
、"true"
、{"text": "true"}
は等意である。
- 数値(倍精度浮動小数点数)
- 数値は文字列に変換されてそのまま表示される。
- これは textのみのオブジェクトと同等である。
- 例えば
1.9E10
、"1.9E10"
、{"text": "1.9E10"}
は全て等意である。
- リスト
- 複数のJSONテキストをまとめて記述することのできるリスト。
- オブジェクトを含めあらゆる形式のJSONテキストをまとめることができる。特に部分部分によって装飾や相互作用機能の異なるテキストを指定するには必須となる。
- このリストは、オブジェクト形式で記述するならば最初の要素の extraに残り全ての要素が添付される形式で記述した場合と同等である[注釈 1]。
- 例えば
["A", "B", "C"]
は{"text": "A", "extra": ["B", "C"]}
に等意である。 - 例えば「01:赤白対抗リレー」と記述するのであれば、リスト形式を用いて
["01:", {"text": "赤", "color": "red"}, {"text": "白", "color": "white"}, {"text": "対抗リレー", "color": "black"}]
と記述できる。
JSONオブジェクト形式[]
Raw JSONテキストは、オブジェクト形式を用いることで装飾や相互作用性、テキストの翻訳、値の代入など様々な機能を利用できる。JSONテキストのオブジェクト形式の構造は以下の通りである。
- :JSONテキストのオブジェクト。本文以外の全ての下位タグは任意である。
- 本文:必須の要素であり、JSONテキストの文章を1つだけ指定する[注釈 2] 部分である。普通のテキスト、被翻訳テキスト、スコアボードの値、ターゲットセレクターに対応するエンティティ名、操作に対応したキー名、任意のNBTタグの値など様々な方法で文字列を指定することができるが、この部分の構造をここに書くと煩雑になるので後項「本文の指定形式」を参照のこと。
- type: 省略可能。JSONテキストの構文解析高速化のために、本文の指定形式を明示するためのフィールド。プレーンテキストは
text
、非翻訳テキストはtranslatable
、スコアボードの値はscore
、エンティティの名前はselector
、キー割り当てはkeybind
、NBTはnbt
を指定する。 - 追加文:本文に続いて表示する追加のテキストを記述する部分。本文のテキストと装飾や相互効果が変わらない場合には有用であるが、別の効果を付したい場合は先述の リスト形式を用いて並列することがJSON構造の階層の深さと複雑さの観点から推奨される。
- extra: 追加のJSONテキストのリスト。
- それぞれの追加のJSONテキスト。通常と同様5つのJSONテキスト形式()が使用できる。特に上書きするよう指定しない場合には本文の装飾コードや相互作用性を全て引き継ぐ。
- 装飾:このJSONテキストに施す装飾を指定する部分。
- color: 任意の要素である。本文の内容を描画する色を指定するのに用いられ、
"black"
、"dark_blue"
、"dark_green"
、"dark_aqua"
、"dark_red"
、"dark_purple"
、"gold"
、"gray"
、"dark_gray"
、"blue"
、"green"
、"aqua"
、"red"
、"light_purple"
、"yellow"
、"white"
(対応する色は装飾コードを参照)と"reset"
(親要素から引き継いだ効果を消去する)のいずれかを指定するか、または"#<hex>"
の形式で16進トリプレット表記による色を指定することができる(例:"#FF0000"
は赤)。16進トリプレット表記の場合、3桁表記ではなく完全な6桁の値で指定する必要がある。 - font: 任意の要素である。この要素に適用されるフォントの、リソースパック内
assets/<名前空間>/font
にあるリソースの場所を指定する。デフォルトでは"minecraft:default"
が指定される。 - bold: 任意の要素である。この要素を太字で描画するかどうかを決定する。
- italic: 任意の要素である。この要素を斜体で描画するかどうかを決定する。逆に、名前を付けたアイテムなど通常斜体で表記されるものはこの値をfalseに設定することで通常体に戻すこともできる。
- underlined: 任意の要素である。この要素に下線を付けて描画するかを決定する。
- strikethrough: 任意の要素である。この要素に
打消し線を付けて描画するかを決定する。 - obfuscated: 任意の要素である。この要素を難読化して描画するかを決定する。
- 相互作用性:テキストをクリックした際、およびカーソルを翳した際の機能を指定する部分。
- insertion: 任意の要素である。ここに文字列を入力すると、このJSONテキストをプレイヤーが⇧ Shiftを押しながらクリックした際に、この文字列がプレイヤーのチャット欄に挿入されるようになる。すでにプレイヤーがチャット欄に入力している文字がこの機能によって上書きされることはない。なおこの機能はチャットメッセージでのみ有効である。
- clickEvent: 任意の要素である。プレイヤーがテキストをクリックしたときに発生する動作を指定することができる。なおこの機能は特記してあるものを除いてすべて記入済みの本かチャットメッセージでのみ利用可能である。
- action: クリックされた際に発生する動作。有効な値は以下の通り。
- "open_url": valueをURLとしてユーザーのデフォルトのブラウザで開く。
- "open_file": ユーザーのコンピュータ内の valueの位置にあるファイルを開く。これはゲームによって自動生成されたメッセージ(スクリーンショット撮影時の通知など)のみに用いられ、セキュリティの問題上プレイヤーが用いることはできない。
- "run_command": valueで指定されたコマンドを実行する。チャットや記入済みの本に加え、看板でも機能する。ただしこの機能が動作するのは本文部分のみであり、 extra内のJSONテキストでこの機能を設定しても機能しない。チャットや本では、クリックしたプレイヤーがそのコマンドを自身で入力して実行した場合と同じように機能するため、valueの最初に
/
を前置する必要があり、またクリックしたプレイヤーが十分な権限レベルを持っていないとコマンドは実行されない。一方看板では、実行者が看板の位置に対応するサーバーとなるため、コマンドブロックと同様の権限レベルでコマンドが実行される。また看板がコマンドを実行する際の@s
に対応するエンティティはクリックしたプレイヤーとなり、かつコマンドブロックと同様チャットの文字数制限を受けず、/
を前置する必要もない。 - "suggest_command": チャット欄を開き valueを入力する。チャット欄にメッセージがすでに入力されている場合は上書きされる。またこの機能は本では機能しない[1]。
- "change_page": 記入済みの本でのみ使用可能である。 valueページ目までページを捲る(指定されたページが存在する場合のみ)。
- "copy_to_clipboard": valueをクリップボードにコピーする。
- value: 上述の各動作の対象となる値(URL、チャット、ファイルの場所、コマンド、本のページなど)。
- action: クリックされた際に発生する動作。有効な値は以下の通り。
- hoverEvent: 任意の要素である。テキストにカーソルをかざした際にツールチップを表示させることができる。
- action: 表示するツールチップの種類。有効な値は以下の通り。
"show_text"
: Raw JSONテキストを表示する。"show_item"
: インベントリ内でアイテムにカーソルをかざした時のような、アイテムのツールチップを表示する。"show_entity"
: エンティティの名前、種類、UUIDが記されたツールチップを表示する。 selectorで使用される。
- contents: このタグの形式は actionによって異なる。
"show_text"
の場合: ツールチップに表示するRaw JSONテキストを入力する。形式は文字列、配列、オブジェクトのどれでも可だが、ツールチップ上のテキストでは clickEvent及び hoverEventが機能しないことに注意。"show_item"
の場合: 表示されるアイテムのデータを入力する。- id: アイテムの名前空間ID。無効の場合は
minecraft:air
として見なされる。 - count: 任意の要素である。スタックされたアイテムの個数。
- tag: 任意の要素である。アイテムに関する追加の情報に関するSNBTを含む文字列である。詳しくはPlayer.datフォーマット#アイテムのフォーマットを参照。
- id: アイテムの名前空間ID。無効の場合は
"show_item"
の場合: 表示したいエンティティを入力する。- name: 任意の要素であり、入力されていない場合には非表示になる。エンティティ名として表示するRaw JSONテキストを入力する。
- type: エンティティの種類を指定する文字列。エンティティの名前空間IDでなければならず、無効の値を指定した場合は
minecraft:pig
として見なされる。 - id: ハイフン付き16進表記か四進数配列表記によるエンティティのUUID。有効なUUIDを入力する必要がある。
- action: 表示するツールチップの種類。有効な値は以下の通り。
本文の指定形式[]
Raw JSONテキストの本文部分には普通のテキスト、被翻訳テキスト、スコアボードの値、ターゲットセレクターに対応するエンティティ名、操作に対応したキー名、任意のNBTタグの値など様々な方法で文字列を指定することができる。
以下、それぞれの方法に対する本文の記述形式を解説する。
プレーンテキスト[]
プレーンテキストが表示される。
- JSONテキストのオブジェクト。
- text: 表示するプレーンテキスト。数値やブール値でもよい。
被翻訳テキスト[]
テキストの各部分を現在選択されている言語に翻訳して表示する。この機能はクライアント側で選択されている言語を使用するため、サーバー上にそれぞれ別の言語を指定しているプレイヤーがいる場合、その要素はそれぞれが指定している個別の言語に翻訳されて表示される。
翻訳はビルトインのものを含めた全てのリソースパック内にある言語ファイルから参照される。それぞれの言語ファイルにおいては、最上位のルートオブジェクトの内部に"death.attack.badRespawnPoint.message": "%1$sは%2$sに殺された",
のような翻訳キーと翻訳後の文字列の組を羅列することによって翻訳が定義されている。
被翻訳テキストには、プレイヤー名など任意の文字列を代入する部分を設定することができる。代入する値は被翻訳テキストに付帯する withというリストから参照される。文字列代入部は、翻訳文字列上では%s
(リスト内の要素を順番に代入)または%n$s
(リスト内第n
項目の要素を代入)の形をで指定する[注釈 3]。
- JSONテキストのオブジェクト。
- translate: 翻訳キー。言語ファイルの識別子(各翻訳の前半部分)に対応しており、プレイヤーが選択した言語での対応する文字列を表示する。ただし対応する識別子が存在しない場合は翻訳キーそのものが翻訳後のテキストとして表示される。
- with: 任意の要素である。翻訳されたテキストの
%s
などに挿入されるJSONテキストのリスト。 translateが存在しない場合には無視される。- 挿入される一つ一つのJSONテキスト。挿入用のJSONテキストが用意されていなかった場合は、挿入部はテキスト無しとして表示される。
- fallback: 任意の要素である。translateに相当する識別子が翻訳ファイル内に存在しない場合に代わりに表示するテキストである。translateに相当する識別子が翻訳ファイル内になく且つfallbackも空である場合には、翻訳キーそのものが表示される。
スコアボードの値[]
スコアボード上の値を表示することができる。
値の確定の仕様 |
---|
このコンポーネントは値を確定したのち、確定された値を含む textに変換される。 |
- JSONテキストのオブジェクト。
- score: objectiveで指定したオブジェクトに保存されている、nameに対応するエンティティの現在のスコアを表示する。指定されたエンティティやオブジェクトが存在しない場合、または指定したオブジェクトでそのエンティティが追跡されていない場合は何も表示しない。スコアに設定されている表示形式も反映される。
- name: スコアホルダーの名前。@pなどのターゲットセレクターでもエンティティの名前でも構わないが、ターゲットセレクターの場合は指定先が単数である必要がある(複数になり得る種類のターゲットセレクターに関しては引数
limit=1
を付せばよい)。"*"
を指定した場合は読み手自身のスコアが表示される(例えば/tellraw @a {"score":{"name":"*","objective":"obj"}}
ではオンラインの全てのプレイヤーに"obj"という名前のオブジェクト内の自身のスコアを表示する)[注釈 4]。 - objective: プレイヤーのスコアが格納されているオブジェクトの内部名。
- value: 任意の要素。指定した場合は、スコアの値に関わらずこの値を表示する。
- name: スコアホルダーの名前。@pなどのターゲットセレクターでもエンティティの名前でも構わないが、ターゲットセレクターの場合は指定先が単数である必要がある(複数になり得る種類のターゲットセレクターに関しては引数
- score: objectiveで指定したオブジェクトに保存されている、nameに対応するエンティティの現在のスコアを表示する。指定されたエンティティやオブジェクトが存在しない場合、または指定したオブジェクトでそのエンティティが追跡されていない場合は何も表示しない。スコアに設定されている表示形式も反映される。
エンティティ名[]
ターゲットセレクターによって検出された単数または複数のエンティティの名前を表示する。
検出されたエンティティが1体の場合はエンティティの名前そのものが表示され、複数の場合はそれらの名前が灰色のカンマに区切られて"名前1, 名前2, 名前3"のように表示される。エンティティが一体も検出されなかった場合はテキスト無しとして表示される。
またエンティティの名前にカーソルを翳すとエンティティの名前、種類、UUIDの書かれたツールチップが表示される。またプレイヤーの名前をクリックするとそのプレイヤーに囁くためのコマンドが入力される。非プレイヤーエンティティの名前を⇧ Shiftを押したままクリックした場合は、そのUUIDがチャット欄に入力される。
値の確定の仕様 |
---|
|
- JSONテキストのオブジェクト。
- selector: ターゲットセレクターを含む文字列。
- separator: 任意の要素であり、デフォルトでは
{"color": "gray", "text": ", "}
(灰色のコロン)に指定されている。ターゲットセレクターが複数のエンティティを検出した際にそれぞれの名前の間に挿入されるRaw JSONテキストである。
設定されたキー[]
特定の操作に対して設定されているキーを表示する。これはクライアント側のキー設定を使用するため、異なるキー設定をしているプレイヤーがいるサーバーにおいてはそれぞれのプレイヤーには自分の環境で設定してあるキーが表示される。
- JSONテキストのオブジェクト。
- keybind: それに対応するキーを表示したい、特定の操作。例えば
{"keybind": "key.inventory"}
(インベントリの開閉)は、デフォルトのキー設定では"e"を表示する。
- keybind: それに対応するキーを表示したい、特定の操作。例えば
NBTの値[]
エンティティ、ブロックエンティティ、NBTストレージなどのNBTの値を表示する。
NBTの文字列はその内容を表示し、その他のNBTはシンボルの間に空白を入れないSNBTとして表示される。 interpretがtrueに設定されている場合は、NBTを構文解析して独自のRaw JSONテキストコンポーネントで表示しようと試みる。JSONとSNBTは互換性が無いため、通常この機能はNBTの文字列にのみ作用する。 interpretがtrueで、構文解析に失敗した場合は要素はテキスト無しとして表示される。複数の値を持つパスを用いるか複数のエンティティを指定したなどで複数のNBTが検出された場合には"値1, 値2, 値3, 値4"の形で表示される。
値の確定の仕様 |
---|
|
- JSONテキストのオブジェクト。
- nbt: エンティティやブロックエンティティ、ストレージからNBTの値を探すときに使用されるNBTパス。 block、 entity、 storageのうちいずれかが入力されている必要がある。複数存在しても問題ないが、使用されるのは1つのみである[注釈 5]。
- interpret: 任意の要素であり、通常はfalseに設定されている。trueの場合は各NBTの値を解析しRaw JSONテキストコンポーネントとして表示するよう試みられる。 nbtが存在しない場合は無視される。
- separator: 任意の要素であり、デフォルトでは
{"text": ", "}
(半角カンマと半角スペースを表示)である。要素が複数のタグを含む場合に、要素同士を分離して記述するために各タグ間に内挿される。 - block: NBT値の取得先のブロックの座標を特記するための文字列。座標は絶対座標、相対座標、ローカル座標のいずれの場合も取り得る。
- entity: NBT値の取得先のエンティティのターゲットセレクターを特記する文字列。 nbtが存在しない場合は無視される。
- storage: NBT値の取得先のコマンドストレージの名前空間IDを特記するための文字列。 nbtが存在しない場合は無視される。
- source: 構文解析高速化のための任意のフィールド。NBTの値の取得先のタイプを、
entity
、block
、storage
から指定する。
JSONテキストの値の確定[]
score、 selector、 nbtといった特定の要素は全ての状況で機能するわけではなく、ワールドから適切な値を取得し単純なJSONテキストに変換する「値の確定」を行わなければならない。こうした確定は看板の読み込み時、記入済みの本が開かれたときや、/tellraw
や/title
のほか、 entityが設定されたset_nameやset_loreのアイテム修飾子でも行われる。
エンティティやアイテムのカスタム名、スコアボードのオブジェクト名では値の確定が単体では行われないので、普通 score、 selector、 nbtのJSONテキストは表示できない。
さらに、値の確定が行われるとその値は以降変更されないため、単純なコンポーネントと違ってこれらの要素は環境によってその値を更新することはできない。
Bedrock Edition[]
- The root tag.
- rawtext: A list contains all text object.
- To be valid, an object must contain one content tag: text, translate, score, or selector. Having more than one is allowed, but only one is used.[注釈 6]
- Content: Plain Text
- text: A string containing plain text to display directly.
- Content: Translated Text
- translate: A translation identifier, to be displayed as the corresponding text in the player's selected language. If no corresponding translation can be found, the identifier itself is used as the translation text. This identifier is the same as the identifiers found in lang files from assets or resource packs.
- with: Optional. A list of raw JSON text component arguments to be inserted into slots in the translation text. Ignored if translate is not present.
- Translations can contain slots for text that is not known ahead of time, such as player names. These slots are defined in the translation text itself, not in the JSON text component, and generally take the form
%%1
(displays the first argument; replace1
with whichever index is desired). If no argument is provided for a slot, the slot is not displayed.
- Translations can contain slots for text that is not known ahead of time, such as player names. These slots are defined in the translation text itself, not in the JSON text component, and generally take the form
- Content: Scoreboard Value (requires resolution)
- score: Displays a score holder's current score in an objective. Displays nothing if the given score holder or the given objective do not exist, or if the score holder is not tracked in the objective.
- name: The name of the score holder whose score should be displayed. This can be a selector like @p or an explicit name. If the text is
"*"
, it shows the reader's own score (for example,/tellraw @a { "rawtext" : [ { "score" : { "name" : "*" , "objective" : "obj"} } ] }
shows every online player their own score in the "obj" objective).[注釈 7] - objective: The internal name of the objective to display the player's score in.
- value: Optional. If present, this value is used regardless of what the score would have been.
- name: The name of the score holder whose score should be displayed. This can be a selector like @p or an explicit name. If the text is
- Content: Entity Names (requires resolution)
- selector: A string containing a selector. Displayed as the name of the player or entity found by the selector. If more than one player or entity is found by the selector, their names are displayed in either the form "Name1 and Name2" or the form "Name1, Name2, Name3, and Name4". Hovering over a name shows a tooltip with the name, type, and UUID of the target. Clicking a player's name suggests a command to whisper to that player. Shift-clicking a player's name inserts that name into chat. Shift-clicking a non-player entity's name inserts its UUID into chat.
- To be valid, an object must contain one content tag: text, translate, score, or selector. Having more than one is allowed, but only one is used.[注釈 6]
- rawtext: A list contains all text object.
- Basic raw text example
/tellraw @a { "rawtext" : [ { "text" : "Hello world" } ] }
This sends a message to all players saying "Hello World" in English only. See the Translate action to see how to send localized texts.
Appending[]
Raw text takes in an array of text objects. Each object in the list is added to the previous object. For example, /tellraw @a { "rawtext" : [ { "text":"Hello" }, { "text" : " World" } ] }
outputs the same "Hello World" as the first example. Appending text can be useful to combine 2 different localized texts, or apply different colors to each word etc.
Breaking lines[]
You can go down a line by using \n For example,
tellraw @a { "rawtext" : [ { "text" : "Hello\nNext line" } ] }
Translate[]
The translate object allows creators to provide localized text to users. If translate is specified along with text, translate overrides the text object. The string to provide to translate is the name of the string in the language files. For example, in Vanilla Minecraft "commands.op.success" is the string that displays when /op is used on a player successfully.
/tellraw @a { "rawtext": [ { "translate" : "commands.op.success" } ] }
This outputs "Opped %s" to all players. Note that because of text being ignored with translate specified, the following example outputs the same text:
/tellraw @a { "rawtext" : [ { "text":"Hello World", "translate":"commands.op.success" } ] }
With[]
In the translate example above, it outputs "Opped %s". To have a name or other text show up instead of %s, "with" needs to be specified as well. Note that "with" only works with "translate" and also requires an array []
instead of curly brackets {}
.
/tellraw @a { "rawtext": [ { "translate" : "commands.op.success", "with": [ "Steve" ] } ] }
If you want to use a translated text inside the "with" component, instead of an array it needs to be another rawtext component (which consists of an array of JSON texts). The following example outputs "Opped Apple".
/tellraw @a { "rawtext": [ { "translate" : "commands.op.success", "with": { "rawtext": [ { "translate" : "item.apple.name" } ] } } ] }
%%s[]
"translate" and "%s" can be used without needing a corresponding string in the localization files. For example:
/tellraw @a { "rawtext": [ { "translate" : "Hello %%s", "with": [ "Steve" ] } ] }
This outputs "Hello Steve" to all players.
Multiple %s[]
%%s can be used multiple times. They are filled in, in the order specified
/tellraw @a { "rawtext": [ { "translate" : "Hello %%s and %%s", "with": [ "Steve", "Alex" ] } ] }
Outputs: "Hello Steve and Alex"
You can again use a rawtext component to replace the plain string array, like so
/tellraw @a { "rawtext": [ { "translate" : "Hello %%s and %%s", "with": { "rawtext" : [ { "text" : "Steve" }, { "translate" : "item.apple.name" } ] } } ] }
Outputs: "Hello Steve and Apple"
Ordering with %%#[]
The order to fill in %s to be filled in can be changed by instead specifying it with %%#, replacing # with an actual number. For example, to swap the position of Steve and Alex in the above example, instead run the following:
/tellraw @a { "rawtext" : [ {"translate" : "Hello %%2 and %%1", "with": [ "Steve", "Alex"] } ] }
Outputs: "Hello Alex and Steve"
Formatting[]
String formatting is still possible, but not using the JSON tags used in Java Edition. Instead, Formatting codes are used to change text color and style.
歴史[]
Java Edition | |||||
---|---|---|---|---|---|
1.7.2 | 13w37a | Raw JSONテキストによって作動するコマンド、/tellraw が追加された。 | |||
1.8 | 14w02a | テキストコンポーネントinsertion が追加された。 | |||
14w07a | テキストコンポーネントscore が追加された。 | ||||
14w20a | Raw JSONテキストによって作動するコマンド、/title が追加された。
| ||||
テキストコンポーネントselector が追加された。 | |||||
14w25a | 看板や記入済みの本で機能するようになった。 | ||||
1.12 | 17w16a | テキストコンポーネントkeybind が追加された。 | |||
1.13 | 18w01a | カスタマイズされた名前が使用できるようになった。 | |||
18w05a | Raw JSONテキストによって作動するコマンド、/bossbar 、及び引数<name> が追加された。 | ||||
1.14 | 18w43a | テキストコンポーネントnbt 、block 、entity が追加された。
| |||
アイテムのツールチップで機能するようになった。 | |||||
18w44a | テキストコンポーネントinterpret が追加された。 | ||||
1.15 | 19w39a | テキストコンポーネントstorage が追加された。 | |||
19w41a | actioncopy_to_clipboard がclickEvent 用に追加された。 | ||||
1.16 | 20w17a | テキストコンポーネントfont が追加された。
| |||
現在は使用されておらず非推奨だが、value の代わりに使用が可能な引数contents 、hoverEvent が追加された、 | |||||
color コンポーネントで# 付き16進表記が使用できるようになった。(例:"color":"#ff0088" ) | |||||
1.19.4 | 23w03a | translate (被翻訳テキスト)のコンパウンドに新しいフィールドfallback が追加された。
| |||
translate 内に無関係の要素を入力すると、無視されずにエラーとして見なされるようになった。 | |||||
1.20.3 | 23w40a | 構文解釈とエラー検知の高速化のための typeが追加された。 | |||
hoverEventのタイプshow_entity で使用される idにUUIDを入力する際、ハイフン付き16進表記だけでなく四整数配列形式も使用できるようになった。 | |||||
プレーンテキスト(装飾・特殊機能のないテキスト)は常にオブジェクト形式({"text": "あいう"} )ではなくJSON文字列として直列化されるようになった。 | |||||
ネットワーク上で送信される際には、常にNBTとして直列化されるようになった。 | |||||
translateにおいて、JSONブール値やJSON数値は文字列に直列化されなくなった。 | |||||
null 、[] の表記は使用できなくなった。 | |||||
color clickEvent hoverEvent および hoverEventのタイプshow_entity で使用されるname 、タイプshow_item で使用されるtag における構文エラーは無視されるようになった。 | |||||
23w42a | typeにselector を指定できるようになった。
| ||||
nbtに構文解析高速化のための任意のフィールド sourceが追加された。 | |||||
Bedrock Edition | |||||
1.9.0 | beta 1.9.0.0 | Raw JSONテキストによって作動するコマンド、/tellraw が追加された。 | |||
1.16.100 | beta 1.16.100.55 | テキストコンポーネントscore 、selector が追加された。 |
関連項目[]
注釈[]
- ↑ これゆえ、内に記述した要素は全て最初の要素の子要素として処理される。よって最初の要素に適用された装飾コードは残りの全てに関しても継承されることに注意されたい。例えば
[{"text": "A", "color": "red"}, "B", "C"]
では"A"を含めすべての文字が赤色で表示される。 - ↑ 本文のタグは text、 translate、 score、 selector、 keybind、 nbtの順に確認される。複数存在する場合は、リストの最初に来ているものが使用される。
- ↑
%s
で「次の」引数を順番に指定していく場合、%3$s
などは選択の移動に関与しない。例えば withから「太郎」「花子」「敏夫」の順で与えられている時、「%s、%2$s、%s、こんにちは。」は「太郎、花子、花子、こんにちは。」と表示される(%2$sの後だからといって次の%sが3番目の敏夫を参照することはなく、一つ前の%sが指定した次の要素、この場合は2番目を指定する) - ↑ 読み手のスコアを指定する方法は、メッセージが各個人に対して表示される場合(チャットのメッセージ、
/title
、記入済みの本など)にのみ使用できる。看板のようなブロックには使用できない。 - ↑ NBTのソースは block、 entity、 storageの順で確認され、複数存在する場合はリスト内で最初に確認されたものが使用される。
- ↑ Content tags are checked in the order translate, text, selector, score. If multiple are present, whichever one comes first in that list is used.
- ↑ Showing the reader's own score only works in situations where a message has one singular reader. That is chat messages,
/titleraw
s, and written books.[要検証] It doesn't work for things like signs that can have more than one "reader".[要検証]
脚注[]
デモ版 | |||||||
---|---|---|---|---|---|---|---|
開発 |
| ||||||
技術的情報 |
| ||||||
マルチプレイ | |||||||
ゲームのカスタマイズ |