YetAnotherConfigLib (YACL) — это библиотека конфигурации для модов Minecraft , предназначенная для создания понятных и согласованных графических интерфейсов, непосредственно интегрированных в стиль игры, а также предоставляющая полный API для чтения и записи файлов конфигурации.
Этот мод для Minecraft, разработанный в первую очередь как инструмент для разработчиков, решает конкретную задачу: предложить современную альтернативу существующим библиотекам конфигурации, которые часто ограничены, специфичны или сложны в обслуживании. Поэтому YACL ориентирован как на создателей модов для клиентской части, так и на тех, кому необходимо управлять настройками, совместно используемыми клиентом и сервером, без добавления лишнего уровня сложности.
Особенности мода YetAnotherConfigLib
Интерфейс конфигурации, точно соответствующий Minecraft.
YACL генерирует экраны настроек, которые органично интегрируются с оригинальным интерфейсом игры. Типографика, интервалы, поведение клавиатуры: всё соответствует визуальному стилю игры. Такая согласованность предотвращает резкие переходы при открытии меню настроек и упрощает навигацию, даже для сложных конфигураций, организованных в категории и сворачиваемые группы.
Гибкая система управления
Каждый параметр не привязан к фиксированному отображению. Например, логический параметр может быть представлен в виде флажка или кнопки включения/выключения, а числовое значение может использовать текстовое поле или ползунок. YACL также позволяет создавать пользовательские контроллеры, когда предоставленных компонентов недостаточно, что обеспечивает значительную свободу в проектировании интерфейса.
Подробные и интерактивные описания
Параметры могут сопровождаться подробным пояснительным текстом с возможностью наведения курсора и щелчка благодаря системе текстовых компонентов Minecraft. YACL также поддерживает отображение изображений WebP, включая анимированные, или их замену полностью настраиваемыми графическими элементами. Такой подход делает экраны конфигурации более читабельными и познавательными.
Продвинутая организация и доступность
Настройки можно структурировать в виде вкладок, категорий и сворачиваемых групп, что уменьшает визуальный беспорядок. Вся система поддерживает полнофункциональную навигацию с помощью клавиатуры, что является важной функцией для обеспечения доступности и удобства использования с такими инструментами, как Controlify. Такой акцент на удобстве использования отличает YACL от более старых библиотек.
Интегрированная сериализация конфигурации
Помимо графического интерфейса, YACL предоставляет API конфигурации, способный автоматически управлять сохранением и загрузкой настроек. Разработчики могут использовать сериализацию на основе GSON с поддержкой формата JSON5, что упрощает управление файлами и уменьшает количество ошибок, связанных с ручным написанием кода.
Используя мод YetAnotherConfigLib
YACL основан на простой структуре: категории, содержащие группы, которые, в свою очередь, состоят из вариантов. Каждый вариант определяется с помощью конструктора, который связан с именем, описанием, ссылкой на фактическое значение и контроллером отображения.
Для отображения интерфейса мод динамически генерирует экран на основе этой конфигурации. На Fabric интеграция с Mod Menu позволяет открывать этот экран из списка модов. На NeoForge аналогичная точка расширения доступна через встроенный список модов.
Подробная документация, позволяющая сориентироваться на начальных этапах и рассмотреть более сложные случаи, включая использование API конфигурации без графического интерфейса на стороне сервера, доступна на официальной вики проекта.

