NBTパス
When working with complex NBT tags, you can quickly require complex operator chains for reading deeply nested NBT values. In order to simplify this task, String-based NBT Path expressions can be used to determine the path within an NBT tag.
最も単純なNBTパス式は、.fieldNameや.[”fieldName”]などのフィールドセレクターのチェーンで構成されます。
たとえば、式".root.child1.child2”をNBTタグ{ root: { child1: { child2: ”some value” }}}に適用すると、”some value”が出力されます。
フィールド名の配列またはワイルドカードを指定することで、複数のフィールドを選択できます。例: [fieldA,fieldB]または*
たとえば、式".a[b1,b2]*”をNBTタグ{ a: { b1: { c: ”some value” }}}に適用すると、”some value”が出力されます。
NBTリストを操作する場合、[1]などのインデックスを指定して特定のエントリを選択できます。
たとえば、式".a[1]”をNBTタグ{ a: [10,20] }に適用すると、”20”が出力されます。
スライス演算子を使用して、複数のリストインデックスを選択できます: [start:end:step] (開始のみが必須で、他の要素は省略できます)
たとえば、式".a[1:4:2]"をNBTタグ{ a: [0,1,2,3,4,5] }に適用すると、[1,3]が出力されます。
フィルター構文を使用すると、より高度なフィルター式も使用できます。たとえば、[?(@.childName < 10)](@は現在のタグ、..は親タグ、$はルートタグを参照します)
たとえば、式”$.a[?(@ == 3)]”をNBTタグ{ a: [0,1,2,3,4,5] }に適用すると、[3]が出力されます。
- 文字列
- NBT
- NBT
- 文字列
- NBT
- リスト
- 文字列
- NBT
- ブール