
PlayerStats API
Lightweight vanilla player statistics via REST API for Paper servers
Список изменений
StatsPlugin 1.21.x - Release 1.6
✅ Compatibility / Совместимость
- Paper / Minecraft: 1.21.x (1.21, 1.21.1 … 1.21.11)
- Java: 21
- API: Paper API 1.21 (no patch-specific binding / без привязки к патч-версиям)
✨ What’s changed / Что изменилось
-
Added pagination support for
/moss/playerswithlimitandoffsetparameters. Добавлена поддержка пагинации для/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).limitпо умолчанию =maxResponsePlayers.- Negative
limit→ clamped to 0; oversizedlimit→ clamped to max. Отрицательные значения → 0; слишком большие → до максимума. offsetdefaults to 0; negative values clamped to 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 is not provided. Старое поведение сохраняется, если секция не указана.
- Query param form:
-
Implemented strict section-based lookup & validation: Реализован строгий поиск по секции и валидация:
- Dynamic section discovery from loaded stats. Динамическое определение доступных секций.
400response for invalid section.400при некорректной секции.404if stat key is absent in the specified section.404, если stat_key отсутствует в указанной секции.- No fallback when section is explicitly provided. Без fallback при явном указании секции.
🔧 Improvements / Улучшения
-
Added reusable
StatsUtilhelper methods:getStatInSectionsectionHasStatKeygetAvailableStatSections
Добавлены вспомогательные методы
StatsUtilдля устранения дублирования логики и поддержки динамического поиска по секциям. -
Improved backward compatibility - existing clients continue working without changes. Улучшена обратная совместимость - существующие клиенты работают без изменений.
-
Minor internal refactoring and safety checks (no breaking API 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 significantly improves performance for large servers and makes the API UI-friendly for dashboards and web panels. Пагинация значительно улучшает работу на больших серверах и делает API удобным для веб-интерфейсов.
-
Explicit section selection resolves stat key ambiguity (e.g., mined vs used) and enables entity kill leaderboards. Явное указание секции решает проблему неоднозначных stat_key и позволяет строить топы по убийствам мобов.
-
Fully backward compatible with previous 1.21.x releases. Полностью совместим с предыдущими релизами 1.21.x.
📌 Upgrade / Обновление
- Replace the old JAR in your
plugins/folder and restart the server. Замените старый JAR в папкеplugins/и перезапустите сервер.
