StatsPlugin 1.21.x - Release 1.6
✨ What’s changed / Что изменилось
-
Added pagination support for
/moss/playersendpoint withlimitandoffsetparameters.
Добавлена поддержка пагинации для/moss/playersс параметрамиlimitиoffset.- Returns metadata envelope:
total,limit,offset,players.
Возвращает метаданные:total,limit,offset,players. - Deterministic UUID sorting preserved.
Сохраняется детерминированная сортировка по UUID.
- Returns metadata envelope:
-
Implemented safe pagination parsing:
limitdefaults to existing behavior (maxResponsePlayers).- Negative
limit- clamped to 0, oversizedlimit- clamped to max. offsetdefaults to 0, negative values clamped to 0.
Безопасная обработка пагинации:limitпо умолчанию =maxResponsePlayers.- Отрицательные значения - 0, слишком большие - до макс.
offsetпо умолчанию = 0, отрицательные значения - 0.
-
Extended
/moss/top/<stat_key>to support explicit section selection:
Добавлено явное указание секции для/moss/top/<stat_key>:- Query param form:
/moss/top/<stat_key>?section=<section> - Path variant:
/moss/top/<section>/<stat_key> - Legacy behavior preserved when section not provided.
Старое поведение сохраняется, если секция не указана.
- Query param form:
-
Section-only lookup behavior and validations:
- Dynamic section discovery from loaded stats.
400response for invalid section.404if stat key is absent in a valid requested section.- Only searches the specified section, no fallback to other sections.
Проверка и поиск по секциям: - Динамическое обнаружение секций в загруженных данных.
400при некорректной секции.404, если stat_key отсутствует в указанной секции.- Поиск только в указанной секции, без fallback.
🔧 Improvements / Улучшения
-
Added reusable
StatsUtilhelpers for cleaner code:getStatInSection- extract stat value from a specific section.sectionHasStatKey- check if section contains a given stat key.getAvailableStatSections- dynamic discovery of valid sections.
Добавлены утилиты StatsUtil для упрощения кода:getStatInSection- получение значения stat в указанной секции.sectionHasStatKey- проверка, есть ли stat_key в секции.getAvailableStatSections- динамическое определение доступных секций.
-
Improved backward compatibility: old clients continue working without changes.
Улучшена обратная совместимость: старые клиенты продолжают работать без изменений. -
Minor internal cleanups and safety checks (no breaking changes).
Небольшие внутренние улучшения и проверки без изменения публичного API плагина.
📦 Build details / Информация о сборке
- Single universal JAR:
statsplugin-1.21.x-1.6.jar
Универсальный JAR:statsplugin-1.21.x-1.6.jar - Built with Java 21
Сборка выполнена под Java 21 - Maven-based build (
mvn clean package)
Maven-билд (mvn clean package)
⚠️ Notes / Примечания
- Pagination support makes large player lists efficient and usable for dashboards / web UIs.
Поддержка пагинации делает длинные списки игроков эффективными и удобными для дашбордов и веб-интерфейсов. - Explicit section selection solves ambiguity for
/moss/topkeys (e.g., mined vs used) and enables entity kill leaderboards.
Явное указание секции решает проблему неоднозначности (minedvsused) и позволяет строить лидерборды по убитым сущностям. - This release is intended to be used as-is on all Paper 1.21.x servers.
Релиз предназначен для использования без пересборки на всех серверах Paper 1.21.x.
📌 Upgrade / Обновление
- Replace the old JAR in your
plugins/folder and restart the server.
Замените старый JAR в папкеplugins/и перезапустите сервер.