Table of Contents
fabric.mod.json
Файл fabric.mod.json - это файл метаданных мода, используемый Fabric Loader для загрузки модов. Для загрузки мод должен иметь этот файл с точным именем, размещенный в корневом каталоге JAR мода.
Обязательные поля
- schemaVersion Необходим для внутренних механизмов. Всегда должно быть
1
. - id Определяет идентификатор мода - строку из латинских букв, цифр, знаков подчеркивания длиной от 1 до 63.
- version Определяет версию мода - строковое значение, необязательно соответствующее c спецификацией Семантического Версионирования 2.0.0.
Необязательные поля
Загрузка мода
- environment: Определяет, где запускается мод: только на стороне клиента (клиентский мод), только на стороне сервера (плагин) или с обеих сторон (обычный мод). Содержит идентификатор среды:
*
Работает везде. По умолчанию.- client Работает на стороне клиента.
- server Работает на стороне сервера.
- entrypoints Определяют основные классы вашего мода, которые будут загружены.
- Для вашего мода есть 3 точки входа по умолчанию:
- main Будет запущен первым. Для классов, реализующих
ModInitializer
. - client Будет запущен вторым и только на стороне клиента. Для классов, реализующих
ClientModInitializer
. - server Будет запущен вторым и только на стороне сервера. Для классов, реализующих
DedicatedServerModInitializer
.
- Каждая точка входа может содержать любое количество загружаемых классов. Классы (или методы, или статические поля) могут быть определены двумя способами:
- Если вы используете Java, то просто перечислите классы (или другие) с полными именами. Например:
"main": [ "net.fabricmc.example.ExampleMod", "net.fabricmc.example.ExampleMod::handle" ]
- Если вы используете какой-либо другой язык, обратитесь к документации языкового адаптера. Котлинский находится здесь (англ.).
- jars Список вложенных JARs внутри JAR вашего мода для загрузки. Перед использованием поля ознакомьтесь с руководство по использованию вложенных JARs. Каждая запись представляет собой объект, содержащий ключ
file
. Это должен быть путь внутри JAR вашего мода к вложенному JAR. Например:"jars": [ { "file": "nested/vendor/dependency.jar" } ]
- languageAdapters Словарь адаптеров для используемых языков с указанием полных имен их классов адаптеров. Например:
"languageAdapters": { "kotlin": "net.fabricmc.language.kotlin.KotlinAdapter" }
- mixins Список файлов конфигурации миксина. Каждая запись - это путь к файлу конфигурации миксина внутри JAR вашего мода или объекту, содержащему следующие поля:
- config Путь к файлу конфигурации миксина внутри JAR вашего мода.
- environment То же самое, что и поле верхнего уровня environment. Смотрите выше. Например:
"mixins": [ "modid.mixins.json", { "config": "modid.client-mixins.json", "environment": "client" } ]
Разрешение зависимостей
Ключом каждой записи приведенных ниже объектов является идентификатор модуля зависимости.
Значение каждого ключа представляет собой строку или массив строк, объявляющих поддерживаемые диапазоны версий. В случае массива предполагается связь “ИЛИ”, то есть только один диапазон должен совпадать, чтобы коллективный диапазон был удовлетворен.
В случае всех версий *
- это специальная строка, объявляющая, что любая версия соответствует диапазону. Кроме того, точное совпадение строк должно быть возможно независимо от типа версии.
- depends Для зависимостей, необходимых для запуска. Без них игра не запустится.
- recommends Для зависимостей, которые не требуются для запуска. Без них игра будет выдавать предупреждение.
- suggests Для зависимостей, которые не требуются для запуска. Используйте это как своего рода метаданные.
- breaks Для модов, которые вместе с вашими могут привести к сбою игры. С ними игра не запустится.
- conflicts Для модов, которые вместе с вашими вызывают какие-то ошибки и т.д. С их помощью игра будет выдавать предупреждение.
Метаданные
- name Определяет удобное для пользователя название мода. Если его нет, соответствует id.
- description Определяет описание мода. Если нет, строка пуста.
- contact Определяет контактную информацию для проекта. Это объект из следующих полей:
- email Контактный адрес электронной почты, относящийся к моду. Должен быть действительный адрес электронной почты.
- irc Канал IRC, относящийся к моду. Должен иметь допустимый формат URL-адреса - например:
irc://irc.esper.net:6667/charset
для#charset
в EsperNet - порт необязателен и предполагается, что он равен 6667, если отсутствует. - homepage Домашняя страница проекта или пользователя. Должен быть действительный адрес HTTP/HTTPS.
- issues Репорт ошибок проекта. Должен быть действительный адрес HTTP/HTTPS.
- sources Репозиторий исходного кода проекта. Должен быть действительный URL-адрес - однако он может быть специализированным URL-адресом для данного VCS (например, Git или Mercurial).
- Список не является исчерпывающим - моды могут предоставлять дополнительные, нестандартные ключи (такие как discord, slack, twitter и т.д.) - если возможно, они должны быть действительными URL-адресами.
- authors Список авторов мода. Каждая запись представляет собой одно имя или объект, содержащий следующие поля:
- name Настоящее имя или ник этого человека. Обязательно.
- contact Контактная информация лица. То же самое, что и верхний уровень contact. Смотрите выше. Необязательно.
- contributors Список участников мода. Каждая запись такая же, как и в поле author. Смотрите выше.
- license Определяет информацию о лицензировании. Может быть либо одной строкой лицензии, либо их списком.
- Это должно обеспечить полный набор привилегированных лицензий, передающих весь пакет модов. Другими словами, соответствие всем перечисленным лицензиям должно быть достаточным для использования, распространения и т.д. пакета модов в целом.
- В случаях, когда часть кода имеет двойную лицензию, выберите предпочитаемую лицензию. Список не является исчерпывающим, служит в первую очередь своего рода подсказкой и не мешает вам предоставлять дополнительные права/лицензии в каждом конкретном случае.
- Чтобы помочь автоматизированным инструментам, рекомендуется использовать SPDX Идентификаторы лицензий для лицензий с открытым исходным кодом.
- icon Определяет значок мода. Значки представляют собой квадратные файлы в формате PNG. (Пакеты ресурсов Minecraft используют 128 × 128, но это не является жестким требованием - однако рекомендуется использовать степень двойки.) Может быть предоставлен в одной из двух форм:
- Путь к одному файлу PNG.
- Словарь ширины изображений в соответствии с путями к их файлам.
Пользовательские поля
Вы можете добавить любое поле, которое хотите добавить внутри поля custom
. Загрузчик проигнорировал бы их. Однако настоятельно рекомендуется использовать пространство имен для ваших полей, чтобы избежать конфликтов, если ваши поля (имена) будут добавлены в стандартную спецификацию.