| Только для Java Edition и Bedrock Edition |
| Название данной статьи является предположением. |
Пространство имён идентификаторов (также известно как строки пространства имён,[1] расположение ресурсов,[2] или идентификаторы ресурса[3]) — это обозначение и идентифицирование встроенных и определяемых пользователем игровые объекты в Minecraft без потенциальной двусмысленности или конфликтов.
Пространство имён идентификаторов используется как простая строка, ссылающаяся на блоки, предметы, разновидности сущностей, рецепты, функции, достижения, теги, и другие объекты из обычного Minecraft. Стоит отметить, что состояния блоков не имеют своего собственного пространства имён.
Допустимый идентификатор пространства имён имеет формат namespace: name, где могут использоваться только определённые символы.
Это список всех объектов игры, которые имеют пространство имён идентификаторов:
Пространство имён и имена идентификаторов могут содержать только следующие символы:
0123456789 Цифрыabcdefghijklmnopqrstuvwxyz Строчные буквы_ Нижнее подчёркивание- Дефис/минусСледующие символы недопустимы в пространстве имён, но допустимы в самом имени:
/ Косая черта (слэш) . Точка Запись каждого пространства имён должна выглядеть следующим образом: lower_case_with_underscores (нижний_регистр_с_нижним_подчёркиванием).
Пространство имён и имена идентификаторов могут содержать все символы, кроме косых черт (слэша) и двоеточий.
Следующие символы недопустимы в пространстве имён, но допустимы в именах таблиц добычи и функций:
/ Косая черта (слэш) Запись каждого пространства имён должна выглядеть следующим образом: 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] |
pack_type/namespace/object_type/name.suffix, где все символы / (слэш) (может быть частью object_type или name) заменяется разделителем каталогов, зависящим от операционной системы. Мапирование происходит из типа объекта в переменные pack_type, object_type, и suffix
| Тип объекта | Пакет объекта | Вместо pack_type | Вместо object_type | Вместо suffix |
|---|---|---|---|---|
| Состояния блока | Пакет ресурсов | assets | blockstates | json |
| Модели | Пакет ресурсов | assets | models | json |
| Частицы | Пакет ресурсов | assets | particles | json |
| Текстуры | Пакет ресурсов | assets | textures | png |
| Достижения | Пакет данных | data | advancements | json |
| Функции | Пакет данных | data | functions | mcfunction |
| Таблицы добычи | Пакет данных | data | loot_tables | json |
| Рецепты | Пакет данных | data | recipes | json |
| Структуры | Пакет данных | data | structures | nbt |
| Теги блоков | Пакет данных | data | tags/blocks | json |
| Теги типов сущностей | Пакет данных | data | tags/entity_types | json |
| Теги предметов | Пакет данных | data | tags/items | json |
| Теги жидкостей | Пакет данных | data | tags/fluids | json |
| Теги функций | Пакет данных | data | tags/functions | json |
pack_type, object_type и suffix. Затем их можно заменить и узнать окончательное расположение содержимого. | Идентификаторы пространства имён | Тип содержимого | pack_type | object_type | suffix | Окончательное расположение |
|---|---|---|---|---|---|
my_texture_pack:diamonds | Текстуры | assets | textures | png | assets/my_texture_pack/textures/diamonds.png |
abc:run_game | Функции | data | functions | mcfunction | data/abc/functions/run_game.mcfunction |
block/torch(то же, что и minecraft:block/torch) | Модель | assets | models | json | assets/minecraft/models/block/torch.json |
load(то же, что и minecraft:load) | Тег функции | data | tags/functions | json | data/minecraft/tags/functions/load.json |
rocket_pack:industry/start_of_story | Достижения | data | advancements | json | data/rocket_pack/advancements/industry/start_of_story.json |
| “ |
| „ |
| — Dinnerbone о пространстве имён[4] |
start. Без пространств имён эти две функции стали бы конфликтовать, а мини-игры просто бы не работали. Если добавляемые объекты имеют разные пространства имён: minigame_one и minigame_two, то функции будут выглядеть следующим образом: minigame_one:start и minigame_two:start — такие функции не конфликтуют друг с другом. Чтобы предотвратить возможные конфликты, пространства имён должны быть максимально конкретными.
nc, так как это слишком неоднозначное имя.battle_royale не выглядит столь информативно, поэтому имя player_name_battle_royale выглядит намного лучше и более информативно.В любом случае, эти неудачно выбранные пространства имён снижают вероятность конфликта проектов, когда в игре используется несколько видов добавляемого контента.
minecraftMinecraft имеет пространство имён 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.11 | 16w32a | Идентификаторы пространства имён теперь имеют ограничение символов. | |||
| Запрещенны символы верхнего регистра в идентификаторах пространства имён. | |||||
| 1.13 | 17w47a | После выравнивания, идентификаторы пространства имён являются единственной принятой формой идентификации. | |||
| 1.14.4 | pre1 | Пространство имён Realms добавлено во встроенный пакет ресурсов Client.jar. | |||
| Альфа-версия Pocket Edition | |||||
| 0.16.0 | build 1 | Добавлены команды, поддерживающие идентификаторы в виде строк. Однако эти идентификаторы ещё не были помещены в пространство имён. | |||
| Официальный выпуск Bedrock Edition | |||||
| 1.12.0 | beta 1.12.0.2 | Идентификаторы теперь размещаются в пространстве имён с помощью префикса minecraft для поддержки пользовательских предметов, добавляемых через дополнения. | |||