April 9, 2026¶
Build Information
Date: April 9, 2026
Type: Feature Update
Compatibility: Backwards Compatible
Added
System & Permissions¶
- Added player settings for rejoin, spectator, and maintenance behavior.
- Added permission nodes for admin, settings, maintenance, spectator, and game controls.
- Added participant ranking support with sorted rank retrieval.
Game Mechanics & Integration of Parties plugin¶
- Added mid-game join support with spawn distribution for running matches.
- Added team integration via
TeamManager,PartiesApiService, andPartiesTeamManager. - Added action-clear support for faster phase action reconfiguration.
Lifecycle & Updates¶
- Added startup update checks with semantic version comparison.
- Added
ParticipantLeaveGameEventfor participant leave lifecycle hooks.
Changed
Core Refactoring¶
- Migrated text parsing to MiniMessage-based component formatting.
- Standardized configuration keys from camelCase to kebab-case.
- Refactored team and participant internals into dedicated store classes.
- Renamed leave/module event classes to participant-oriented naming.
Workflow & UX¶
- Applied permission-aware inventory rendering with player settings integration.
- Moved update check execution to async flow with explicit version validation.
- Changed winner flow to force spectator mode after game completion.
- Changed docs processing workflow to run from
masterbranch updates.
Persistence¶
- Improved
ItemStackserialization reliability in persistence paths.
Fixed
Stability & Edge Cases¶
- Fixed mid-game join/leave lifecycle edge cases during active matches.
- Fixed SIL-18 by degrading missing phase-action plugin dependencies to warnings.
- Fixed module reload/reset error propagation for failed reload paths.
Internal Systems¶
- Fixed action replacement to avoid mandatory remove-and-add cycles.
- Fixed listener removal/reload handling in
EventListenerManager. - Fixed fallback event scanning to clear override cache before full scan.
- Fixed
plugin.ymlresource version replacement in build output.
Technical Notes
- Renamed internal API
IParticipatortoIParticipantand migrated internal usage. - Renamed internal API
participantDisqualifiedtodisqualifyParticipant. - Added
VersionComparatortests for semantic version parsing and comparison paths. - Updated build/dependency setup including Gradle wrapper and plugin dependency metadata.
- Kept existing text configuration compatible with MiniMessage migration behavior.