COWMODSКаталог модов

PlayerStats API

Lightweight vanilla player statistics via REST API for Paper servers

Автор: AREKKUZZERA56210обновлён 15 сент. 2026 г.
УправлениеТехнологииУтилиты

Описание

PlayerStats API is a lightweight and stable Paper plugin for Minecraft 1.21.x that exposes vanilla player statistics via a simple and efficient HTTP / REST API.

The plugin is designed for external integrations such as web dashboards, analytics services, monitoring tools, and custom frontends.


Features

  • 📊 Reads vanilla player statistics from world/stats/*.json
  • 🧍 Supports online and offline players
  • 🔍 Fetch statistics by UUID or player name
  • 📈 Provides aggregated summaries (playtime, deaths, kills, distance, etc.)
  • 🌐 Built-in HTTP server with REST endpoints
  • ⚡ Data caching for improved performance
  • 🔒 Uses only public Bukkit / Paper API (no NMS, no CraftBukkit)

Compatibility

  • Minecraft / Paper: 1.21.x (1.21, 1.21.1 … 1.21.11)
  • Java: 21
  • Server type: Paper

The plugin is built against the stable Paper API 1.21 branch and is not tied to patch-specific versions, ensuring compatibility across all 1.21.x releases.


Configuration

StatsPlugin uses a simple YAML configuration file to control:

  • HTTP server port
  • Enabling / disabling the web server
  • World path for reading statistics

No rebuild is required after configuration changes.


API Endpoints

Base URL example: http://localhost:8080

🔹 Get all players

GET /players

Returns a list of players with basic summary statistics.


Get player summary by name

GET /players/{playerName}

Example:

GET /players/Notch

Get player summary by UUID

GET /players/uuid/{uuid}

Example:

GET /players/uuid/069a79f4-44e9-4726-a5be-fca90e38aaf5

Get full raw statistics

GET /players/{playerName}/stats

Returns the full vanilla statistics parsed from the stats JSON file.


Endpoint paths may slightly vary depending on configuration and version. Always refer to the project README for the most up-to-date list.


Installation

  1. Download the plugin JAR file
  2. Place it into the plugins/ folder
  3. Start the server
  4. Adjust config.yml if needed

Stability & Safety

  • No usage of NMS or CraftBukkit
  • Safe across all Paper 1.21.x updates
  • Does not embed Paper API into the final JAR
  • Proper resource cleanup on server shutdown

Use cases

PlayerStats API is suitable if you:

  • Build a web-based player statistics dashboard
  • Collect and visualize server analytics
  • Need programmatic access to vanilla statistics
  • Develop external services around your Minecraft server

Screenshots & Examples

TODO

Галерея

Последние версии

Все версии →
release

PlayerStats API 2.2.0

2.2.0
15 сент. 2026 г.73Minecraft: 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
- Updated to 26.2
release

PlayerStats API 2.1.3

2.1.3
24 июн. 2026 г.94Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
### Added - Added local activity history storage in `plugins/PlayerStatsAPI/history.json`. - Added playtime growth tracking based on `minecraft:custom/minecraft:play_time`. - Added activity metadata: first seen, last seen, last join, last quit, last session duration, active-now duration, and recorded playtime delta. - Added daily playtime buckets for charting activity by date. - Added UTC weekday-hour heatmap buckets for per-player and global activity heatmaps. - Added activity API endpoints: - `GET /moss/activity/<uuid>` - `GET /moss/activity/<uuid>/playtime?limit=100` - `GET /moss/activity/top?window=day|week&limit=10` - `GET /moss/activity/heatmap` - `GET /moss/activity/heatmap/<uuid>` - Added `history.max-points-per-player` config option. ### Changed - Player list and player detail API responses now include a compact `activity` object when history is available. - `/moss/top/*` and `/moss/activity/top` now cap requested limits by `web.max-top-results`. - Updated documentation for activity endpoints, history storage, build verification, and release flow. ### Fixed - Replaced deprecated Paper `OfflinePlayer#getLastPlayed()` usage with `OfflinePlayer#getLastSeen()`. **Full Changelog**: https://github.com/AREKKUZZERA/PlayerStats-API/compare/2.1.2...2.1.3
release

PlayerStats API 2.1.2

2.1.2
25 мая 2026 г.48Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
### What's New - Added the new admin command `/playerstatsapi` with aliases `/psa` and `/psapi`. - Added `/psa help`, `/psa status`, `/psa reload`, and `/psa synclog <on|off>`. - Added config control for `[Sync]` console logs: `stats.log-sync-updates`. - Added configurable `/statstop` limits: `commands.default-top-limit` and `commands.max-top-limit`. - Reworked the default `config.yml` into clearer `stats`, `commands`, and `web` sections. ### Changes - `[Sync]` logs are now disabled by default to avoid console spam. - `/psa reload` and `/statsreload` now apply config changes at runtime. - Older flat config keys are still supported, so existing configs keep working.
release

PlayerStats API 2.1.1

2.1.1
21 мая 2026 г.33Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
### Changed - Reduced final plugin jar size. - Removed unused Maven Shade packaging for a cleaner lightweight jar. - Removed Maven descriptor metadata from the final jar. - Disabled Java debug metadata in release classes. - Updated Palantir Java Format to 2.90.0 for compatibility with the current JDK. ### Fixed - `/statsreload` now reports completion after stats reload actually finishes. - HTTP server executor is now shut down when the plugin stops. - CORS allowed methods now match the API surface: `GET, OPTIONS`.
release

PlayerStats-API 2.1

2.1
28 мар. 2026 г.85Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
### Added - `/stats <игрок>` — сводка статистики: время игры, смерти, прыжки, км, убийства, урон, блоки, крафт - `/statsreload` — принудительная перезагрузка кэша статистики - `/statsonline` — список онлайн-игроков с UUID - `/statstop <ключ> [лимит]` — топ игроков по любому ключу статистики (асинхронно) - Tab-complete для `/stat`, `/stats`, `/statstop` - Permissions-система для всех команд - `StatsUtil.totalSection()` — суммирование всей секции статистики - Web API `/moss/summary` теперь включает `players_online`, `total_player_kills`, `total_mob_kills`, `total_damage_dealt` - Web API `/moss/online` теперь возвращает `{ count, players[] }` - Web API `/moss/top/` теперь включает поле `online` для каждого игрока - Web API `/moss/players` поддерживает параметр `?stats=true` (по умолчанию — без статистики, быстрее) - GitHub Actions: автопубликация на Modrinth при push тега `v*` ### Fixed - `/stat` теперь работает с оффлайн-игроками (через кэш и `Bukkit.getOfflinePlayer`) - `onlineSet` переведён на `ConcurrentHashMap.newKeySet()` — правильная семантика - `resolveIntParam` больше не принимает отрицательные значения - `handleSummary` использует `StatsUtil` вместо ручного парсинга JSON - `handlePlayerByUUID` и `handlePlayerByName` возвращают полный `playerEntry` с полем `online` - `lastPathSegment` корректно обрабатывает пустые сегменты пути ### Changed - Версия плагина: 2.0 → 2.1 - `getStatsCache()` возвращает `Collections.unmodifiableMap` вместо прямой ссылки
release

26.1 - Stability & Performance (1.21.X)

2.0
28 мар. 2026 г.46Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
# StatsPlugin 1.21.x - Release 2.0 ## 🚀 Improvements * Оптимизирован WebServer: * удалён дублирующий `/top/jumps` * унифицирован парсинг параметров * добавлено поле `rank` в топах * Оптимизирован StatsManager: * убран лишний `AtomicInteger` * исправлен кэш онлайн-игроков (`retainAll`) * Оптимизирован StatsUtil: * единый `Gson` * унифицирован доступ к stats root * добавлены `minecraft:killed`, `minecraft:killed_by` ## 🐛 Fixes * Исправлен `pom.xml` (`<n>` → `<name>`) * Удалено дублирование `web-port` / `web.port` * Убрано дублирование логики лимитов * Устранён двойной проход по кэшу ## ⚠️ Requirements * Paper **1.21+** ## 🧠 Internal * Упрощена архитектура Web API * Снижен overhead загрузки статистики ## 📊 Logging * Добавлены логи синхронизации загрузки статистики
release

PlayerStats API 1.21.x

1.6
23 февр. 2026 г.80Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
## 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/players` with `limit` and `offset` parameters. Добавлена поддержка **пагинации** для `/moss/players` с параметрами `limit` и `offset`. * Returns metadata envelope: `total`, `limit`, `offset`, `players`. Возвращает метаданные: `total`, `limit`, `offset`, `players`. * Deterministic UUID sorting preserved. Сохраняется детерминированная сортировка по UUID. * Implemented safe pagination parsing: Реализована безопасная обработка пагинации: * `limit` defaults to existing behavior (`maxResponsePlayers`). `limit` по умолчанию = `maxResponsePlayers`. * Negative `limit` → clamped to 0; oversized `limit` → clamped to max. Отрицательные значения → 0; слишком большие → до максимума. * `offset` defaults 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. Старое поведение сохраняется, если секция не указана. * Implemented strict section-based lookup & validation: Реализован строгий поиск по секции и валидация: * Dynamic section discovery from loaded stats. Динамическое определение доступных секций. * `400` response for invalid section. `400` при некорректной секции. * `404` if stat key is absent in the specified section. `404`, если stat_key отсутствует в указанной секции. * No fallback when section is explicitly provided. Без fallback при явном указании секции. --- ### 🔧 Improvements / Улучшения * Added reusable `StatsUtil` helper methods: * `getStatInSection` * `sectionHasStatKey` * `getAvailableStatSections` Добавлены вспомогательные методы `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/` и перезапустите сервер.
beta

PlayerStats API 1.21.X

1.5
22 дек. 2025 г.98Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
Вот корректно отформатированная версия для вставки в **Modrinth changelog** (с правильными переносами, разделителями и Markdown-структурой): --- ## StatsPlugin 1.21.x — Release 1.5 ### ✅ 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 / Что изменилось * Switched to the **stable Paper 1.21.x API branch** to ensure compatibility across all 1.21 patch versions. Переход на **стабильную ветку Paper API 1.21.x** для корректной работы на всех патч-версиях 1.21. * Removed any dependency on **patch-specific Paper builds**. Убрана зависимость от **конкретных патч-сборок Paper**. * Verified plugin startup and runtime on multiple Paper 1.21.x versions. Проверен запуск и корректная работа плагина на нескольких версиях Paper 1.21.x. * API usage is strictly limited to **public Bukkit / Paper APIs** (no NMS, no CraftBukkit). Используется только **публичный Bukkit / Paper API** (без NMS и CraftBukkit). --- ### 🔧 Improvements / Улучшения * Improved overall build stability and forward compatibility within the 1.21.x lifecycle. Повышена стабильность сборки и долгосрочная совместимость в рамках линейки 1.21.x. * Ensured a clean shaded JAR without embedding Paper API classes. Проверено, что итоговый JAR **не содержит классов Paper API**. * Minor internal cleanups and safety checks (no breaking changes). Небольшие внутренние улучшения и проверки без изменения публичного API плагина. --- ### 📦 Build details / Информация о сборке * Single universal JAR: `statsplugin-1.21.x-1.5.jar` Универсальный JAR: `statsplugin-1.21.x-1.5.jar` * Built with **Java 21** Сборка выполнена под **Java 21** * Maven-based build (`mvn clean package`) Maven-билд (`mvn clean package`) --- ### ⚠️ Notes / Примечания * This release is intended to be used **as-is** on all Paper 1.21.x servers. Релиз предназначен для использования **без пересборки** на всех серверах Paper 1.21.x. * No configuration changes are required when upgrading from previous 1.21 builds. Изменения в конфигурации при обновлении **не требуются**. --- ### 📌 Upgrade / Обновление * Replace the old JAR in your `plugins/` folder and restart the server. Замените старый JAR в папке `plugins/` и перезапустите сервер. --- Если хочешь, могу сделать версию с более «продающей» подачей (чтобы релиз выглядел сильнее на Modrinth в ленте обновлений).