Только для 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
выглядит намного лучше и более информативно.В любом случае, эти неудачно выбранные пространства имён снижают вероятность конфликта проектов, когда в игре используется несколько видов добавляемого контента.
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.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 для поддержки пользовательских предметов, добавляемых через дополнения. |