Version: 0.13.0 | ~480 classes | 72 packages | 17 core managers | ~46 commands | 76 permissions
Developer documentation for HyperFactions - a comprehensive faction management plugin for Hytale servers.
| Document | Description |
|---|---|
| architecture.md | High-level architecture overview, 9-layer design, package structure |
| managers.md | Manager layer - 17 core managers with responsibilities and dependency graph |
| Document | Description |
|---|---|
| commands.md | Command system - ~46 subcommands across 10 categories |
| permissions.md | Permission framework - 76 nodes, chain-based resolution |
| config.md | Config system - ConfigManager, 11 config files, config v8 migration |
| storage.md | Storage layer - interfaces, JSON adapters, safe-save, data directory, backup system |
| gui.md | GUI system - ~76 pages, 3 registries, navigation flows |
| protection.md | Protection system - ECS handlers, protection mixin hooks (HyperProtect-Mixin / OrbisGuard-Mixins) |
| Document | Description |
|---|---|
| api.md | Developer API reference - HyperFactionsAPI, EconomyAPI, EventBus (in api.events package) |
| integrations.md | Integration breakdown - permissions, PAPI, WiFlow, HyperProtect-Mixin, OrbisGuard, Gravestones, world map |
| placeholders.md | Placeholder reference - all 51 PAPI & 47 WiFlow placeholders with examples |
| Document | Description |
|---|---|
| announcements.md | Announcement system - 7 event types, config, admin exclusions |
| data-import.md | Data import & migration - ElbaphFactions/HyFactions/SimpleClaims/FactionsX importers, config v1→v8, data v0→v2 |
| translation-guide.md | Translation guide for adding new locales |
| help-markdown.md | Help content markdown format |
| File | Purpose |
|---|---|
platform/HyperFactionsPlugin.java |
Hytale plugin lifecycle (setup() → start() → shutdown()) |
HyperFactions.java |
Core singleton, manager initialization, platform callbacks |
Permissions.java |
All 76 permission node constants |
api/HyperFactionsAPI.java |
Public API for third-party mods |
Manager Access:
HyperFactions core = HyperFactionsPlugin.getInstance().getHyperFactions();
FactionManager factions = core.getFactionManager();
ClaimManager claims = core.getClaimManager();Public API (for third-party mods):
if (HyperFactionsAPI.isAvailable()) {
Faction faction = HyperFactionsAPI.getPlayerFaction(playerUuid);
// EventBus is in api.events package
EventBus.register(FactionCreateEvent.class, event -> { /* handle */ });
}Config Access:
ConfigManager config = ConfigManager.get();
int maxMembers = config.getMaxMembers();
boolean pvpEnabled = config.isFactionDamage();Permission Check:
PermissionManager.get().hasPermission(playerUuid, Permissions.CLAIM);src/main/java/com/hyperfactions/ (~480 classes, 72 packages)
├── HyperFactions.java # Core singleton
├── Permissions.java # 76 permission node constants
├── BuildInfo.java # Auto-generated version info
├── platform/ # Hytale plugin entry point + extracted handlers
├── lifecycle/ # Plugin lifecycle helpers (callbacks, tasks, history)
├── manager/ # Business logic (17 core managers)
├── command/ # Command system (~46 subcommands)
│ ├── admin/handler/ # Admin command handlers (11 handler classes)
│ ├── economy/ # Economy subcommands
│ ├── faction/ # Faction management subcommands
│ ├── info/ # Info subcommands
│ ├── member/ # Member management subcommands
│ ├── relation/ # Relation subcommands
│ ├── social/ # Social subcommands
│ ├── teleport/ # Teleport subcommands
│ ├── territory/ # Territory subcommands
│ ├── ui/ # UI subcommands
│ └── util/ # Command utilities
├── gui/ # CustomUI pages (~70 pages + modals)
│ ├── faction/ # Faction member pages + registry + data
│ ├── admin/ # Admin pages, registry, data
│ ├── help/ # Help system pages + data
│ ├── newplayer/ # New player pages, registry, data
│ ├── shared/ # Shared pages, components, data
│ └── test/ # Test/debug pages
├── protection/ # Territory/zone protection
│ ├── damage/ # Damage protection handlers
│ ├── debug/ # Protection debug utilities
│ ├── ecs/ # ECS-based protection handlers
│ ├── interactions/ # Interaction protection handlers
│ └── zone/ # Zone protection handlers
├── config/ # Configuration (11 module configs)
│ └── modules/ # Individual config modules
├── storage/ # Data persistence layer
│ └── json/ # JSON storage adapters
├── data/ # Data models (records)
├── economy/ # Economy system
├── api/ # Public API, EconomyAPI
│ └── events/ # EventBus and event types
├── integration/ # External integrations
│ ├── permissions/ # Permission providers (HyperPerms, LuckPerms, etc.)
│ ├── economy/ # Economy integrations
│ ├── protection/ # Protection integrations (HyperProtect-Mixin, OrbisGuard, Gravestones)
│ └── placeholder/ # Placeholder integrations (PAPI, WiFlow)
├── backup/ # GFS backup management
├── migration/ # Config migration (v1→v8) and data migration (v0→v2)
│ └── migrations/ # config/ and data/ migration implementations
├── importer/ # ElbaphFactions, HyFactions, SimpleClaims, FactionsX importers
│ ├── elbaphfactions/ # ElbaphFactions data models
│ ├── factionsx/ # FactionsX data models
│ ├── hyfactions/ # HyFactions data models
│ └── simpleclaims/ # SimpleClaims data models
├── worldmap/ # World map integration (5 refresh modes)
├── territory/ # Territory notifications
├── update/ # Update checking
├── chat/ # Chat formatting
├── listener/ # Event listeners
├── debug/ # Debug utilities
├── build/ # Build-time tools (HelpLangGenerator)
└── util/ # Utilities (Logger, MessageUtil, UuidUtil, etc.)
- Language: Java 25 (records, pattern matching)
- Build: Gradle 9.3.0 with Shadow 9.3.1
- Platform: Hytale Server API
- Storage: JSON files with async CompletableFuture
- GUI: Hytale CustomUI (InteractiveCustomUIPage)
- Dependencies: Gson 2.11.0, JetBrains Annotations
- CHANGELOG.md - Version history
- README.md - User-facing plugin documentation