Table of Contents
Терминология
Перед началом моддинга с помощью Fabric, необходимо понимать некоторые ключевые термины и фразы, используемые на следующих страницах туториала. Так же полезно знать основные соглашения по поводу таких вещей, как package structure и именование modid. Знание этих правил на ранней стадии поможет Вам лучше понимать туториалы и позволит при необходимости задавать лучшие вопросы.
Mod ID
В документации, иногда мы будем ссылаться на Mod ID или modid в коде. Mod ID расшифровывается как Идентификатор мода. Эта строка должна однозначно определять Ваш мод. Mod ID часто связаны с пространством имён с таким же именем, и, следовательно, теми же ограничениями. Mod ID могут содержать только символы нижнего регистра a-z
, числа 0-9
, и символы _-
, при этом их должно быть не менее двух. К примеру, Minecraft использует пространство имён minecraft
.
Mod ID часто является сокращённой версией имени мода, которое делает его коротким, но узнаваемым и предотвращает конфликты имён.
Обычно, проект с названием “My Project–” должен быть myproject
, my_project
, или, в некоторых случаях, my-project
так же работает, но иногда это может быть неудобно. Мод будет регистрировать предметы и блоки используя Mod ID как регистрационное пространство имён.
Некоторые из начальных руководств будут использовать идентификатор mod_id и регистрировать элементы и блоки в пространстве имен заполнителя, и вы можете думать об этом как о начальном шаблоне - хоть и оставить это без изменений не опасно для тестирования, не забудьте поменять его, если вы собираетесь выпустить свой проект.
Теги
Теги — это группы блоков, предметов или жидкостей со схожими свойствами, например, «minecraft:saplings» содержит все саженцы в игре. Информацию о том, как называть теги для вашего мода, можно найти здесь.
Узнайте больше о тегах на Minecraft Wiki.
Точки входа и инициализаторы
Загрузчик Fabric использует fabric.mod.json
для обнаружения и загрузки вашего мода.
Мод обычно содержит как минимум один класс инициализатора, который должен реализовывать один из «ModInitializer», «ClientInitializer» и «ServerInitializer». Все интерфейсы находятся в пакете net.fabricmc.api. Чтобы изменить или добавить инициализаторы, вам нужно отредактировать «fabric.mod.json» и найти блок «entrypoints», а затем отредактировать их соответствующим образом.
- Блок «main» предназначен для инициализаторов модов,
- Блок «client» — для инициализаторов клиентских модов,
- Блок «server» — для инициализаторов модификаций сервера.
{ [...] "entrypoints": { "main": [ "net.fabricmc.ExampleMod" ], "client": [ "net.fabricmc.ExampleClientMod" ] } [...] }
Реализуя интерфейсы Mod Initializer, вы должны реализовать функцию onInitializing() (или onInitializeClient() для клиента, onInitializeServer() для сервера). Затем вы можете написать свой код там.
Также есть блок под названием «initializers».
Имена групп и пакетов Maven
Согласно документации Oracle по Java, они пишутся строчными буквами, чтобы избежать конфликта с именами классов или интерфейсов. Обратное имя вашего домена используется для начала имен. Подробнее читайте на https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html.