
PerformanceAnalyzer
PerformanceAnalyzer gives you clear visibility into how your server is performing live and over time. With database-backed statistics, an in-game GUI, optional Discord alerts, and a helper-level AntiCheat/X-Ray module, it’s a handy toolkit for anyone.
462
0
Список изменений
[2.3.2] - 2026-04-11
Fixed
- Race Condition in AlertManager: Cooldown check now uses atomic
compareAndSet()instead of separateget()/set(), preventing duplicate alerts under concurrent access - Race Condition in TickSampler: Tick sampling now uses
idx.getAndUpdate()for atomic index read-modify-write, preventing data corruption in the nanos array - Connection Pool Leak in DatabaseManager:
shutdown()now uses try-finally to ensureHikariDataSource.close()is always called, even ifflushBatchSafe()throws an exception - NullPointerException in GUIs: Added null-checks for
getItemMeta()in all GUI classes (PerformanceGUI, AntiCheatGUI, LagAnalysisGUI, PerformanceDropsGUI) — follows the safe pattern already used in ConfigGUI - Thread-Safety in ViolationTracker:
resetViolations(UUID, ViolationType)now usescomputeIfPresent()to prevent race condition where the PlayerViolations object could be removed betweenget()andcounts.remove() - MovementChecker Violation Reset Too Aggressive: Consecutive violation counters now only reset when speed is significantly below threshold (70%), preventing a single valid move from immediately washing out violations
- XRay Y-Level Thresholds Too Aggressive: Default thresholds raised from 75%/65%/55% to 85%/75%/65% to reduce false positives from legitimate caving
- UpdateChecker Missing Field Validation: Now checks for
version_numberfield existence in Modrinth API response before accessing it - Inconsistent Activity Weights:
PlayerActivityTracker.getTotalActivity()now uses centralizedConstants.ACTIVITY_WEIGHT_*values instead of hardcoded numbers
Added
- Configurable XRay Y-Level Thresholds (
config.yml)anticheat.xray_ylevel_high(default: 0.85) — percentage for maximum suspicionanticheat.xray_ylevel_medium(default: 0.75) — percentage for moderate suspicionanticheat.xray_ylevel_low(default: 0.65) — percentage for low suspicion- Config validation ensures values are 0.0-1.0 and properly ordered (low < medium < high)
- Auto-migration adds defaults for existing configs
Changed
XRayDetector.analyzeYLevelPattern()reads thresholds from config instead of using hardcoded values
Метаданные
Канал релиза
Release
Номер версии
2.3.2
Загрузчики
PaperPurpurSpigot
Версии игры
1.21–1.21.11
Загрузок
15
Дата публикации
2 мес. назад

