Minecraft Wiki
Minecraft Wiki
8016
страниц
(Отмена правки, сделанной Gk 0)
Метка: отмена
м (Бот: Устранение неоправданных вызовов шаблона Code)
 
(не показано 5 промежуточных версий 4 участников)
Строка 7: Строка 7:
 
Пространство имён идентификаторов используется как простая строка, ссылающаяся на [[блок]]и, [[предмет]]ы, [[Сущности#Разновидности сущностей|разновидности сущностей]], [[рецепт]]ы, [[Функция (Java Edition)|функции]], [[Система достижений (Java Edition)|достижения]], [[тег]]и, и другие объекты из обычного ''Minecraft''. Стоит отметить, что состояния блоков не имеют своего собственного пространства имён.
 
Пространство имён идентификаторов используется как простая строка, ссылающаяся на [[блок]]и, [[предмет]]ы, [[Сущности#Разновидности сущностей|разновидности сущностей]], [[рецепт]]ы, [[Функция (Java Edition)|функции]], [[Система достижений (Java Edition)|достижения]], [[тег]]и, и другие объекты из обычного ''Minecraft''. Стоит отметить, что состояния блоков не имеют своего собственного пространства имён.
   
Допустимый идентификатор пространства имён имеет формат {{cd|namespace: name}}, где могут использоваться только определённые символы.
+
Допустимый идентификатор пространства имён имеет формат <code>namespace: name</code>, где могут использоваться только определённые символы.
   
 
Это список всех объектов игры, которые имеют пространство имён идентификаторов:
 
Это список всех объектов игры, которые имеют пространство имён идентификаторов:
Строка 53: Строка 53:
 
; Другой настраиваемый контент{{Только|java}}
 
; Другой настраиваемый контент{{Только|java}}
 
:* Полоски здоровья боссов
 
:* Полоски здоровья боссов
:* Запоминание команд{{запланированный|1.15}}
+
:* Запоминание команд
   
 
; Другое не настраиваемое (без модификаций) содержимое
 
; Другое не настраиваемое (без модификаций) содержимое
Строка 66: Строка 66:
 
Пространство имён и имена идентификаторов могут содержать только следующие символы:
 
Пространство имён и имена идентификаторов могут содержать только следующие символы:
   
* {{cd|0123456789}} Цифры
+
* <code>0123456789</code> Цифры
* {{cd|abcdefghijklmnopqrstuvwxyz}} Строчные буквы
+
* <code>abcdefghijklmnopqrstuvwxyz</code> Строчные буквы
* {{cd|_}} Нижнее подчёркивание
+
* <code>_</code> Нижнее подчёркивание
* {{cd|-}} Дефис/минус
+
* <code>-</code> Дефис/минус
   
 
Следующие символы недопустимы в пространстве имён, но допустимы в самом имени:
 
Следующие символы недопустимы в пространстве имён, но допустимы в самом имени:
* {{cd|/}} Косая черта (слэш)
+
* <code>/</code> Косая черта (слэш)
 
** Разделитель каталогов
 
** Разделитель каталогов
* {{cd|.}} Точка
+
* <code>.</code> Точка
 
** Разделитель наименования и расширения файлов.
 
** Разделитель наименования и расширения файлов.
   
Запись каждого пространства имён должна выглядеть следующим образом: {{cd|lower_case_with_underscores}} (нижний_регистр_с_нижним_подчёркиванием).
+
Запись каждого пространства имён должна выглядеть следующим образом: <code>lower_case_with_underscores</code> (нижний_регистр_с_нижним_подчёркиванием).
   
 
==== Bedrock Edition ====
 
==== Bedrock Edition ====
Строка 83: Строка 83:
   
 
Следующие символы недопустимы в пространстве имён, но допустимы в именах '''таблиц добычи и функций''':
 
Следующие символы недопустимы в пространстве имён, но допустимы в именах '''таблиц добычи и функций''':
* {{cd|/}} Косая черта (слэш)
+
* <code>/</code> Косая черта (слэш)
 
** Разделитель каталогов
 
** Разделитель каталогов
   
Запись каждого пространства имён должна выглядеть следующим образом: {{cd|lower_case_with_underscores}} (нижний_регистр_с_нижним_подчёркиванием).
+
Запись каждого пространства имён должна выглядеть следующим образом: <code>lower_case_with_underscores</code> (нижний_регистр_с_нижним_подчёркиванием).
   
 
=== Преобразование в строку ===
 
=== Преобразование в строку ===
Идентификатор пространства имён преобразовывается в строку, если использовать {{cd|:}} (двоеточие) между ним и его пространством имён.
+
Идентификатор пространства имён преобразовывается в строку, если использовать <code>:</code> (двоеточие) между ним и его пространством имён.
   
 
Примеры:
 
Примеры:
Строка 96: Строка 96:
 
! Пространство имён !! Имя !! Преобразование в строку
 
! Пространство имён !! Имя !! Преобразование в строку
 
|-
 
|-
| {{cd|minecraft}} || {{cd|diamond}} || {{cd|minecraft:diamond}}
+
| <code>minecraft</code> || <code>diamond</code> || <code>minecraft:diamond</code>
 
|-
 
|-
| {{cd|foo}} || {{cd|bar.baz}} || {{cd|foo:bar.baz}}
+
| <code>foo</code> || <code>bar.baz</code> || <code>foo:bar.baz</code>
 
|-
 
|-
| {{cd|minecraftwiki}} || {{cd|commands/minecraft_wiki}} || {{cd|minecraftwiki:commands/minecraft_wiki}}
+
| <code>minecraftwiki</code> || <code>commands/minecraft_wiki</code> || <code>minecraftwiki:commands/minecraft_wiki</code>
 
|}
 
|}
   
Строка 107: Строка 107:
   
 
Есть несколько ограничений:
 
Есть несколько ограничений:
* Строка может иметь только один символ {{cd|:}} (двоеточие)
+
* Строка может иметь только один символ <code>:</code> (двоеточие)
 
* Остальная часть строки должна соответствовать требованиям [[#Допустимые символы|допустимых символов]]
 
* Остальная часть строки должна соответствовать требованиям [[#Допустимые символы|допустимых символов]]
* Если {{cd|:}} присутствует, то часть строки перед {{cd|:}} (пространство имён) не должна содержать символы {{cd|/}} или {{cd|.}}
+
* Если <code>:</code> присутствует, то часть строки перед <code>:</code> (пространство имён) не должна содержать символы <code>/</code> или <code>.</code>
   
Когда {{cd|:}} присутствует, часть строки перед {{cd|:}} становится пространством имён, а после {{cd|:}} — именем.
+
Когда <code>:</code> присутствует, часть строки перед <code>:</code> становится пространством имён, а после <code>:</code> — именем.
   
Когда {{cd|:}} отсутствует, то [[#Пространство имён minecraft|{{cd|minecraft}}]] становится пространством имён, а вся строка становится именем.{{Только|java}}
+
Когда <code>:</code> отсутствует, то [[#Пространство имён minecraft|<code>minecraft</code>]] становится пространством имён, а вся строка становится именем.{{Только|java}}
   
Рекомендуется всегда включать {{cd|:}} в строковый формат идентификаторов пространств имён.
+
Рекомендуется всегда включать <code>:</code> в строковый формат идентификаторов пространств имён.
   
 
; Примеры
 
; Примеры
Строка 122: Строка 122:
 
! Строка !! Допустимое пространство имен !! Допустимое имя !! Во что преобразует игра
 
! Строка !! Допустимое пространство имен !! Допустимое имя !! Во что преобразует игра
 
|-
 
|-
| {{cd|bar:code}} || {{cd|bar}} || {{cd|code}} || {{cd|bar:code}}
+
| <code>bar:code</code> || <code>bar</code> || <code>code</code> || <code>bar:code</code>
 
|-
 
|-
| {{cd|minecraft:zombie}} || {{cd|minecraft}} || {{cd|zombie}} || {{cd|minecraft:zombie}}
+
| <code>minecraft:zombie</code> || <code>minecraft</code> || <code>zombie</code> || <code>minecraft:zombie</code>
 
|-
 
|-
| {{cd|diamond}} || {{cd|minecraft}}{{Только|java}}<br>Ничего{{Только|bedrock}} || {{cd|diamond}} || {{cd|minecraft:diamond}}{{Только|java}}<br>{{cd|diamond}}{{Только|bedrock}}
+
| <code>diamond</code> || <code>minecraft</code>{{Только|java}}<br>Ничего{{Только|bedrock}} || <code>diamond</code> || <code>minecraft:diamond</code>{{Только|java}}<br><code>diamond</code>{{Только|bedrock}}
 
|-
 
|-
| {{cd|foo/bar:coal}} || Недопустимый символ {{cd|/}} || ||
+
| <code>foo/bar:coal</code> || Недопустимый символ <code>/</code> || ||
 
|-
 
|-
| {{cd|minecraft/villager}} || {{cd|minecraft}}{{Только|java}}<br>None{{Только|bedrock}} || {{cd|minecraft/villager}} || {{cd|minecraft:minecraft/villager}}{{Только|java}}<br>{{cd|minecraft/villager}}{{Только|bedrock}}
+
| <code>minecraft/villager</code> || <code>minecraft</code>{{Только|java}}<br>None{{Только|bedrock}} || <code>minecraft/villager</code> || <code>minecraft:minecraft/villager</code>{{Только|java}}<br><code>minecraft/villager</code>{{Только|bedrock}}
 
|-
 
|-
| {{cd|mypack_recipe}} || {{cd|minecraft}}{{Только|java}}<br>Ничего{{Только|bedrock}} || {{cd|mypack_recipe}} || {{cd|minecraft:mypack_recipe}}{{Только|java}}<br>{{cd|mypack_recipe}}{{Только|bedrock}}
+
| <code>mypack_recipe</code> || <code>minecraft</code>{{Только|java}}<br>Ничего{{Только|bedrock}} || <code>mypack_recipe</code> || <code>minecraft:mypack_recipe</code>{{Только|java}}<br><code>mypack_recipe</code>{{Только|bedrock}}
 
|-
 
|-
| {{cd|mymap:schrödingers_var}} || {{cd|mymap}} || Недопустимый символ {{cd|ö}}{{Только|java}}<br>{{cd|schrödingers_var}}{{Только|bedrock}} || {{cd|mymap:schrödingers_var}}{{Только|bedrock}}
+
| <code>mymap:schrödingers_var</code> || <code>mymap</code> || Недопустимый символ <code>ö</code>{{Только|java}}<br><code>schrödingers_var</code>{{Только|bedrock}} || <code>mymap:schrödingers_var</code>{{Только|bedrock}}
 
|-
 
|-
| {{cd|custom_pack:Capital}} || {{cd|custom_pack}} || Недопустимый символ {{cd|C}}{{Только|java}}<br>{{cd|Capital}}{{Только|bedrock}} || {{cd|custom_pack:Capital}}{{Только|bedrock}}
+
| <code>custom_pack:Capital</code> || <code>custom_pack</code> || Недопустимый символ <code>C</code>{{Только|java}}<br><code>Capital</code>{{Только|bedrock}} || <code>custom_pack:Capital</code>{{Только|bedrock}}
 
|}
 
|}
   
Строка 142: Строка 142:
 
Объекты, добавленные файлами из [[Пакет ресурсов|пакетов ресурсов]] и [[Пакет данных|пакетов данных]], могут быть найдены игрой, используя пространство имён идентификаторов, предоставляемое выбранным пакетом.
 
Объекты, добавленные файлами из [[Пакет ресурсов|пакетов ресурсов]] и [[Пакет данных|пакетов данных]], могут быть найдены игрой, используя пространство имён идентификаторов, предоставляемое выбранным пакетом.
   
Хотя расположение зависит от типа объекта и типа пакета, которому принадлежит данный объект, существует определённая закономерность. Как правило, расположение выглядит следующим образом: {{cd|''pack_type''/''namespace''/''object_type''/''name''.''suffix''}}, где все символы {{cd|/}} (слэш) (может быть частью {{cd|''object_type''}} или {{cd|''name''}}) заменяется разделителем каталогов, зависящим от операционной системы.
+
Хотя расположение зависит от типа объекта и типа пакета, которому принадлежит данный объект, существует определённая закономерность. Как правило, расположение выглядит следующим образом: <code>''pack_type''/''namespace''/''object_type''/''name''.''suffix''</code>, где все символы <code>/</code> (слэш) (может быть частью <code>''object_type''</code> или <code>''name''</code>) заменяется разделителем каталогов, зависящим от операционной системы.
   
 
<div class="collapsible collapsed collapsetoggle-inline" data-expandtext="show" data-collapsetext="hide">
 
<div class="collapsible collapsed collapsetoggle-inline" data-expandtext="show" data-collapsetext="hide">
[[ruwiki:Мапирование|Мапирование]] происходит из типа объекта в переменные {{cd|''pack_type''}}, {{cd|''object_type''}}, и {{cd|''suffix''}}
+
[[ruwiki:Мапирование|Мапирование]] происходит из типа объекта в переменные <code>''pack_type''</code>, <code>''object_type''</code>, и <code>''suffix''</code>
 
<div class="collapsible-content">
 
<div class="collapsible-content">
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
|-
 
|-
! Тип объекта !! Пакет объекта !! Вместо {{cd|''pack_type''}} !! Вместо {{cd|''object_type''}} !! Вместо {{cd|''suffix''}}
+
! Тип объекта !! Пакет объекта !! Вместо <code>''pack_type''</code> !! Вместо <code>''object_type''</code> !! Вместо <code>''suffix''</code>
 
|-
 
|-
| [[Модель#Состояния блока|Состояния блока]] || [[Пакет ресурсов]] || {{cd|assets}} || {{cd|blockstates}} || {{cd|json}}
+
| [[Модель#Состояния блока|Состояния блока]] || [[Пакет ресурсов]] || <code>assets</code> || <code>blockstates</code> || <code>json</code>
 
|-
 
|-
| [[Модель#Модели блоков|Модели]] || [[Пакет ресурсов]] || {{cd|assets}} || {{cd|models}} || {{cd|json}}
+
| [[Модель#Модели блоков|Модели]] || [[Пакет ресурсов]] || <code>assets</code> || <code>models</code> || <code>json</code>
 
|-
 
|-
| [[Частицы]] || [[Пакет ресурсов]] || {{cd|assets}} || {{cd|particles}} || {{cd|json}}
+
| [[Частицы]] || [[Пакет ресурсов]] || <code>assets</code> || <code>particles</code> || <code>json</code>
 
|-
 
|-
| [[Пакет ресурсов#Текстуры|Текстуры]] || [[Пакет ресурсов]] || {{cd|assets}} || {{cd|textures}} || {{cd|png}}
+
| [[Пакет ресурсов#Текстуры|Текстуры]] || [[Пакет ресурсов]] || <code>assets</code> || <code>textures</code> || <code>png</code>
 
|-
 
|-
| [[Система достижений (Java Edition)|Достижения]] || [[Пакет данных]] || {{cd|data}} || {{cd|advancements}} || {{cd|json}}
+
| [[Система достижений (Java Edition)|Достижения]] || [[Пакет данных]] || <code>data</code> || <code>advancements</code> || <code>json</code>
 
|-
 
|-
| [[Функция (Java Edition)|Функции]] || [[Пакет данных]] || {{cd|data}} || {{cd|functions}} || {{cd|mcfunction}}
+
| [[Функция (Java Edition)|Функции]] || [[Пакет данных]] || <code>data</code> || <code>functions</code> || <code>mcfunction</code>
 
|-
 
|-
| [[Таблицы добычи]] || [[Пакет данных]] || {{cd|data}} || {{cd|loot_tables}} || {{cd|json}}
+
| [[Таблицы добычи]] || [[Пакет данных]] || <code>data</code> || <code>loot_tables</code> || <code>json</code>
 
|-
 
|-
| [[Рецепт]]ы || [[Пакет данных]] || {{cd|data}} || {{cd|recipes}} || {{cd|json}}
+
| [[Рецепт]]ы || [[Пакет данных]] || <code>data</code> || <code>recipes</code> || <code>json</code>
 
|-
 
|-
| [[Натуральные структуры|Структуры]] || [[Пакет данных]] || {{cd|data}} || {{cd|structures}} || {{cd|nbt}}
+
| [[Натуральные структуры|Структуры]] || [[Пакет данных]] || <code>data</code> || <code>structures</code> || <code>nbt</code>
 
|-
 
|-
| [[Тег]]и блоков || [[Пакет данных]] || {{cd|data}} || {{cd|tags/blocks}} || {{cd|json}}
+
| [[Тег]]и блоков || [[Пакет данных]] || <code>data</code> || <code>tags/blocks</code> || <code>json</code>
 
|-
 
|-
| [[Тег]]и типов сущностей || [[Пакет данных]] || {{cd|data}} || {{cd|tags/entity_types}} || {{cd|json}}
+
| [[Тег]]и типов сущностей || [[Пакет данных]] || <code>data</code> || <code>tags/entity_types</code> || <code>json</code>
 
|-
 
|-
| [[Тег]]и предметов || [[Пакет данных]] || {{cd|data}} || {{cd|tags/items}} || {{cd|json}}
+
| [[Тег]]и предметов || [[Пакет данных]] || <code>data</code> || <code>tags/items</code> || <code>json</code>
 
|-
 
|-
| [[Тег]]и жидкостей || [[Пакет данных]] || {{cd|data}} || {{cd|tags/fluids}} || {{cd|json}}
+
| [[Тег]]и жидкостей || [[Пакет данных]] || <code>data</code> || <code>tags/fluids</code> || <code>json</code>
 
|-
 
|-
| [[Тег]]и функций || [[Пакет данных]] || {{cd|data}} || {{cd|tags/functions}} || {{cd|json}}
+
| [[Тег]]и функций || [[Пакет данных]] || <code>data</code> || <code>tags/functions</code> || <code>json</code>
 
|}
 
|}
 
</div></div>
 
</div></div>
Строка 183: Строка 183:
 
Примечание: некоторые элементы в пакете ресурсов не обязательно поддерживаются объектом с идентификатором пространства имён, например текстуры графического интерфейса пользователя.
 
Примечание: некоторые элементы в пакете ресурсов не обязательно поддерживаются объектом с идентификатором пространства имён, например текстуры графического интерфейса пользователя.
   
Учитывая тип содержимого, можно найти соответствующие файлы {{cd|''pack_type''}}, {{cd|''object_type''}} и {{cd|''suffix''}}. Затем их можно заменить и узнать окончательное расположение содержимого.
+
Учитывая тип содержимого, можно найти соответствующие файлы <code>''pack_type''</code>, <code>''object_type''</code> и <code>''suffix''</code>. Затем их можно заменить и узнать окончательное расположение содержимого.
   
 
<div class="collapsible collapsed collapsetoggle-inline" data-expandtext="show" data-collapsetext="hide">
 
<div class="collapsible collapsed collapsetoggle-inline" data-expandtext="show" data-collapsetext="hide">
Строка 190: Строка 190:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Идентификаторы пространства имён !! Тип содержимого !! {{cd|''pack_type''}} !! {{cd|''object_type''}} !! {{cd|''suffix''}} !! Окончательное расположение
+
! Идентификаторы пространства имён !! Тип содержимого !! <code>''pack_type''</code> !! <code>''object_type''</code> !! <code>''suffix''</code> !! Окончательное расположение
 
|-
 
|-
| {{cd|my_texture_pack:diamonds}} || [[Пакет ресурсов#Текстуры|Текстуры]] || {{cd|assets}} || {{cd|textures}} || {{cd|png}} || {{cd|assets/my_texture_pack/textures/diamonds.png}}
+
| <code>my_texture_pack:diamonds</code> || [[Пакет ресурсов#Текстуры|Текстуры]] || <code>assets</code> || <code>textures</code> || <code>png</code> || <code>assets/my_texture_pack/textures/diamonds.png</code>
 
|-
 
|-
| {{cd|abc:run_game}} || [[Функция (Java Edition)|Функции]] || {{cd|data}} || {{cd|functions}} || {{cd|mcfunction}} || {{cd|data/abc/functions/run_game.mcfunction}}
+
| <code>abc:run_game</code> || [[Функция (Java Edition)|Функции]] || <code>data</code> || <code>functions</code> || <code>mcfunction</code> || <code>data/abc/functions/run_game.mcfunction</code>
 
|-
 
|-
| {{cd|block/torch}}<br>(то же, что и {{cd|minecraft:block/torch}}) || [[Модель]] || {{cd|assets}} || {{cd|models}} || {{cd|json}} || {{cd|assets/minecraft/models/block/torch.json}}
+
| <code>block/torch</code><br>(то же, что и <code>minecraft:block/torch</code>) || [[Модель]] || <code>assets</code> || <code>models</code> || <code>json</code> || <code>assets/minecraft/models/block/torch.json</code>
 
|-
 
|-
| {{cd|load}}<br>(то же, что и {{cd|minecraft:load}}) || [[Тег#Теги функций|Тег функции]] || {{cd|data}} || {{cd|tags/functions}} || {{cd|json}} || {{cd|data/minecraft/tags/functions/load.json}}
+
| <code>load</code><br>(то же, что и <code>minecraft:load</code>) || [[Тег#Теги функций|Тег функции]] || <code>data</code> || <code>tags/functions</code> || <code>json</code> || <code>data/minecraft/tags/functions/load.json</code>
 
|-
 
|-
| {{cd|rocket_pack:industry/start_of_story}} || [[Система достижений (Java Edition)|Достижения]] || {{cd|data}} || {{cd|advancements}} || {{cd|json}} || {{cd|data/rocket_pack/advancements/industry/start_of_story.json}}
+
| <code>rocket_pack:industry/start_of_story</code> || [[Система достижений (Java Edition)|Достижения]] || <code>data</code> || <code>advancements</code> || <code>json</code> || <code>data/rocket_pack/advancements/industry/start_of_story.json</code>
 
|}
 
|}
 
</div></div>
 
</div></div>
   
 
== Пространство имён ==
 
== Пространство имён ==
{{Цитата|Это не новая концепция, но думаю, что я должен повторить, что такое «пространство имён». Большинство вещей в игре имеет пространство имён, так что если мы добавим {{cd|что-то}} и модификацию (карту или что-то ещё), добавляющую {{cd|что-то}}, они оба будут иметь абсолютно разное {{cd|что-то}}. Всякий раз, когда вас просят указать что-то, например таблицу добычи, вы также должны указать, из какого пространства имён исходит этот объект. Если вы не укажете пространство имён, игра по умолчанию использует {{cd|minecraft}}. Это означает, что {{cd|что-то}} и {{cd|minecraft:что-то}} — это одно и то же.|[[Dinnerbone]]|о пространстве имён<ref>{{Снимок|17w43a}}</ref>|Аватар Dinnerbone в Twitter.png}}
+
{{Цитата|Это не новая концепция, но думаю, что я должен повторить, что такое «пространство имён». Большинство вещей в игре имеет пространство имён, так что если мы добавим <code>что-то</code> и модификацию (карту или что-то ещё), добавляющую <code>что-то</code>, они оба будут иметь абсолютно разное <code>что-то</code>. Всякий раз, когда вас просят указать что-то, например таблицу добычи, вы также должны указать, из какого пространства имён исходит этот объект. Если вы не укажете пространство имён, игра по умолчанию использует <code>minecraft</code>. Это означает, что <code>что-то</code> и <code>minecraft:что-то</code> — это одно и то же.|[[Dinnerbone]]|о пространстве имён<ref>{{Снимок|17w43a}}</ref>|Аватар Dinnerbone в Twitter.png}}
   
 
Пространство имён — это домен для содержимого. Это делается для предотвращения потенциальных конфликтов содержимого или непреднамеренных переопределений объекта с таким же именем.
 
Пространство имён — это домен для содержимого. Это делается для предотвращения потенциальных конфликтов содержимого или непреднамеренных переопределений объекта с таким же именем.
   
Например, два пакета данных добавляют два механизма мини-игр в ''Minecraft''; они оба имеют [[Функция (Java Edition)|функцию]], называемую {{cd|start}}. Без пространств имён эти две функции стали бы конфликтовать, а мини-игры просто бы не работали. Если добавляемые объекты имеют разные пространства имён: {{cd|minigame_one}} и {{cd|minigame_two}}, то функции будут выглядеть следующим образом: {{cd|minigame_one:start}} и {{cd|minigame_two:start}} — такие функции не конфликтуют друг с другом.
+
Например, два пакета данных добавляют два механизма мини-игр в ''Minecraft''; они оба имеют [[Функция (Java Edition)|функцию]], называемую <code>start</code>. Без пространств имён эти две функции стали бы конфликтовать, а мини-игры просто бы не работали. Если добавляемые объекты имеют разные пространства имён: <code>minigame_one</code> и <code>minigame_two</code>, то функции будут выглядеть следующим образом: <code>minigame_one:start</code> и <code>minigame_two:start</code> — такие функции не конфликтуют друг с другом.
   
 
=== Пользовательское пространство имён ===
 
=== Пользовательское пространство имён ===
Строка 215: Строка 215:
   
 
Чтобы предотвратить возможные конфликты, пространства имён должны быть максимально конкретными.
 
Чтобы предотвратить возможные конфликты, пространства имён должны быть максимально конкретными.
* Следует избегать [[Wikipedia:Alphabet soup (linguistics)|алфавитных супов]]. Например, проект, названный «ядерный корабль», не должен использовать пространство имён {{cd|nc}}, так как это слишком неоднозначное имя.
+
* Следует избегать [[Wikipedia:Alphabet soup (linguistics)|алфавитных супов]]. Например, проект, названный «ядерный корабль», не должен использовать пространство имён <code>nc</code>, так как это слишком неоднозначное имя.
* Следует избегать слишком «расплывчатых» слов. Имя {{cd|battle_royale}} не выглядит столь информативно, поэтому имя {{cd|''player_name''_battle_royale}} выглядит намного лучше и более информативно.
+
* Следует избегать слишком «расплывчатых» слов. Имя <code>battle_royale</code> не выглядит столь информативно, поэтому имя <code>''player_name''_battle_royale</code> выглядит намного лучше и более информативно.
 
В любом случае, эти неудачно выбранные пространства имён снижают вероятность конфликта проектов, когда в игре используется несколько видов добавляемого контента.
 
В любом случае, эти неудачно выбранные пространства имён снижают вероятность конфликта проектов, когда в игре используется несколько видов добавляемого контента.
   
=== Пространство имён {{cd|minecraft}} ===
+
=== Пространство имён <code>minecraft</code> ===
''Minecraft'' имеет пространство имён {{cd|minecraft}}; если пространство имён не указано, идентификатор по умолчанию будет установлен на {{cd|minecraft}}{{Только|java}}. Пространство имён {{cd|minecraft}} должно использоваться только создателями контента, изменяющего уже существующие данные ''Minecraft'', например добавление новой [[Функция (Java Edition)|функции]] к другим [[Тег#Теги функций|тегам функции]] {{cd|minecraft:load}}.
+
''Minecraft'' имеет пространство имён <code>minecraft</code>; если пространство имён не указано, идентификатор по умолчанию будет установлен на <code>minecraft</code>{{Только|java}}. Пространство имён <code>minecraft</code> должно использоваться только создателями контента, изменяющего уже существующие данные ''Minecraft'', например добавление новой [[Функция (Java Edition)|функции]] к другим [[Тег#Теги функций|тегам функции]] <code>minecraft:load</code>.
   
 
=== Другие встроенные пространства имён ===
 
=== Другие встроенные пространства имён ===
По умолчанию [[пакет ресурсов]] ''Minecraft'' использует для [[Realms]] [[Пакет ресурсов#Язык|языковые файлы]] в пространстве имён {{cd|realms}} (расположенном в {{cd|assets/realms/lang/''<языковой-код>''.json}}) и связанные с игрой языковые файлы в пространстве имён {{cd|minecraft}}, даже если ключи перевода не являются идентификаторами пространства имён. Сам Realms.jar тоже использует свой собственный языковой файл {{cd|ru_ru.JSON}} и текстуры в пространстве имён {{cd|realms}}.
+
По умолчанию [[пакет ресурсов]] ''Minecraft'' использует для [[Realms]] [[Пакет ресурсов#Язык|языковые файлы]] в пространстве имён <code>realms</code> (расположенном в <code>assets/realms/lang/''<языковой-код>''.json</code>) и связанные с игрой языковые файлы в пространстве имён <code>minecraft</code>, даже если ключи перевода не являются идентификаторами пространства имён. Сам Realms.jar тоже использует свой собственный языковой файл <code>ru_ru.JSON</code> и текстуры в пространстве имён <code>realms</code>.
   
В идентификаторах типов аргументов команд, пространство имён {{cd|brigadier}} также используется для типов аргументов, которые тесно связаны с [[Brigadier]].<ref>[https://gist.github.com/Dinnerbone/7370a2846953eee2d8fc64514fb76de8#file-command_tree-json-L41 Minecraft Java Edition 1.13 changes] — GitHub Gist</ref>
+
В идентификаторах типов аргументов команд, пространство имён <code>brigadier</code> также используется для типов аргументов, которые тесно связаны с [[Brigadier]].<ref>[https://gist.github.com/Dinnerbone/7370a2846953eee2d8fc64514fb76de8#file-command_tree-json-L41 Minecraft Java Edition 1.13 changes] — GitHub Gist</ref>
   
 
== История ==
 
== История ==
 
{{История|java}}
 
{{История|java}}
{{История||?|сборка=?|Добавлено использование идентификаторов после префикса {{cd|minecraft}}.}}
+
{{История||?|сборка=?|Добавлено использование идентификаторов после префикса <code>minecraft</code>.}}
 
{{История||1.7.2|сборка=?|Команды теперь работают с текстовым форматом идентификаторов, помимо числового.}}
 
{{История||1.7.2|сборка=?|Команды теперь работают с текстовым форматом идентификаторов, помимо числового.}}
 
{{История||1.11|сборка=16w32a|Идентификаторы пространства имён теперь имеют ограничение символов.
 
{{История||1.11|сборка=16w32a|Идентификаторы пространства имён теперь имеют ограничение символов.
Строка 238: Строка 238:
 
{{История||0.16.0|сборка=build 1|Добавлены [[команды]], поддерживающие идентификаторы в виде строк. Однако эти идентификаторы ещё не были помещены в пространство имён.}}
 
{{История||0.16.0|сборка=build 1|Добавлены [[команды]], поддерживающие идентификаторы в виде строк. Однако эти идентификаторы ещё не были помещены в пространство имён.}}
 
{{История|bedrock}}
 
{{История|bedrock}}
{{История||1.12.0|сборка=beta 1.12.0.2|Идентификаторы теперь размещаются в пространстве имён с помощью префикса {{cd|minecraft}} для поддержки пользовательских предметов, добавляемых через [[Дополнение|дополнения]].}}
+
{{История||1.12.0|сборка=beta 1.12.0.2|Идентификаторы теперь размещаются в пространстве имён с помощью префикса <code>minecraft</code> для поддержки пользовательских предметов, добавляемых через [[Дополнение|дополнения]].}}
 
{{История|подвал}}
 
{{История|подвал}}
   
Строка 255: Строка 255:
 
{{Bedrock Edition}}
 
{{Bedrock Edition}}
   
[[en:Namespaced ID]]
 
 
[[de:Namensraum]]
 
[[de:Namensraum]]
 
[[en:Namespaced ID]]
  +
[[pt:ID de espaço de nome]]
  +
[[uk:Ідентифікатор простору імен]]
 
[[zh:命名空间ID]]
 
[[zh:命名空间ID]]

Текущая версия на 19:12, 2 декабря 2020

Пространство имён идентификаторов (также известно как строки пространства имён,[1] расположение ресурсов,[2] или идентификаторы ресурса[3]) — это обозначение и идентифицирование встроенных и определяемых пользователем игровые объекты в Minecraft без потенциальной двусмысленности или конфликтов.

Использование[]

Пространство имён идентификаторов используется как простая строка, ссылающаяся на блоки, предметы, разновидности сущностей, рецепты, функции, достижения, теги, и другие объекты из обычного Minecraft. Стоит отметить, что состояния блоков не имеют своего собственного пространства имён.

Допустимый идентификатор пространства имён имеет формат namespace: name, где могут использоваться только определённые символы.

Это список всех объектов игры, которые имеют пространство имён идентификаторов:

Встроенные реестры
  • Блоки
  • Блоки-сущности‌[Только для Java Edition]
  • Жидкости‌[Только для Java Edition]
  • Предметы
  • Сущности
  • Интеллект мобов‌[Только для Java Edition]
  • Картины‌[Только для Java Edition]
  • Профессии деревенских жителей‌[Только для Java Edition]
  • Типы деревенских жителей‌[Только для Java Edition]
  • Эффекты
  • Типы зелий‌[Только для Java Edition]
  • Чары
  • Частицы
  • Размеры‌[Только для Java Edition]
  • Биомы
  • Статистика‌[Только для Java Edition]
  • Типы рецептов‌[Только для Java Edition]
  • Сериализация рецептов‌[Только для Java Edition]
  • Звуковое событие
Содержимое пакета данных‌[Только для Java Edition]
  • Достижения
  • Таблицы добычи
  • Функции
  • Файлы структур
  • Рецепты
  • Теги типов/функций блоков/жидкостей/предметов/сущностей
Добавляемый контент‌[Только для Bedrock Edition]
  • Таблицы добычи
  • Функции
Содержимое пакетов ресурсов‌[Только для Java Edition]
  • Файлы состояний блоков
  • Модели
  • Текстуры
  • Звуки
  • Звуковые события
Другой настраиваемый контент‌[Только для Java Edition]
  • Полоски здоровья боссов
  • Запоминание команд
Другое не настраиваемое (без модификаций) содержимое
  • Функции добычи
  • Условия добычи
  • Типы добычи
  • Типы аргументов команд

Допустимые символы[]

Java Edition[]

Пространство имён и имена идентификаторов могут содержать только следующие символы:

  • 0123456789 Цифры
  • abcdefghijklmnopqrstuvwxyz Строчные буквы
  • _ Нижнее подчёркивание
  • - Дефис/минус

Следующие символы недопустимы в пространстве имён, но допустимы в самом имени:

  • / Косая черта (слэш)
    • Разделитель каталогов
  • . Точка
    • Разделитель наименования и расширения файлов.

Запись каждого пространства имён должна выглядеть следующим образом: lower_case_with_underscores (нижний_регистр_с_нижним_подчёркиванием).

Bedrock Edition[]

Пространство имён и имена идентификаторов могут содержать все символы, кроме косых черт (слэша) и двоеточий.

Следующие символы недопустимы в пространстве имён, но допустимы в именах таблиц добычи и функций:

  • / Косая черта (слэш)
    • Разделитель каталогов

Запись каждого пространства имён должна выглядеть следующим образом: lower_case_with_underscores (нижний_регистр_с_нижним_подчёркиванием).

Преобразование в строку[]

Идентификатор пространства имён преобразовывается в строку, если использовать : (двоеточие) между ним и его пространством имён.

Примеры:

Пространство имён Имя Преобразование в строку
minecraft diamond minecraft:diamond
foo bar.baz foo:bar.baz
minecraftwiki commands/minecraft_wiki minecraftwiki:commands/minecraft_wiki

Преобразование из строки[]

В отличие от идентификаторов пространства имён, которые могут быть преобразованы в строки, есть отдельные строки, которые, наоборот, не могут быть преобразованы в идентификаторы.

Есть несколько ограничений:

  • Строка может иметь только один символ : (двоеточие)
  • Остальная часть строки должна соответствовать требованиям допустимых символов
  • Если : присутствует, то часть строки перед : (пространство имён) не должна содержать символы / или .

Когда : присутствует, часть строки перед : становится пространством имён, а после : — именем.

Когда : отсутствует, то minecraft становится пространством имён, а вся строка становится именем.‌[Только для Java Edition]

Рекомендуется всегда включать : в строковый формат идентификаторов пространств имён.

Примеры
Строка Допустимое пространство имен Допустимое имя Во что преобразует игра
bar:code bar code bar:code
minecraft:zombie minecraft zombie minecraft:zombie
diamond minecraft[Только для Java Edition]
Ничего‌[Только для Bedrock Edition]
diamond minecraft:diamond[Только для Java Edition]
diamond[Только для Bedrock Edition]
foo/bar:coal Недопустимый символ /
minecraft/villager minecraft[Только для Java Edition]
None‌[Только для Bedrock Edition]
minecraft/villager minecraft:minecraft/villager[Только для Java Edition]
minecraft/villager[Только для Bedrock Edition]
mypack_recipe minecraft[Только для Java Edition]
Ничего‌[Только для Bedrock Edition]
mypack_recipe minecraft:mypack_recipe[Только для Java Edition]
mypack_recipe[Только для Bedrock Edition]
mymap:schrödingers_var mymap Недопустимый символ ö[Только для Java Edition]
schrödingers_var[Только для Bedrock Edition]
mymap:schrödingers_var[Только для Bedrock Edition]
custom_pack:Capital custom_pack Недопустимый символ C[Только для Java Edition]
Capital[Только для Bedrock Edition]
custom_pack:Capital[Только для Bedrock Edition]

Размещение содержимого в пакетах‌[Только для Java Edition][]

Объекты, добавленные файлами из пакетов ресурсов и пакетов данных, могут быть найдены игрой, используя пространство имён идентификаторов, предоставляемое выбранным пакетом.

Хотя расположение зависит от типа объекта и типа пакета, которому принадлежит данный объект, существует определённая закономерность. Как правило, расположение выглядит следующим образом: pack_type/namespace/object_type/name.suffix, где все символы / (слэш) (может быть частью object_type или name) заменяется разделителем каталогов, зависящим от операционной системы.

Примечание: некоторые элементы в пакете ресурсов не обязательно поддерживаются объектом с идентификатором пространства имён, например текстуры графического интерфейса пользователя.

Учитывая тип содержимого, можно найти соответствующие файлы pack_type, object_type и suffix. Затем их можно заменить и узнать окончательное расположение содержимого.

Пространство имён[]

Аватар Dinnerbone в Twitter.png

Это не новая концепция, но думаю, что я должен повторить, что такое «пространство имён». Большинство вещей в игре имеет пространство имён, так что если мы добавим что-то и модификацию (карту или что-то ещё), добавляющую что-то, они оба будут иметь абсолютно разное что-то. Всякий раз, когда вас просят указать что-то, например таблицу добычи, вы также должны указать, из какого пространства имён исходит этот объект. Если вы не укажете пространство имён, игра по умолчанию использует minecraft. Это означает, что что-то и minecraft:что-то — это одно и то же.

Dinnerbone о пространстве имён[4]

Пространство имён — это домен для содержимого. Это делается для предотвращения потенциальных конфликтов содержимого или непреднамеренных переопределений объекта с таким же именем.

Например, два пакета данных добавляют два механизма мини-игр в Minecraft; они оба имеют функцию, называемую start. Без пространств имён эти две функции стали бы конфликтовать, а мини-игры просто бы не работали. Если добавляемые объекты имеют разные пространства имён: minigame_one и minigame_two, то функции будут выглядеть следующим образом: minigame_one:start и minigame_two:start — такие функции не конфликтуют друг с другом.

Пользовательское пространство имён[]

Пространство имён должно быть отличным от каждого добавляемого проекта или контента (например, пакета данных, пакета ресурсов, модификации, пакета ресурсов для пользовательской карты и так далее).

Чтобы предотвратить возможные конфликты, пространства имён должны быть максимально конкретными.

  • Следует избегать алфавитных супов. Например, проект, названный «ядерный корабль», не должен использовать пространство имён nc, так как это слишком неоднозначное имя.
  • Следует избегать слишком «расплывчатых» слов. Имя battle_royale не выглядит столь информативно, поэтому имя player_name_battle_royale выглядит намного лучше и более информативно.

В любом случае, эти неудачно выбранные пространства имён снижают вероятность конфликта проектов, когда в игре используется несколько видов добавляемого контента.

Пространство имён minecraft[]

Minecraft имеет пространство имён minecraft; если пространство имён не указано, идентификатор по умолчанию будет установлен на minecraft[Только для Java Edition]. Пространство имён minecraft должно использоваться только создателями контента, изменяющего уже существующие данные Minecraft, например добавление новой функции к другим тегам функции minecraft:load.

Другие встроенные пространства имён[]

По умолчанию пакет ресурсов Minecraft использует для Realms языковые файлы в пространстве имён realms (расположенном в assets/realms/lang/<языковой-код>.json) и связанные с игрой языковые файлы в пространстве имён minecraft, даже если ключи перевода не являются идентификаторами пространства имён. Сам Realms.jar тоже использует свой собственный языковой файл ru_ru.JSON и текстуры в пространстве имён realms.

В идентификаторах типов аргументов команд, пространство имён brigadier также используется для типов аргументов, которые тесно связаны с Brigadier.[5]

История[]

Официальный выпуск Java Edition
??Добавлено использование идентификаторов после префикса minecraft.
1.7.2?Команды теперь работают с текстовым форматом идентификаторов, помимо числового.
1.1116w32aИдентификаторы пространства имён теперь имеют ограничение символов.
Запрещенны символы верхнего регистра в идентификаторах пространства имён.
1.1317w47aПосле выравнивания, идентификаторы пространства имён являются единственной принятой формой идентификации.
1.14.4pre1Пространство имён Realms добавлено во встроенный пакет ресурсов Client.jar.
Альфа-версия Pocket Edition
0.16.0build 1Добавлены команды, поддерживающие идентификаторы в виде строк. Однако эти идентификаторы ещё не были помещены в пространство имён.
Официальный выпуск Bedrock Edition
1.12.0beta 1.12.0.2Идентификаторы теперь размещаются в пространстве имён с помощью префикса minecraft для поддержки пользовательских предметов, добавляемых через дополнения.

См. также[]

Примечания[]

Ссылки[]

  • Использование пространства имён также объясняется на странице "Minecraft Snapshot 17w43a" — Minecraft.net.