Дає можливість отримувати, змінювати і вилучати NBT-дані сутностей і блоків-сутностей.
Синтаксис[]
Існує чотири інструкції щодо /data
(get
, merge
, modify
, remove
), і цілі/джерела, на які посилається кожна команда інструкції, можуть бути будь-якими block <targetPos>
, entity <target>
, або storage <target>
.
data get block <targetPos> [<path>] [<scale>]
data get entity <target> [<path>] [<scale>]
data get storage <target> [<path>] [<scale>]
data merge block <targetPos> <nbt>
data merge entity <target> <nbt>
data merge storage <target> <nbt>
data modify block <targetPos> <targetPath> (append|insert <index>|merge|prepend|set) from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> (append|insert <index>|merge|prepend|set) from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> (append|insert <index>|merge|prepend|set) from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> (append|insert <index>|merge|prepend|set) value <nbt>
data modify entity <target> <targetPath> (append|insert <index>|merge|prepend|set) from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> (append|insert <index>|merge|prepend|set) from entity <source> <sourcePath>
data modify entity <target> <targetPath> (append|insert <index>|merge|prepend|set) from storage <source> <sourcePath>
data modify entity <target> <targetPath> (append|insert <index>|merge|prepend|set) value <value>
data modify storage <target> <targetPath> (append|insert <index>|merge|prepend|set) from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> (append|insert <index>|merge|prepend|set) from entity <source> <sourcePath>
data modify storage <target> <targetPath> (append|insert <index>|merge|prepend|set) from storage <source> <sourcePath>
data modify storage <target> <targetPath> (append|insert <index>|merge|prepend|set) value <value>
data remove block <targetPos> <path>
data remove entity <target> <path>
data remove storage <target> <path>
Синтаксис відображається різними способами
Спрощене дерево: /data
- де заміщені аргументи:
<TARGET>
=(block <targetPos> | entity <target> | storage <target>)
<MODIFICATION>
=(append|insert <index>|merge|prepend|set)
<SOURCE>
=(block <sourcePos> | entity <source> | storage <source>)
Всеосяжне дерево: /data
… get
… block <targetPos> [<path>] [<scale>]
… entity <target> [<path>] [<scale>]
… storage <target> [<path>] [<scale>]
… merge
… block <targetPos> <nbt>
… entity <target> <nbt>
… storage <target> <nbt>
… modify
… block <targetPos> <targetPath> (append|insert <index>|merge|prepend|set)
… from
… block <sourcePos> [<sourcePath>]
… entity <source> [<sourcePath>]
… storage <source> [<sourcePath>]
… value <value>
… entity <target> <targetPath> (append|insert <index>|merge|prepend|set)
… from
… block <sourcePos> [<sourcePath>]
… entity <source> [<sourcePath>]
… storage <source> [<sourcePath>]
… value <value>
… storage <target> <targetPath> (append|insert <index>|merge|prepend|set)
… from
… block <sourcePos> [<sourcePath>]
… entity <source> [<sourcePath>]
… storage <source> [<sourcePath>]
… value <value>
… remove
… block <targetPos> [<path>]
… entity <target> [<path>]
… storage <target> [<path>]
Посічене дерево: /data
… get (block <targetPos>|entity <target>|storage <target>) [<path>] [<scale>]
… merge (block <targetPos>|entity <target>|storage <target>) <nbt>
… modify (block <targetPos>|entity <target>|storage <target>) <targetPath> (append|insert <index>|merge|prepend|set)
… from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
… value <value>
… remove (block <targetPos>|entity <target>|storage <target>) <path>
Мінімізований: /data (get (block <targetPos>|entity <target>|storage <target>) [<path>] [<scale>]|merge (block <targetPos>|entity <target>|storage <target>) <nbt>|modify (block <targetPos>|entity <target>|storage <target>) (append|insert <index>|merge|prepend|set) (from (block <sourcePos>|entity <source>|storage <source>) <sourcePath>|value <value>)|remove (block <targetPos>|entity <target>|storage <target>) <path>)
Максимізовано: data get block <targetPos> [<path>] [<scale>]
data get entity <target> [<path>] [<scale>]
data get storage <target> [<path>] [<scale>]
data merge block <targetPos> <nbt>
data merge entity <target> <nbt>
data merge storage <target> <nbt>
data modify block <targetPos> <targetPath> append from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> append from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> append from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> append value <nbt>
data modify block <targetPos> <targetPath> insert <index> from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> value <nbt>
data modify block <targetPos> <targetPath> merge from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> merge from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> merge from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> merge value <nbt>
data modify block <targetPos> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> prepend from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> prepend from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> prepend value <nbt>
data modify block <targetPos> <targetPath> set from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> set from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> set from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> set value <nbt>
data modify entity <target> <targetPath> append from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> append from entity <source> <sourcePath>
data modify entity <target> <targetPath> append from storage <source> <sourcePath>
data modify entity <target> <targetPath> append value <value>
data modify entity <target> <targetPath> insert <index> from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> insert <index> from entity <source> <sourcePath>
data modify entity <target> <targetPath> insert <index> from storage <source> <sourcePath>
data modify entity <target> <targetPath> insert <index> value <value>
data modify entity <target> <targetPath> merge from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> merge from entity <source> <sourcePath>
data modify entity <target> <targetPath> merge from storage <source> <sourcePath>
data modify entity <target> <targetPath> merge value <value>
data modify entity <target> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> prepend from entity <source> <sourcePath>
data modify entity <target> <targetPath> prepend from storage <source> <sourcePath>
data modify entity <target> <targetPath> prepend value <value>
data modify entity <target> <targetPath> set from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> set from entity <source> <sourcePath>
data modify entity <target> <targetPath> set from storage <source> <sourcePath>
data modify entity <target> <targetPath> set value <value>
data modify storage <target> <targetPath> append from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> append from entity <source> <sourcePath>
data modify storage <target> <targetPath> append from storage <source> <sourcePath>
data modify storage <target> <targetPath> append value <value>
data modify storage <target> <targetPath> insert <index> from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> insert <index> from entity <source> <sourcePath>
data modify storage <target> <targetPath> insert <index> from storage <source> <sourcePath>
data modify storage <target> <targetPath> insert <index> value <value>
data modify storage <target> <targetPath> merge from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> merge from entity <source> <sourcePath>
data modify storage <target> <targetPath> merge from storage <source> <sourcePath>
data modify storage <target> <targetPath> merge value <value>
data modify storage <target> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> prepend from entity <source> <sourcePath>
data modify storage <target> <targetPath> prepend from storage <source> <sourcePath>
data modify storage <target> <targetPath> prepend value <value>
data modify storage <target> <targetPath> set from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> set from entity <source> <sourcePath>
data modify storage <target> <targetPath> set from storage <source> <sourcePath>
data modify storage <target> <targetPath> set value <value>
data remove block <targetPos> <path>
data remove entity <target> <path>
data remove storage <target> <path>
Аргументі[]
(block <targetPos>|entity <target>|storage <target>)
:
<targetPos>
— Положення<x> <y> <z>
цільового об'єкта плитки, над яким буде застосовуватися NBT<target>
— Дійсний UUID або цільова селекторна змінна для суб'єкта господарювання, над яким слід керувати NBT<target>
— Дійсний ідентифікатор простору імен для сховища, над яким буде працювати
get ... [<path>] [<scale>]
:
<path>
— Дійсне ім'я шляху, що визначає конкретну NBT для отримання<scale>
— Скаляр для повернення значення команди
merge ... <nbt>
:
<nbt>
— Складений тег. Найпростіший дійсний ввід{}
.
modify ... <targetPath> (append|insert <index>|merge|prepend|set)
:
<targetPath>
— Дійсне ім’я шляху, що визначає конкретну NBTTT target для зміни<index>
— Дійсне ціле число із зазначенням індексу елемента в списку
… from (block <sourcePos>|entity <source>) <sourcePath>
:
<sourcePos>
— Положення<x> <y> <z>
вихідного блоку, NBT якого слід використовувати<source>
— Дійсне ім’я гравця, UUID або змінної вибору цілі об'єкта джерела, NBT якого слід використовувати<sourcePath>
— Дійсне ім'я шляху, що визначає конкретну NB source NBT, яку слід використовуватиmodify
… value <value>
:
<value>
— Числове значення, яке слід використовувати для модифікації цільового NBT. Повинно відповідати типу даних
remove ... <path>
:
<path>
— Дійсне ім'я шляху до NBT для видалення
- Див Загальні статті: [[|]] і NBT path
Результати[]
Виходить з ладу, якщо аргументи не вказані правильно.
Успіх:
/data Шаблон:Text anchor
-
/data get ...
- Прочитайте всі дані NBT з націленої позиції блоку або сутності на виконавця із виділенням синтаксису.
- Якщо застосовується, повертає 1 за успіх.
/data get ... <path>
- Надішліть підрозділ даних NBT з цільової позиції блоку чи сутності виконавцю без виділення синтаксису.
- Повернене значення залежить від типу елемента NBT:
- Отримання номера повертає це число.
- Отримання рядка повертає довжину рядка.
- Отримання списку повертає кількість елементів у цьому списку.
- Отримання з'єднання повертає кількість тегів, які є прямими дітьми цієї сполуки.
/data get ... <path> <scale>
- Поверніть значення тегу, масштабоване на <scale>.
- <path> потрібно вказати числовий тег — TAG_byte, TAG_short, TAG_int, TAG_long, TAG_float, або TAG_double.
/data Шаблон:Text anchor
- Об'єднайте дані NBT з позицією джерела блоку або об'єктом із зазначеними <nbt> даними.
- За наявності, повертає 1 на успіх.
/data Шаблон:Text anchor
-
append
- Додайте вихідні дані до кінця списку, що вказується.
<targetPath>
повинен вказати тег TAG_list тип, а вихідні дані мають бути типом елемента, відповідним списку.insert <index>
- Вставте вихідні дані в загострений список як елемент
<index>
, потім перемістіть вищі елементи на одну позицію вгору. <targetPath>
повинен вказати тег TAG_list тип, а вихідні дані мають бути типом елемента, відповідним списку.merge
- Об'єднайте вихідні дані в об'єкт із загостреним об'єктом.
- Обидва
<targetPath>
а вихідні дані повинні бути такими TAG_compound типу. prepend
- Додайте вихідні дані до початку зазначеного списку.
<targetPath>
повинен вказати тег TAG_list тип, а вихідні дані мають бути типом елемента, відповідним списку.set
- Встановіть тег, вказаний
<targetPath>
, на вихідні дані.
/data Шаблон:Text anchor
- Видаляє дані NBT на <path> з цільового блоку або сутності. Дані про плеєр NBT неможливо видалити.
- За наявності, повертає 1 на успіх.
NBT path[]
Шлях даних NBT — це описова мітка, яка використовується для визначення колекції конкретних елементів з дерево даних NBT. Шлях має загальну форму node.….node
, де кожен node
оголошує, які типи піделементів можна вибрати з попереднього тегу.
Вузол[]
Це всі доступні шість типів вузлів.
Колекція тегів починається лише з одного елемента (тобто кореневого тегу) і змінюється уздовж вузлів шляху. Споживачі шляху NBT працюватимуть над остаточним збором тегів.
Назва | Формат | Опис | Результат вибору | Приклад | Приклад Опис |
---|---|---|---|---|---|
Корінний вузол з об'єктом | {tag} , де tag — складний вміст NBT
|
Вибирає початковий тег лише у тому випадку, якщо він відповідає наведеному складеному тегу. Застосовується лише як перший елемент шляху. |
Початковий тег або нічого, якщо збіг не вдається. | {Invisible:1b}
|
Вибирає кореневий тег, якщо в ньому є субтег Invisible зі значенням 1 .
|
Названий вузол | name , де name може бути простою або втеченою рядком
|
Вибирає субтеги з назвою name у попередніх тегах. | Колекція тегів; не більше елементів, ніж попередня колекція тегів. Може бути нічого. | VillagerData
|
Вибирає VillagerData субтег. |
"A cool name[]"
|
Selects the A cool name[] subtag. | ||||
Названий вузол з об'єктом | name{tag} , де name може бути простою або відхиленою рядком, а tag — складеним вмістом NBT
|
Вибирає субтеги, що відповідають складеному тегу, вказаному та названому "name" в попередніх тегах. | Колекція тегів; не більше елементів, ніж попередня колекція тегів. Може бути нічого. | VillagerData{profession:"minecraft:nitwit"}
|
Виберіть VillagerData тег лише у тому випадку, якщо у нього є субтег profession зі значенням minecraft:nitwit .
|
Індексований список списку | name[index] , де name може бути простим або уникнутим рядком, а index — цілим числом
|
Вибирає елементи в index (або listLength + index якщо index негативний) підсписів з назвою name у попередніх тегах.
|
Колекція тегів; не більше елементів, ніж попередня колекція тегів. Може бути нічого. | Pos[0]
|
Вибирає перший дочірній тег у Pos підпису. |
Inventory[-1]
|
Вибирає останній дочірній тег у Inventory підпису. | ||||
Усі вузли списку | name[]
|
Вибирає всі елементи підсписів з назвою name у попередніх тегах. | Колекція тегів; може мати більше елементів, ніж попередня колекція тегів. Може бути нічого. | ActiveEffects[]
|
Виберіть усі елементи в ActiveEffects підтег останнього тегу. |
Список вузла з об'єктом | name[{tag}] , де name може бути простою або відхиленою рядком, а tag — складеним вмістом NBT
|
Вибирає елементи, що відповідають наведеному складеному тегу та у підсписках, названих name у попередніх тегах. | Колекція тегів; може мати більше елементів, ніж попередня колекція тегів. Може бути нічого. | Inventory[{Count:25b}]
|
Виберіть елементи Inventory тегу, який має підтег Count зі значенням 25 .
|
На шляху .
(точка/період) символи відокремлюють вузли. Вузли можуть бути змішані та зіставлені, за винятком того, що кореневий вузол з об'єктом повинен бути першим на шляху, коли він присутній.
Назва, що проходить,[]
Дійсний набір символів (без лапок) для шляху, здається, є всі символи, що не містять пробілів, до тих пір, як будь-які відкриваючі дужки ([
і {
) є закритими і наприкінці кожного терміну (тобто не слід нічого, окрім періоду чи кінця шляху — .
абл
). Як було сказано, "розумний набір символів" для визначення тегів даних включає всі малі та великі літери, цифри, підкреслення, період та квадратні та фігурні дужки (Регулярне вираження: [a-zA-Z0-9\.[\]{}]*
)
Цитуються рядки, такі як "Lorem ipsum"
, може використовуватися, якщо назву ключа потрібно уникати.
Приклади[]
Foo.bar[]
/data get entity @p foo.bar[0]."A [crazy name]!".baz
Ці імена були довільно підібрані для демонстраційних цілей.
foo
— Визначає елемент верхнього рівня з назвою "foo"foo.bar
— Визначає назву дитини foo "bar". Зробимо вигляд, що це список.foo.bar[0]
— Вказує перший елемент списку "bar"foo.bar[-1]
— Вказує останній елемент списку "bar"foo.bar[0]."A [crazy name]!"
— Вказує назву дитини "A [crazy name]!" under that first elementfoo.bar[0]."A [crazy name]!".baz
— Вказує назву дитини "baz" під цим божевільно названим елементомfoo.bar[]
— Вказує всі елементи списку "bar"foo.bar[].baz
— Вказує дітям усі елементи списку "bar"foo.bar[{baz:5b}]
— Вказує всі елементи списку "bar", на який встановлено тег "baz"5b
{}
— Вказує кореневий тег цільового об'єкта або блоку{foo:4.0f}
— Визначає кореневий тег цільової сутності або блоку, якщо для тегу "foo" встановлено значення4.0f
foo{bar:"baz"}
— Вказує тег "foo", якщо його дочірній "bar" має значення"baz"
foo{bar:"baz"}.bar
— Вказує тег "bar", якщо він відповідає значенню"baz"
Будова дерева
- Дані кореневої сутності
- foo: Елемент "foo"
- bar: Елемент "bar"
- Перший елемент списку "bar"
- A [crazy name]!: Елемент "A [crazy name]!"
- baz: Елемент "baz"; цільовий елемент цього прикладу.
- A [crazy name]!: Елемент "A [crazy name]!"
- Ще один незв'язаний елемент у списку "bar"
- Перший елемент списку "bar"
- bar: Елемент "bar"
- foo: Елемент "foo"
Книга в скрині[]
/data get block ~ ~ ~ Items[1].tag.pages[3]
Гравець написав книгу і помістив її у скриню біля своїх ніг, і поетапно буде працювати над вищезазначеною командою. Дотримуйтесь наступного уявного журналу чату:
Логи чату * Alex jumps on top of a chest. * Alex runs the command: /data get block ~ ~ ~ 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex only wants to look at the chest's inventory. They could search the Official Minecraft Wiki for what the name of that tag is, but because they understand how to read NBT format they decide to figure it out from that last command's output. * Alex runs the command: /data get block ~ ~ ~ Items 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex wants to narrow this down to the second item in the chest. Counting from 0, the second item would be element 1. * Alex runs the command: /data get block ~ ~ ~ Items[1] 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex wants just the "tag" tag. * Alex runs the command: /data get block ~ ~ ~ Items[1].tag 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex wants just the "pages" tag. * Alex runs the command: /data get block ~ ~ ~ Items[1].tag.pages 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex wants just the fourth element from this list. * Alex runs the command: /data get block ~ ~ ~ Items[1].tag.pages[3] 0 55 0 has the following block data: {x: 0, y: 55, z: 0, Items: [{Slot: 0b, id: "minecraft:clock", Count: 1b}, {Slot: 9b, id: "minecraft:written_book", Count: 1b, tag: {pages: ['{"text":"\'twas brillig and the slithy toves"}', '{"text":"Did gyre and gimble in the wabe."}', '{"text":"All mimsy were the borogoves,"}', '{"text":"And the mome raths outgrabe."}'], author: "LewisCarroll", title: "Jabberwocky"}}], id: "minecraft:chest"} * Alex has what they need now, and uses the paths they have gathered to edit the book from outside the chest. * Alex runs the command: /data modify block ~ ~ ~ Items[1].tag.pages[3] set value '{"text":"And this pig here\'s named Babe."}' Modified block data of 0 55 0 * Alex runs the command: /data modify block ~ ~ ~ Items[1].tag.pages prepend value '{"text":"Call me Ishmael."}' Modified block data of 0 55 0 * Alex runs the command: /data modify block ~ ~ ~ Items[1].tag.author set value "Cthulhu the Sleeper"
Приклади[]
- Щоб гравці не могли забрати всі предмети протягом 10 блоків:
/data modify entity @e[type=item,distance=..10] PickupDelay set value -1
- Щоб отримати Y-положення випадкового елемента:
/data get entity @e[type=item,limit=1,sort=random] Pos[1]
- Щоб отримати ідентифікатор елемента в першому слоті гарячої панелі найближчого гравця:
/data get entity @p Inventory[{Slot:0b}].id
- Для встановлення броні атрибуту дельфіна, найближчого до координат (0, 64, 0), до 20:
/data modify entity @e[x=0, y=64, z=0, type=dolphin, limit=1] Attributes[{Name:"generic.armor"}].Base set value 20
- Щоб змінити перший елемент у скрині, розташованій за координатами (1, 64, 1), в алмазний блок, зберігаючи всі дані NBT:
/data modify block 1 64 1 Items[0].id set value "minecraft:diamond_block"
Зберігання[]
Збереження команд даних NBT є ефективним способом для команд доступу або збереження даних NBT без накладних витрат для блокових сутностей або сутностей, які читають або записують у дані NBT.
Кожне зберігання команд — це загальне призначення, зберігання ключа-значення, ідентифіковане ідентифікатор простору імен для запобігання ненавмисних конфліктів.
/data get
і /data modify
може читати зі сховища, поки /data merge
, /data modify
, /data remove
, і /execute store
може записати в сховище.
Зберігання команд доступне і через JSON текст.
Історія[]
Java Edition | |||||
---|---|---|---|---|---|
1.13 | 17w45b | Додана команда /data . | |||
17w47a | Команда /blockdata і /entitydata було видалено, коли їх функції об’єднані в /data . | ||||
18w03a | Використання /data get з контуром тепер працює на нечислові значення. | ||||
1.14 | 18w43a | Додано /data modify . | |||
1.15 | 19w38a | Додано command storage. | |||
Додано storage <ідентифікатор простору імен> як джерело чи ціль. | |||||
19w39a | Додано сховище NBT компонент чату. |
Поточне |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Видалене |
| ||||||||
Першоквітневе |
|