GitHub
Исходный код CakeAuctionAPI.
JitPack
Зависимости для сборщиков проектов.
Подключение
Подключайте доступную версию зависимости какcompileOnly (Gradle) или provided (Maven). Версия API 2.1.0 подготовлена в исходниках; её выпуск ещё не опубликован.
Gradle
Maven
Система аддонов
CakeAuction поддерживает модульную загрузку аддонов из директорииplugins/CakeAuction/addons/.
Метаданные
Создайтеaddon.yml в src/main/resources:
Главный класс
Класс аддона наследуетAbstractAddon. Зарегистрированные через него слушатели, команды и задачи автоматически очищаются при выгрузке:
Автообновление конфигов аддона
config.yml храните актуальные настройки и версию:
onEnable() и при reloadConfig(). getConfig() по-прежнему возвращает Bukkit FileConfiguration. Без переименований верните ConfigUpdateOptions.DEFAULT; вызывать saveDefaultConfig() для такого аддона необязательно. Не используйте в методе правил поля, которые заполняются только в onEnable().
При изменении шаблона увеличивайте config-version на 1, оставляйте его последним ключом с пустой строкой перед ним. Для переименований указывайте версию перехода через .relocate(...) и сохраняйте прежние правила, чтобы поддерживать обновление через несколько выпусков.
Обновление сохраняет пользовательские значения, комментарии и дополнительные ключи. При переносе разделов добавляются только отсутствующие поля: существующие новые значения имеют приоритет, а конфликтующие старые значения остаются на месте. Перед заменой файл копируется в backups/ рядом с ним. Повторная загрузка актуального файла не переписывает его; более новые версии не понижаются.
Старые файлы без корректной версии считаются версией 1. Если YAML повреждён или обновление не удалось, файл не сбрасывается: загрузка аддона останавливается до исправления. Без переопределения getConfigUpdateOptions() прежнее поведение аддона не меняется.
Для отдельных файлов из onLoad() или onEnable() используйте:
config-version. Метод возвращает ConfigUpdateResult с версиями и путём резервной копии; кеш основного конфига он не перечитывает. Для config.yml используйте reloadConfig().
Обычный saveConfig() сохраняет текущий Bukkit-конфиг и может переформатировать комментарии.
Потоки и Folia
Для совместимости со Spigot, Paper и Folia используйте методы планировщикаAbstractAddon:
Менеджеры API
Точка входа API:CakeAuctionAPI.getApi().
IEconomyManager
Управление мультивалютной экономикой и регистрация кастомных валют:IAuctionManager
Создание лотов, поиск, регистрация категорий и сортировок:ITaxManager
Расчет налогов с учетом валют и групп:IUserManager
Проверка лимитов и параметров игрока:IUUIDManager
Генерация упорядоченных по времени UUID v7 и компактных Base62 short ID:IItemManager
Сериализация предметов в Base64 и получение контрольных сумм:IHookManager
Регистрация кастомных провайдеров предметов:IActionManager
Регистрация действий кликов в GUI:IAIManager
Асинхронные методы работы с ИИ-моделями:IDatabaseManager
Диагностика подключения к базе данных:INetworkManager
Состояние межсерверного сетевого слоя:IMonitorManager
Диагностика производительности и управление стресс-тестом:IBonusLimitManager
Постоянные бонусные слоты и статус аренды:IRentManager
Временная аренда слотов (/ah rent):