Integrated Dynamics - On the Dynamics of Integration

Путь 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”].

For example, applying the expression ”.root.child1.child2” on the NBT tag { root: { child1: { child2: ”some value” }}} will output ”some value”.

Можно выбрать несколько полей, предоставив массив имен полей или подстановочный знак, например, [fieldA,fieldB] или *.

For example, applying the expression ”.a[b1,b2]*” on the NBT tag { a: { b1: { c: ”some value” }}} will output ”some value”.

При работе со списками NBT можно выбрать конкретные элементы, указав индекс, например, [1].

Например, применение выражения ”.a[1]” к тегу NBT { a: [10,20] } выведет ”20”.

Можно выбрать несколько индексов списка с помощью оператора среза: [start:end:step]. (Требуется только start, остальные элементы могут быть опущены).

Например, применение выражения ”.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].

Оператор
Первое совпадение по пути NBTNBT.path_match_firstПрименить заданное выражение пути NBT к заданному значению NBT и вернуть первое совпадение
  • Строка
  • NBT
  • NBT
Глобальное имя: stringNbtPathMatchFirst(СтрокаNBT) → NBTИмя метода: Строка.nbtPathMatchFirst(NBT) → NBT
Оператор
Все совпадения по пути NBTNBT.path_match_allПрименить заданное выражение пути NBT к заданному значению NBT и вернуть все совпадения в виде списка
  • Строка
  • NBT
  • Список
Глобальное имя: stringNbtPathMatchAll(СтрокаNBT) → СписокИмя метода: Строка.nbtPathMatchAll(NBT) → Список
Оператор
Тест пути NBTNBT.path_testПроверить, соответствует ли заданное выражение пути NBT заданному значению NBT
  • Строка
  • NBT
  • Логическое значение
Глобальное имя: stringNbtPathTest(СтрокаNBT) → Логическое значениеИмя метода: Строка.nbtPathTest(NBT) → Логическое значение