- Документация
- https://modrinth.com/plugin/ultimateadvancementapi
UltimateAdvancementAPI — серверный плагин и библиотека для разработчиков, которым нужно создавать собственные достижения и управлять прогрессом игроков. Проект относится к категориям library и utility: это не готовый набор заданий, а основа для других плагинов. Клиентская установка не предусмотрена, серверная часть обязательна.
API поддерживает настройку видимости достижений, командный прогресс, работу с офлайн-игроками, пользовательские уведомления и несколько способов хранения данных. Итоговое содержание, условия и награды определяет плагин, использующий библиотеку.
Главная задача UltimateAdvancementAPI — предоставить единый программный слой для авторской системы достижений. На его основе разработчик может строить отдельные вкладки, связывать элементы в цепочки, отслеживать выполнение условий и изменять прогресс.
Типичные сценарии применения:
• серверные задания и этапы развития;
• ветки прогрессии для режимов и событий;
• достижения для команд;
• отдельные цели мини-игр;
• уведомления о выполненных условиях;
• замена или дополнение стандартной системы Minecraft.
Сам API не задаёт баланс и не добавляет готовую кампанию. Эти решения остаются за автором интеграции.
Официальное описание называет UltimateAdvancementAPI инструментом для разработчиков. У проекта две основные аудитории:
• администраторы, которым он нужен как зависимость другого плагина;
• Java-разработчики, создающие собственные достижения.
В первом случае достаточно подобрать совместимый JAR и установить его на сервер. Во втором потребуется работа с API, Javadoc и материалами проекта. Обычному игроку отдельный компонент не нужен: он видит только результат серверной реализации.
API позволяет создавать достижения и управлять их отображением. Система видимости определяет, какие вкладки или элементы показываются игроку.
Подтверждены:
• синхронизация прогресса команды;
• изменение данных офлайн-игроков;
• пользовательские toast-уведомления;
• SQLite, MySQL и In-Memory;
• отключение стандартных достижений без изменения серверного JAR;
• собственные вкладки и связанные цепочки.
Операции описаны как пакетные, но это не гарантирует одинаковую нагрузку во всех интеграциях.
Командная синхронизация подходит для кооперативной прогрессии, а поддержка офлайн-игроков позволяет менять сохранённые данные без их присутствия. Видимость определяет момент открытия элементов.
Перед реализацией нужно решить:
• будет ли прогресс личным или общим;
• что скрывается до выполнения условий;
• как обрабатывается выход из команды;
• применяются ли изменения к офлайн-пользователям;
• как восстанавливаются данные.
Конкретные правила задаёт использующий API плагин.
Подтверждены три варианта хранения: SQLite, MySQL и память процесса. SQLite обычно рассматривается как локальный вариант, MySQL — как внешняя база, а In-Memory не предполагает самостоятельного постоянного хранения. Выбор должен соответствовать архитектуре конкретного проекта.
Toast-уведомления можно применять для краткого сообщения о прогрессе или завершении условия. Их содержание и момент отправки определяет разработчик. Фактическая основа не описывает готовые шаблоны, параметры подключения к базам и схему миграции, поэтому такие детали следует брать из документации выбранной версии.
Подтверждены Minecraft 1.15–1.21.11 с перечисленными промежуточными выпусками, а также 26.1, 26.1.1, 26.1.2 и 26.2. Платформы:
• Bukkit;
• Paper;
• Spigot.
Нужно сопоставить версию Minecraft, платформу, версию API и требования зависимого плагина. Особенно осторожно следует обращаться с beta-сборками и обновлениями между крупными ветками.
Стандартный порядок установки:
• Проверить версию Minecraft и серверную платформу.
• Выбрать подходящий JAR UltimateAdvancementAPI.
• Остановить сервер.
• Поместить файл в папку plugins.
• Запустить сервер и изучить журнал загрузки.
• Убедиться, что использующий API плагин обнаружил зависимость.
В выбранных метаданных обязательные project dependencies для самого UltimateAdvancementAPI не указаны. Однако сторонний продукт может требовать конкретную версию библиотеки, поэтому его требования необходимо учитывать отдельно.
API распространяется через Maven; также заявлен вариант для встраивания в собственный плагин. Доступны Javadoc и графический генератор, создающий Java-классы по схеме. Генератор отмечен как beta-инструмент.
Разработчику следует:
• спроектировать вкладки и связи;
• определить условия, награды и видимость;
• выбрать личный или командный прогресс;
• выбрать способ хранения;
• проверить офлайн-изменения и восстановление данных.
Готовой универсальной конфигурации в основе нет.
Указаны две сборки ветки 3.0.0:
• UltimateAdvancementAPI-Plugin-3.0.0-beta-3.jar — 1 019 335 байт;
• UltimateAdvancementAPI-Plugin-3.0.0-beta-2.jar — 1 006 067 байт.
Для beta-3 опубликованы SHA-512 f9b8450bd4e47c092f47fbba956b4222d492bec5ede1c5a2cf3202a10702c3f1c8dac5917f9b95859a228613e51973f6304d2424e173cefcf6de15ba61af4115 и SHA-1 682cd036886d72081f9e5a6ad19d36496d1cb348.
Для beta-2: SHA-512 1169f91f44b29facd162b399293c2449388b97babbe9036b5d9b624b660f592532f5d071052c20fe57beb10b491b35bff69ea08d9902aeee44daba2e1caad6cf и SHA-1 3549e3ac1f8409ff8edff5d9382ad57be721f32f.
Beta-статус служит основанием сначала проверять обновление на тестовом экземпляре и сохранять возможность отката.
UltimateAdvancementAPI распространяется по LGPL-3.0-or-later. При изменении или распространении проекта необходимо учитывать условия этой лицензии и сохранять требуемые уведомления. Лицензии сторонних плагинов и собственного кода проверяются отдельно.
JAR-файлы получены по официальному HTTPS, локально сверены по опубликованным хешам и прошли статическую проверку структуры и путей. Динамический запуск не выполнялся. Это подтверждает целостность полученных файлов, но не гарантирует их поведение в конкретной серверной сборке.
Перед внедрением рекомендуется:
• сделать резервную копию;
• сверить хеш файла;
• проверить запуск на тестовой копии;
• изучить ошибки и предупреждения в журнале;
• протестировать зависимые плагины;
• проверить сохранение прогресса и откат версии.
В основе нет полного перечня методов API, параметров баз данных, различий beta-2 и beta-3 и результатов нагрузочного тестирования. Поэтому нельзя утверждать совместимость с каждым сторонним плагином, одинаковую производительность на всех платформах или беспроблемную миграцию существующих данных.
Нет. Это программная основа. Готовые вкладки, условия и награды появляются только в использующем её плагине.
Нет. Клиентская сторона обозначена как unsupported, а плагин устанавливается на сервер.
В выбранных метаданных они не указаны. При этом другой плагин может требовать определённую версию UltimateAdvancementAPI.
Файл предназначен для серверной установки, но beta-статус требует осторожности. Без динамического теста нельзя обещать отсутствие ошибок в конкретной сборке.
Да, синхронизация между участниками команды заявлена официально. Точные правила задаёт разработчик интеграции.
API поддерживает настройку видимости достижений, командный прогресс, работу с офлайн-игроками, пользовательские уведомления и несколько способов хранения данных. Итоговое содержание, условия и награды определяет плагин, использующий библиотеку.
Назначение проекта
Главная задача UltimateAdvancementAPI — предоставить единый программный слой для авторской системы достижений. На его основе разработчик может строить отдельные вкладки, связывать элементы в цепочки, отслеживать выполнение условий и изменять прогресс.
Типичные сценарии применения:
• серверные задания и этапы развития;
• ветки прогрессии для режимов и событий;
• достижения для команд;
• отдельные цели мини-игр;
• уведомления о выполненных условиях;
• замена или дополнение стандартной системы Minecraft.
Сам API не задаёт баланс и не добавляет готовую кампанию. Эти решения остаются за автором интеграции.
Скриншоты и внешний вид
Для кого предназначен плагин
Официальное описание называет UltimateAdvancementAPI инструментом для разработчиков. У проекта две основные аудитории:
• администраторы, которым он нужен как зависимость другого плагина;
• Java-разработчики, создающие собственные достижения.
В первом случае достаточно подобрать совместимый JAR и установить его на сервер. Во втором потребуется работа с API, Javadoc и материалами проекта. Обычному игроку отдельный компонент не нужен: он видит только результат серверной реализации.
Подтверждённые возможности
API позволяет создавать достижения и управлять их отображением. Система видимости определяет, какие вкладки или элементы показываются игроку.
Подтверждены:
• синхронизация прогресса команды;
• изменение данных офлайн-игроков;
• пользовательские toast-уведомления;
• SQLite, MySQL и In-Memory;
• отключение стандартных достижений без изменения серверного JAR;
• собственные вкладки и связанные цепочки.
Операции описаны как пакетные, но это не гарантирует одинаковую нагрузку во всех интеграциях.
Команды, офлайн-игроки и видимость
Командная синхронизация подходит для кооперативной прогрессии, а поддержка офлайн-игроков позволяет менять сохранённые данные без их присутствия. Видимость определяет момент открытия элементов.
Перед реализацией нужно решить:
• будет ли прогресс личным или общим;
• что скрывается до выполнения условий;
• как обрабатывается выход из команды;
• применяются ли изменения к офлайн-пользователям;
• как восстанавливаются данные.
Конкретные правила задаёт использующий API плагин.
Хранение данных и уведомления
Подтверждены три варианта хранения: SQLite, MySQL и память процесса. SQLite обычно рассматривается как локальный вариант, MySQL — как внешняя база, а In-Memory не предполагает самостоятельного постоянного хранения. Выбор должен соответствовать архитектуре конкретного проекта.
Toast-уведомления можно применять для краткого сообщения о прогрессе или завершении условия. Их содержание и момент отправки определяет разработчик. Фактическая основа не описывает готовые шаблоны, параметры подключения к базам и схему миграции, поэтому такие детали следует брать из документации выбранной версии.
Совместимость
Подтверждены Minecraft 1.15–1.21.11 с перечисленными промежуточными выпусками, а также 26.1, 26.1.1, 26.1.2 и 26.2. Платформы:
• Bukkit;
• Paper;
• Spigot.
Нужно сопоставить версию Minecraft, платформу, версию API и требования зависимого плагина. Особенно осторожно следует обращаться с beta-сборками и обновлениями между крупными ветками.
Установка на сервер
Стандартный порядок установки:
• Проверить версию Minecraft и серверную платформу.
• Выбрать подходящий JAR UltimateAdvancementAPI.
• Остановить сервер.
• Поместить файл в папку plugins.
• Запустить сервер и изучить журнал загрузки.
• Убедиться, что использующий API плагин обнаружил зависимость.
В выбранных метаданных обязательные project dependencies для самого UltimateAdvancementAPI не указаны. Однако сторонний продукт может требовать конкретную версию библиотеки, поэтому его требования необходимо учитывать отдельно.
Интеграция для разработчиков
API распространяется через Maven; также заявлен вариант для встраивания в собственный плагин. Доступны Javadoc и графический генератор, создающий Java-классы по схеме. Генератор отмечен как beta-инструмент.
Разработчику следует:
• спроектировать вкладки и связи;
• определить условия, награды и видимость;
• выбрать личный или командный прогресс;
• выбрать способ хранения;
• проверить офлайн-изменения и восстановление данных.
Готовой универсальной конфигурации в основе нет.
Файлы и версии
Указаны две сборки ветки 3.0.0:
• UltimateAdvancementAPI-Plugin-3.0.0-beta-3.jar — 1 019 335 байт;
• UltimateAdvancementAPI-Plugin-3.0.0-beta-2.jar — 1 006 067 байт.
Для beta-3 опубликованы SHA-512 f9b8450bd4e47c092f47fbba956b4222d492bec5ede1c5a2cf3202a10702c3f1c8dac5917f9b95859a228613e51973f6304d2424e173cefcf6de15ba61af4115 и SHA-1 682cd036886d72081f9e5a6ad19d36496d1cb348.
Для beta-2: SHA-512 1169f91f44b29facd162b399293c2449388b97babbe9036b5d9b624b660f592532f5d071052c20fe57beb10b491b35bff69ea08d9902aeee44daba2e1caad6cf и SHA-1 3549e3ac1f8409ff8edff5d9382ad57be721f32f.
Beta-статус служит основанием сначала проверять обновление на тестовом экземпляре и сохранять возможность отката.
Лицензия
UltimateAdvancementAPI распространяется по LGPL-3.0-or-later. При изменении или распространении проекта необходимо учитывать условия этой лицензии и сохранять требуемые уведомления. Лицензии сторонних плагинов и собственного кода проверяются отдельно.
Безопасность и проверка
JAR-файлы получены по официальному HTTPS, локально сверены по опубликованным хешам и прошли статическую проверку структуры и путей. Динамический запуск не выполнялся. Это подтверждает целостность полученных файлов, но не гарантирует их поведение в конкретной серверной сборке.
Перед внедрением рекомендуется:
• сделать резервную копию;
• сверить хеш файла;
• проверить запуск на тестовой копии;
• изучить ошибки и предупреждения в журнале;
• протестировать зависимые плагины;
• проверить сохранение прогресса и откат версии.
Ограничения данных
В основе нет полного перечня методов API, параметров баз данных, различий beta-2 и beta-3 и результатов нагрузочного тестирования. Поэтому нельзя утверждать совместимость с каждым сторонним плагином, одинаковую производительность на всех платформах или беспроблемную миграцию существующих данных.
FAQ
Создаёт ли UltimateAdvancementAPI готовые достижения?
Нет. Это программная основа. Готовые вкладки, условия и награды появляются только в использующем её плагине.
Нужно ли устанавливать компонент игрокам?
Нет. Клиентская сторона обозначена как unsupported, а плагин устанавливается на сервер.
Есть ли обязательные зависимости?
В выбранных метаданных они не указаны. При этом другой плагин может требовать определённую версию UltimateAdvancementAPI.
Можно ли сразу обновлять рабочий сервер до beta-3?
Файл предназначен для серверной установки, но beta-статус требует осторожности. Без динамического теста нельзя обещать отсутствие ошибок в конкретной сборке.
Поддерживается ли общий прогресс команды?
Да, синхронизация между участниками команды заявлена официально. Точные правила задаёт разработчик интеграции.