Reloadable File Config and Utils
Если вы пишете моды для Minecraft и устали от бесконечных перезапусков игры при каждом изменении конфига, то библиотека Reloadable File Config and Utils создана специально для вас. Этот небольшой, но крайне полезный набор утилит решает одну из самых раздражающих проблем в моддинге — необходимость перезагружать клиент, чтобы применить новые настройки. Теперь конфигурации можно менять на лету, а игра сама подхватит изменения.
Reloadable File Config and Utils для Minecraft — это не обычный мод, а библиотека для разработчиков, которая предоставляет готовые инструменты для работы с файлами конфигурации и другими низкоуровневыми задачами. Она распространяется под лицензией MIT, что делает её доступной для использования в любых проектах, включая коммерческие.
Что входит в состав библиотеки
Автор собрал в одном месте несколько полезных механизмов, которые часто требуются при создании модов. Основные компоненты следующие:
- Watch service — сервис, который отслеживает изменения указанного файла на диске и реагирует на них.
- Configuration handler — обработчик конфигураций с поддержкой горячей перезагрузки из файла.
- Родительский класс для реализации mixin на перечисление NarratorMode.
Каждый из этих компонентов можно использовать по отдельности или вместе, в зависимости от задач вашего мода.
Обработка конфигураций с горячей перезагрузкой
Может показаться, что менеджеров конфигураций для Minecraft уже более чем достаточно. Однако Reloadable File Config and Utils предлагает решение, которое выделяется на фоне аналогов. Главная фишка — возможность горячей перезагрузки: вы меняете JSON или YAML файл, и мод мгновенно применяет новые значения без перезапуска игры.
Создание класса конфигурации
Чтобы начать работу, нужно создать собственный класс конфигурации в стиле Java-bean. Он должен наследоваться от AbstractConfig и содержать приватные поля с геттерами и сеттерами. Также потребуется реализовать методы getDefaultConfigPaths и equals.
В качестве путей по умолчанию обычно указывают файлы вида config/mymod.json или config/mymod.yml. Библиотека сама разберётся, какой формат использовать.
Использование ConfigHandler
После создания класса конфигурации вы создаёте экземпляр ConfigHandler, передавая ему класс вашей конфигурации. Затем вызываете метод initialize, который по умолчанию использует стандартные пути. При желании можно зарегистрировать одного или нескольких подписчиков, реализующих интерфейс Reloadable, чтобы получать уведомления об изменениях.
Важный момент: всегда обращайтесь к значениям через configHandler.get(), чтобы получить актуальные данные после возможной перезагрузки. Это гарантирует, что ваш мод будет работать с самыми свежими настройками.
Поддержка NarratorModeMixin
Перечисление NarratorMode определяет, какие режимы озвучивания доступны в настройках специальных возможностей Minecraft. С помощью mixin на это перечисление мод может добавить собственные режимы narration. Библиотека предоставляет родительский класс, который берёт на себя самую кропотливую логику.
Разработчику всё ещё нужно написать некоторое количество шаблонного кода, но его можно почти полностью скопировать, а самые тонкие моменты уже спрятаны в родительском классе. Стоит учитывать, что фреймворк Fabric не позволяет делать новые режимы публично доступными, а id не всегда совпадает с ordinal и не работает с методом NarratorMode.byId(int). Поэтому при доступе к новым режимам нужно быть особенно внимательным, особенно если в среде может быть несколько mixin на NarratorMode.
Совместимость и установка
Библиотека ориентирована на загрузчик Fabric и поддерживает актуальные версии Minecraft, соответствующие версии самой библиотеки. Поскольку это зависимость для разработчиков, обычным игрокам она нужна только в том случае, если её требует установленный мод.
Если вы хотите скачать Reloadable File Config and Utils, проще всего сделать это через лаунчер foxygame.net: в его каталоге дополнений библиотека устанавливается в один клик и автоматически подтягивает подходящую версию под ваш модпак. А для тех, кто собирает мод вручную, достаточно добавить в build.gradle строку modImplementation "com.casewalker:mod-utils:VERSION" или включить зависимость внутрь JAR через include.
Как установить вручную
- Убедитесь, что у вас установлен Fabric Loader и Fabric API.
- Поместите файл библиотеки в папку mods вашего профиля.
- Проверьте, что версия библиотеки совпадает с версией требуемого мода.
- Запустите игру и убедитесь, что мод, зависящий от библиотеки, загрузился без ошибок.
Итог
Reloadable File Config and Utils — это аккуратный набор инструментов, который избавляет моддеров от рутинной работы и даёт игрокам возможность менять настройки на лету. Если вы разрабатываете моды для Fabric и хотите упростить себе жизнь, эта библиотека определённо заслуживает внимания. А если вы просто игрок, столкнувшийся с требованием зависимости, установка через удобный лаунчер займёт буквально минуту.