Skip to content

Commit 66460f5

Browse files
committed
[2.1] - 2025
- `/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*` - `/stat` теперь работает с оффлайн-игроками (через кэш и `Bukkit.getOfflinePlayer`) - `onlineSet` переведён на `ConcurrentHashMap.newKeySet()` — правильная семантика - `resolveIntParam` больше не принимает отрицательные значения - `handleSummary` использует `StatsUtil` вместо ручного парсинга JSON - `handlePlayerByUUID` и `handlePlayerByName` возвращают полный `playerEntry` с полем `online` - `lastPathSegment` корректно обрабатывает пустые сегменты пути - Версия плагина: 2.0 → 2.1 - `getStatsCache()` возвращает `Collections.unmodifiableMap` вместо прямой ссылки
1 parent 4f1f1c2 commit 66460f5

File tree

12 files changed

+1297
-402
lines changed

12 files changed

+1297
-402
lines changed

.github/workflows/maven.yml

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: Java CI with Maven
33
on:
44
push:
55
branches: [ "main" ]
6+
tags: [ "v*" ]
67
pull_request:
78
branches: [ "main" ]
89
workflow_dispatch:
@@ -15,17 +16,62 @@ jobs:
1516
runs-on: ubuntu-latest
1617
steps:
1718
- uses: actions/checkout@v4
19+
1820
- uses: actions/setup-java@v4
1921
with:
2022
distribution: temurin
2123
java-version: '21'
2224
cache: maven
23-
- run: mvn -B clean package
25+
26+
- name: Build with Maven
27+
run: mvn -B clean package -DskipTests
2428

2529
- name: Upload plugin jar
2630
uses: actions/upload-artifact@v4
2731
with:
28-
name: statsplugin
32+
name: PlayerStatsAPI
2933
path: |
3034
target/*.jar
3135
!target/original-*.jar
36+
37+
publish-modrinth:
38+
runs-on: ubuntu-latest
39+
needs: build
40+
# Публикация только при push тега (v1.0, v2.1 и т.д.)
41+
if: startsWith(github.ref, 'refs/tags/v')
42+
steps:
43+
- uses: actions/checkout@v4
44+
45+
- uses: actions/setup-java@v4
46+
with:
47+
distribution: temurin
48+
java-version: '21'
49+
cache: maven
50+
51+
- name: Build with Maven
52+
run: mvn -B clean package -DskipTests
53+
54+
- name: Publish to Modrinth
55+
uses: Kir-Antipov/mc-publish@v3.3
56+
with:
57+
modrinth-id: ${{ secrets.MODRINTH_PROJECT_ID }}
58+
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
59+
60+
name: PlayerStatsAPI ${{ github.ref_name }}
61+
version: ${{ github.ref_name }}
62+
version-type: release
63+
64+
files: target/PlayerStats-API-*.jar
65+
66+
# Автодетект поддерживаемых версий из plugin.yml api-version
67+
game-versions: |
68+
1.21
69+
1.21.1
70+
1.21.2
71+
1.21.3
72+
1.21.4
73+
loaders: |
74+
paper
75+
purpur
76+
77+
changelog-file: CHANGELOG.md

0 commit comments

Comments
 (0)