▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/UltraLib
UltraLib

UltraLib

UltraLib - ненавязчивая Java-библиотека для разработчиков модов на Fabric. Упрощает работу с JSON, конфигами, кейбиндингами и data-driven фичами без единого миксина.

Оцените первым
19.0K
3

UltraLib - это библиотека для Майнкрафт, которая нужна не игрокам, а разработчикам модов. Если вы просто ищете, что поставить в сборку - этот мод вам ничего не даст в игре. А вот если вы пишете свои моды на Fabric и устали копипастить одни и те же утилиты из проекта в проект - тут есть на что посмотреть.

Главная фишка UltraLib в том, что она полностью ненавязчивая. Никаких миксинов, никаких хуков в чужой код, никакой магии. Это просто набор полезных Java-классов, которые вы подключаете и используете. Из-за отказа от миксинов библиотека совместима практически с чем угодно - конфликтовать ей попросту не с чем. Работает и на клиенте, и на сервере, поддерживает Minecraft 1.20.x и свежие версии вплоть до 1.21.9-1.21.10.

Что внутри

Набор утилит тут небольшой, но каждая решает конкретную боль мододела:

  • OptionalObject - удобный парсинг опциональных данных из JSON. Если вы писали датадрайвен-фичи, то знаете, как надоедает проверять каждое поле на null вручную.
  • LatchedKeyBinding - кейбиндинги, которые срабатывают ровно один раз за нажатие. В ванильке с этим вечно костыли, а тут готовое решение.
  • SortedList - сортировка списка по весу. Полезно, когда у вас куча фич от разных модов и нужно определить порядок их выполнения.
  • UltraConfig - крайне легковесная система конфигов. Не монстр уровня Cloth Config, а простая штука для базовых нужд.
  • SimpleDataLoader, RunnableDataLoader, DetachedRunableDataLoader - три варианта загрузки JSON-данных под разные сценарии. Датапаки, кастомные ресурсы, всё такое.
  • Creator - по сути Function с реестром, позволяет превращать один объект в другой по указанному id. Основной инструмент для data-driven фич, когда контент описывается в JSON, а не хардкодом.
  • Lists - перепаковка класса из Apache Commons, потому что на клиенте он по умолчанию недоступен. Мелочь, а приятно.

UltraDRY - меньше бойлерплейта

Отдельно стоит упомянуть набор утилит UltraDRY. Идея простая: не повторяйся (Don't Repeat Yourself). Подключается одной строчкой в client init:

UltraLib.registerPackage(this.getClass(), MOD_ID);

После этого получаете быстрый доступ к часто нужным вещам:

  • UltraLib.id(String id) - идентификаторы с префиксом вашего мода, без ручной подстановки MOD_ID каждый раз.
  • UltraLib.getText(String title, String... paths) - получение переводов.
  • UltraLib.log() - готовый логгер.

Звучит как мелочь, но когда в моде сотни вызовов Identifier.of(MOD_ID, "что-то") - экономия времени и читабельность кода ощутимые.

Кому это нужно

Если честно - проект нишевый. Обычному игроку ставить UltraLib в сборку модов бессмысленно, если только какой-то мод не требует его как зависимость. У библиотеки порядка 17 тысяч загрузок, что для девелоперской утилиты вполне неплохо, но это не Sodium и не Fabric API по масштабу.

А вот для разработчиков, особенно тех, кто делает data-driven моды с кучей JSON-контента, UltraLib может сэкономить прилично времени. Вместо того чтобы писать свои велосипеды для загрузки данных, конфигов и кейбиндов - берёте готовое и сосредотачиваетесь на самой фиче.

Важный нюанс: автор называет эту библиотеку предпоследней (penultimate), так что не ждите, что она покроет абсолютно все нужды. Это лёгкий инструментарий, а не фреймворк. Для сложных конфигов лучше смотреть в сторону Cloth Config или YACL, а для серьёзной манипуляции игрой без миксинов всё равно не обойтись. Но в своей нише - быстрые утилиты без головной боли с совместимостью - UltraLib справляется хорошо.

Скачать UltraLib можно для Fabric под Minecraft 1.20 и 1.21. Если вы мододел и собираетесь делать что-то с JSON-контентом - гляньте, возможно, половину утилит вам писать уже не придётся.

Партнёрский материал

Как поиграть с друзьями с модом UltraLib?

Мод UltraLib куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода UltraLib будет готов за пару минут - BungeeHost сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x1.20.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Ссылки

Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:9 месяцев назад
Главная