Skip to content

Commit bd2f688

Browse files
committed
chore: update changelog for 2.8.9 release
1 parent d536df3 commit bd2f688

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
*No changes yet*
1111

12+
## [2.8.9] - 2026-02-28
13+
14+
**Server Version:** `2026.02.19-1a311a592`
15+
16+
### Added
17+
18+
- **First-Class MMOSkillTree Integration** - Full permission support for MMOSkillTree, one of the biggest plugins on Hytale
19+
- 200+ permission nodes registered across admin, command, skill, boost, and alternate prefix categories
20+
- All 23 individual skill nodes (`mmoskilltree.skill.mining`, `.woodcutting`, `.excavation`, etc.)
21+
- All 140 XP boost permission nodes with the encoded format `mmoskilltree.xpboosts.<target>.<scope>.<multiplier>.<duration>.<cooldown>`
22+
- Full alias support for MMOSkillTree's `ziggfreed.*` alternate prefix pattern — granting `mmoskilltree.skill.mining` also resolves `ziggfreed.mmoskilltree.skill.mining` checks
23+
- Hytale command path aliases (`com.ziggfreed.mmoskilltree.command.*``mmoskilltree.command.*`)
24+
- Wildcard expansion for all MMST permission categories
25+
- Tab completion and web editor support for all MMST permissions
26+
- Updated RPG and Survival permission templates with appropriate MMST permissions per rank tier
27+
- **Annotation-Based Command Framework** - New declarative command system replacing the old individual command class pattern
28+
- `@CommandGroup`, `@Command`, `@Arg`, `@OptionalArg`, `@Permission`, `@Confirm` annotations
29+
- `CommandScanner` automatically discovers and registers annotated command methods
30+
- `CommandDispatcher` handles argument parsing, permission checks, and confirmation flows
31+
- 5 annotated command groups: `GroupCommands`, `UserCommands`, `DebugCommands`, `RootCommands`, `PermsCommands`, `BackupCommands`
32+
- **Staged Plugin Lifecycle** - New `PluginLifecycle` orchestrator with `ServiceContainer` dependency injection
33+
- 11 ordered stages: Config, Storage, CoreManager, Resolver, Registry, Chat, Integration, Web, Scheduler, Analytics, DefaultGroups
34+
- Stages initialize in order and shut down in reverse — if any stage fails, previously initialized stages are safely torn down
35+
- `ServiceContainer` provides typed service registration and retrieval across stages
36+
- **Gzip Compressed Web Editor Sessions** - Session create requests are now gzip compressed before sending to the API, preventing HTTP 413 errors on servers with many groups/permissions
37+
38+
### Refactored
39+
40+
- **Plugin Initialization** - `HyperPerms.java` reduced from ~400 lines of monolithic initialization to a clean staged lifecycle (~25 lines). All setup logic moved to dedicated `Stage` implementations in `com.hyperperms.lifecycle.stages`
41+
- **Command System** - Removed 42 old individual command classes (3,500+ lines). Replaced with 5 annotated command group classes (~2,000 lines) — net reduction of ~1,500 lines with better maintainability
42+
43+
### Fixed
44+
45+
- **Config null during stage initialization** - Resolved a race condition where config was not yet available when stages attempted to read it during early lifecycle setup
46+
- **Default groups created before storage ready** - Moved `loadDefaultGroups()` into its own `DefaultGroupsStage` that runs after storage and managers are fully initialized
47+
1248
## [2.8.8] - 2026-02-23
1349

1450
**Server Version:** `2026.02.19-1a311a592`

0 commit comments

Comments
 (0)