- Fix: /elo top leaderboard now shows correct player statistics when configured to use PlaceholderAPI.
- Added: new config option
choose database (default) or placeholderapi to control where leaderboard values come from.YAML:gui.leaderboard.stats-source- Fixed startup Banner not showing up as intended.
Fixed
- Fixed inconsistent real-time stat updates caused by concurrent death-processing writes.
- Fixed intermittent cases where deaths did not consistently apply point loss under async contention.
- Fixed delayed cache visibility for async saves by updating in-memory player cache immediately when save operations are queued.
- Improved player record reliability by ensuring missing player records are created deterministically before kill/death processing.
Improved
- Added ordered per-player locking for dual-player death transactions to prevent race-condition overwrites.
- Updated death pipeline to persist killer/victim updates in a locked transaction before feedback is sent.
- Added configurable handling for invalid kills:
- combat.apply-death-loss-on-invalid-kill (default: true)
- When enabled, victim death loss still applies even if anti-farm invalidates killer rewards.
- StorageManager overhaul:
- Added YAML backend with per-player data files.
- Implemented autosave system.
- Introduced async I/O executors for non-blocking operations.
- Added dirty-player tracking for efficient writes.
- Created YAML-based leaderboard support.
- Threading & platform compatibility:
- Ensures safe compatibility with both Paper and Folia environments.
- Plugin now explicitly marked as Folia-supported.
- Rank system improvements:
- Implemented deterministic tier ordering.
- Added helper APIs in RankManager for tier index and distance calculations.
- Combat scaling system:
- Added configurable gain/loss scaling logic.
- Added Enforced single HT1 holder.
- EloAPI async reliability improvements:
- Automatically creates missing PlayerData.
- Switched to thenCompose chaining and proper CompletionException propagation.
- Command layer refactor:
- Removed direct StorageManager dependencies.
- Added structured logging and cleaner async usage.
- Configuration updates (config.yml):
- Added storage.type selector.
- Defined tier ordering configuration.
- Introduced combat scaling settings.
- Updated rank threshold configuration.
- Resource refresh:
- Updated default messages and bundled resource files to align with new systems.
