Что такое Датапак?
Датапак - это набор файлов, позволяющий хранить, добавлять и перезаписывать достижения, функции, таблицы добычи, конструкции, рецепты и теги без изменения какого-либо кода.
Начало работы
Датапаки можно использовать для добавления или изменения функций, таблиц добычи, структур мира, улучшений, рецептов, тегов, измерений, и генерации мира.
Создание пакета данных
Чтобы создать пакет данных, начните с перехода к datapacks папке внутри папки world.
Чтобы найти папку world, найдите saves папку внутри каталога вашей игры, которая по умолчанию является .minecraft.
- В одиночной игре вы можете выбрать свой мир, нажать "Редактировать", затем "Открыть папку с миром".
- На сервере вы можете перейти в его корневой каталог (где находится server.properties), затем войти в world каталог.
Как только вы окажетесь в datapacks папке, создайте папку с именем по вашему выбору. Это будет название вашего пакета данных. Войдите в папку пакета данных.
Первое, что нужно сделать после того, как вы окажетесь в папке, это создать pack.mcmeta файл. Это позволит Minecraft идентифицировать ваш пакет данных.
Создание файла MCMETA
Чтобы создать файл MCMETA, щелкните правой кнопкой мыши в папке с пакетом данных и создайте новый текстовый документ. Назовите этот файл "pack.mcmeta".
Примечание
Убедитесь, что расширение файла является .mcmeta, а не .txt при его переименовании! Другими словами, удалите ваше старое расширение файла. Вы можете быть предупреждены, что изменение расширения имени файла может сделать файл непригодным для использования. Однако на самом деле это указывает на то, что вы правильно переименовали pack.mcmeta файл.
Если вы используете Microsoft Windows и не видите расширений файлов, в Windows 10 вы можете включить их, перейдя в меню "Вид" проводника файлов и установив флажок для расширений имен файлов. Для Windows ниже Windows 10 вы можете снять флажок "скрывать расширения" в настройках папки.
Для Windows 11, чтобы включить их, откройте выпадающее меню "Просмотр", затем наведите указатель мыши на опцию "Показать", затем включите опцию "Расширения имен файлов", которая появляется при наведении курсора мыши на "Показать".
Текстовый редактор
Любой текстовый редактор должен работать. Рекомендуется, чтобы выбранный текстовый редактор поддерживал JSON, формат, используемый файлами с mcmeta расширением и большинством других файлов в пакете данных. Обратите внимание, что большинство текстовых редакторов не распознают mcmeta расширение как JSON. Таким образом, вам нужно настроить редакторы вручную.
pack.mcmeta контент
Откройте pack.mcmeta в своем текстовом редакторе и вставьте или введите следующее:
Примечание
Этот файл написан на JSON! В этом руководстве сейчас не вдаются в подробности о формате, но имейте в виду, как все устроено. Будьте очень осторожны, не забудьте кавычки, двоеточия и фигурные или квадратные скобки. Убедитесь, что не ставите запятые в конце. Отсутствие одной из них может привести к некорректной работе вашего пакета данных! Для проверки ваших файлов вы можете использовать средство проверки JSON, например, найденное на JSONLint.
"pack_format"
Значение "pack_format" говорит Minecraft для какого выпуска предназначен пакет данных и отличается ли он для определенных версий. Список вы можете найти в интернете.
"description"
Следующий текст "description" может быть любой строкой или необработанным текстом JSON. Он будет отображаться при наведении курсора мыши на ваш пакет данных в выходных данных из /datapack list и в пользовательском интерфейсе пакета данных при создании мира. В pack.mcmeta можно использовать символ § (см. Коды форматирования Minecraft) в описании pack.mcmeta и названии пакета данных.
Тестирование вашего пакета
После того, как вы создали свой pack.mcmeta, попробуйте протестировать его в игре! Откройте мир или, если вы уже в мире, введите /reload, затем введите /datapack list. В нем должно быть указано две записи. Одна должна быть [vanilla] (built-in), вторая должна называться как [file/(your data pack's name) (world)], где находится название папки вашего пакета данных(your data pack's name). При наведении курсора мыши на запись вашего пакета данных вы должны увидеть описание вашего пакета данных, как вы написали в описании вашего pack.mcmeta.
Когда появится ваш пакет, вы готовы двигаться дальше.
Устранение неполадок
Если вы не видите свой пакет в списке, убедитесь, что ваш pack.mcmeta файл правильный и сохранен. Найдите все отсутствующие фигурные скобки {}, запятые ,, двоеточия :, кавычки "" или квадратные скобки []. Помните, что для каждой открывающей скобки, цитаты или квадратной скобки у вас должна быть закрывающая скобка, цитата или квадратные скобки. Если вы все еще не видите свой пакет, убедитесь, что он находится в нужной папке.
Именование
Создайте папку с именем data в вашей папке пакета данных, куда вы поместили pack.mcmeta файл. В этой data папке вам нужно создать одну или несколько папок, которые будут выступать в качестве ваших пространств имен.
Записи в пакетах данных имеют расположение ресурсов в виде namespace:path. Соответствующий файл будет расположен по адресу data/namespace/(data_type)/path.(suffix). Обратите внимание, что / символы в пути будут переведены в разделители каталогов.
Несколько примеров:
- тег элемента с идентификатором dummy:foo_proof/bar будет расположен по адресу data/dummy/tags/item/foo_proof/bar.json
- функция ID foo:handler/bar_call будет расположена по адресу data/foo/functions/handler/bar_call.mcfunction
Юридические символы
Пространства имен, пути и другие имена папок и файлов в пакете данных должны содержать только следующие символы:
- 0123456789 Числа
- abcdefghijklmnopqrstuvwxyz Строчные буквы
- _ Подчеркивание
- - Дефис / минус
- / Косая черта / Разделитель каталогов (не может использоваться в пространстве имен)
- . Точка
Предпочтительным соглашением об именовании является lower_case_with_underscores, называемое строчным регистром snake.
Пространство имен
Большинство объектов в игре используют ресурсы с пространством имен для предотвращения потенциальных конфликтов содержимого или непреднамеренных переопределений.
Например, если два пакета данных добавляют в Minecraft два новых механизма мини-игр, и оба имеют функцию с именем start. Без пространств имен эти две функции вступили бы в конфликт и мини-игры были бы нарушены. Но если у них разные пространства имен minigame_one и minigame_two, функции станут minigame_one:start and minigame_two:start, которые больше не конфликтуют.
В большинстве случаев, когда Minecraft требует идентификатор, например for /function, вы должны указать пространство имен в дополнение к пути. Если вы не укажете пространство имен, оно вернется к minecraft.
Убедитесь, что всегда используете свое собственное пространство имен для всего нового, что вы добавляете, и используйте другие пространства имен только в том случае, если вы явно переопределяете что-то другое или, в случае тегов, добавляете к чему-то еще.
Например, Minecraft использует minecraft пространство имен, что означает, что это пространство имен следует использовать только тогда, когда пакету данных необходимо перезаписать существующие данные Minecraft или добавить их записи в ванильные теги.
Функции
Основная статья: Функция (Java Edition)
Смотрите также: Учебные пособия / Командные блоки и функции
Функции - это набор команд, которые можно запускать по порядку.
Чтобы добавить функции, сначала создайте папку с именем functions внутри папки namespace. Затем создайте файл с именем (function_name).mcfunction в этой папке или в любой из ее вложенных папок. Это будет ваш функциональный файл. Ваша функция будет называться в игре как (namespace):(name) или (namespace):(subfolder1)/(subfolder2)/.../(name), если файл функции находится во вложенной папке.
Таблицы добычи
Основная статья: Таблица добычи
Таблицы добычи подскажут Minecraft, что должно выпадать при смерти моба или что должно генерироваться внутри контейнеров, таких как сундуки, при первом открытии, они также могут быть вызваны командой /loot.
Чтобы добавить таблицы добычи, сначала создайте папку с именем loot_tables внутри папки namespace. Затем создайте файл с именем (loot_table_name).json в этой папке или в любой из ее вложенных папок. Это будет ваш файл таблицы добычи. Ваша таблица добычи будет называться в игре как (namespace):(name) или (namespace):(subfolder1)/(subfolder2)/.../(name), если файл расположен во вложенной папке. Все таблицы ванильной добычи находятся в пространстве имен minecraft.
Вот пример таблицы добычи коровы, ее можно использовать в качестве референса:
Чтобы узнать, что означает каждый тег, смотрите Таблицы добычи. На этой странице также есть список таблиц добычи ванили.