
WolfyUtils
WolfyUtils - это Core API и набор утилит для плагинов на Spigot. Он упрощает создание GUI, мультиязычность, работу с JSON, кастомные предметы и многое другое. Незаменим для разработчиков серверных плагинов.
WolfyUtils (ВолфиЮтилс) - это мощное ядро (Core API) и набор утилит для плагинов на Spigot (и Paper). Если вы разрабатываете плагины для Майнкрафт, этот инструмент сэкономит вам кучу времени. Он берёт на себя рутину: создание инвентарей-меню, поддержку нескольких языков, сериализацию данных и прочие частые задачи.
В основе WolfyUtils лежит разделение на API (зависит от плагина - у каждого свой экземпляр) и Utils (общие для всех). Есть ещё Registry - реестр, который хранит все кастомные типы и объекты с уникальными namespaced ключами. Это позволяет не только самому WolfyUtils регистрировать предметы, но и другим плагинам расширять его возможности.
Что внутри?
APIs (зависимые от плагина)
- Inventory - функциональное API для создания графических интерфейсов в игре. Легко делаешь менюшки с кнопками, слотами, страницами.
- Language - загрузка JSON-файлов с переводами. Поддерживается несколько языков для GUI, сообщений и всего остального. Крайне удобно для мультиязычных серверов.
- Chat - отправка переводимых сообщений, обработка кликов по тексту и прочее. Начиная с версии 3.16.1+ используется KyoriPowered/adventure (современная система сообщений).
- Config - простые утилиты для конфигов.
- NMS - внутренности сервера: RecipeIterator (обходит рецепты), плюс вспомогательные методы для блоков и инвентарей.
- CustomItems - создание кастомных предметов с настройками: своё топливо, прочность, действия при использовании и т.д.
Registry (реестр)
Это база всего кастомного контента в WolfyUtils и плагинах, которые на нём построены. Регистрируешь типы и объекты под уникальными namespaced ключами - и они становятся доступны везде. Можно расширять из других плагинов.
Utils (независимые утилиты)
- NamespacedKey - уникальный ключ для всего регистрируемого контента.
- JSON - разные Jackson-утилиты для упрощения сериализации/десериализации.
- Поддержка HOCON - человеко-читаемый формат конфигов.
- Кастомные де/сериализаторы для Bukkit-объектов.
- Легкая де/сериализация из значений Registry (например, объект по ссылке @OptionalKeyReference).
- Type-to-object: @KeyedTypeIdResolver и @KeyedTypeResolver.
- Particles - настройка кастомных частиц и анимаций через JSON.
- RandomCollection - взвешенная случайная коллекция (например, для дропа).
- Reflection - базовые утилиты для рефлексии.
- Player Head - установка текстур на головы игроков.
- MySQL - простое подключение для выполнения запросов и обновлений.
- ItemBuilder - удобное создание/редактирование ItemStack.
- Save player specific data - сохранение данных, привязанных к игроку.
Плагины, использующие WolfyUtilities
Самый известный - CustomCrafting. Он буквально построен на этих API. Особенно активно использует InventoryAPI для создания рецептов в игре и JSON для загрузки/сохранения рецептов и предметов. Без WolfyUtils он бы не был таким гибким.
Короче, если вы пишете плагины под Spigot - WolfyUtils даст вам готовую инфраструктуру для GUI, локализации, кастомных предметов и прочих базовых вещей. Скачайте его и подключайте как зависимость - сами увидите, насколько быстрее пойдёт разработка.
