
uLib
uLib - универсальная библиотека для разработчиков плагинов и модов Minecraft. Набор утилит для инъекции кода, работы с SQL, JSON, GUI-меню и кастомными чарами на Spigot, Paper, BungeeCord и Velocity.
uLib - это общепрофильная библиотека (general purpose library) для Майнкрафт, которая нужна в первую очередь разработчикам плагинов и модов. Это не контентный мод, который добавляет блоки или мобов, а набор инструментов и утилит, который другие проекты используют как зависимость. Если вы скачали плагин, а он требует uLib - без него ничего не заведётся.
Сразу важный момент: проект архивирован и больше не получает обновлений. Последняя заявленная совместимость - Minecraft 1.21.x, но активной разработки нет. Так что если вы ищете живую библиотеку для новых проектов, возможно, стоит посмотреть альтернативы. Но для существующих плагинов, которые зависят от uLib, скачать его всё ещё нужно.
Что входит в библиотеку
uLib покрывает сразу несколько слоёв разработки - от базовых Java-утилит до специфики Spigot и прокси-серверов.
Ядро (Core)
- Code Injection Framework - инъекция кода в рантайме
- Dynamic Library Injection - динамическая подгрузка библиотек
- Maven Resolver - разрешение зависимостей из Maven-репозиториев
- Reflection Utilities - утилиты для работы с рефлексией
- JsonRPC v2 API - работа с JSON-RPC
- Yaml/Json API - парсинг и генерация конфигов
- SQL API - упрощённая работа с базами данных
Minecraft-слой
- Mojang Launchermeta API - доступ к метаданным лаунчера Mojang
- Mojang/Bukkit Mappings API - работа с маппингами (полезно при обфускации)
- Proxy-Server Bridge - мост между прокси (BungeeCord, Velocity) и серверами
- User Cache - кэширование данных игроков
Spigot-слой
- GUI/Inventory Menus API - создание инвентарных меню и интерфейсов
- Custom Enchantments - система кастомных зачарований
- Item API - расширенная работа с предметами
Совместимость и требования
Библиотека рассчитана на свежие версии серверного ПО. В зависимости от сборки работает на Spigot, Paper, Purpur, BungeeCord, Waterfall, Velocity, а также на загрузчиках Fabric, Forge, NeoForge и Quilt. Последняя заявленная версия - Minecraft 1.21.x.
Минимальная версия Java - 17. На старых версиях джавы библиотека просто не запустится.
Если ваш сервер работает на старой версии Minecraft, автор прямо предупреждает: поддержки не будет. Для кросс-версионной совместимости рекомендуется использовать ViaBackwards, ViaRewind или ProtocolSupport.
При первом запуске uLib скачает несколько зависимостей - это нормально, не пугайтесь лишних файлов в папке.
Важный нюанс
Проект архивирован. Это значит, что баги не будут чиниться, новых версий не выйдет, и если что-то сломается на будущих обновлениях Minecraft - никто не исправит. Для существующих серверов, где uLib уже работает и нужен как зависимость, это не проблема. Но для новых разработок лучше поискать актуальные альтернативы.
Для кого этот проект
Если вы обычный игрок - uLib вам скорее всего не нужен, разве что какой-то плагин его требует. Если вы разработчик плагинов - библиотека может сэкономить время на рутинных задачах: GUI-меню, работа с SQL, кастомные чары, маппинги. Но учитывайте статус архивации.
Скачать uLib имеет смысл в основном как зависимость для плагинов, которые её требуют. Ставится как обычный плагин в папку plugins на Spigot/Paper или как мод на Fabric/Forge в зависимости от сборки.
Лицензия и включённый софт
Проект использует сторонние компоненты: NBTEditor от BananaPuncher714 (MIT) и Apache Commons Lang v3 (Apache License 2.0). Автор не несёт ответственности за использование библиотеки - стандартный дисклеймер для подобных проектов.
Сервер для плагина uLib - как у профи
Плагин uLib создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином uLib для друзей можно за пару минут - BungeeHost всё уже подготовил.
