How xpdustry/imperium works
Imperium is the core of the Chaotic server network: a shared Kotlin service layer with a Mindustry server plugin and a Discord/web backend. The main user-facing workflow spans player connection and account/session handling, in-game commands and chat, and cross-server or Discord coordination; moderation, maps, history, and metrics are additional product branches. The graph reflects the supplied tree, README, and sampled source; unsampled features are represented by their existing source paths, while uncertain wiring is omitted.
Main entry points: AccountService.kt Account service · SQLMessageService.kt Message service · MindustrySessionService.kt Session service · DataStoreService.kt Player data cache
Components 24
Shared runtime
- SQL database
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/database/SQLDatabaseImpl.kt - Message service
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/message/SQLMessageService.kt
Accounts and identity
- Account events
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/account/AccountListener.kt - Account commands
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/account/AccountCommand.kt - Login and register
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/account/LoginWindow.kt - Session service
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/account/MindustrySessionService.kt - Account service
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/account/AccountService.kt - Player data cache
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/store/DataStoreService.kt
Mindustry server
- Mindustry plugin
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/ImperiumPlugin.kt - Chat pipeline
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/chat/MindustryMessagePipeline.kt - Chat bridge
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/chat/BridgeChatMessageListener.kt - Game history
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/history/Historian.kt - Connection gatekeeper
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/security/GatekeeperPipeline.kt
Discord backend
- Mindustry bridge
imperium-backend/src/main/kotlin/com/xpdustry/imperium/backend/bridge/MindustryBridgeListener.kt - Discord service
imperium-backend/src/main/kotlin/com/xpdustry/imperium/backend/service/DiscordService.kt - Discord commands
imperium-backend/src/main/kotlin/com/xpdustry/imperium/backend/command/DiscordCommandDispatcher.kt - Map management
imperium-backend/src/main/kotlin/com/xpdustry/imperium/backend/commands/MapCommand.kt - Moderation and reports
imperium-backend/src/main/kotlin/com/xpdustry/imperium/backend/commands/ModerationCommand.kt
Operations
- Metrics collection
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/metrics/MetricsCollector.kt - Stall monitoring
imperium-mindustry/src/main/kotlin/com/xpdustry/imperium/mindustry/monitoring/BlockHoundService.kt - Webhook service
imperium-common/src/main/kotlin/com/xpdustry/imperium/common/webhook/WebhookMessageSender.kt
Other components
- Mindustry players
- Discord users
- Discord platform
Connections 19
- Mindustry players → Login and register: authenticate
- Mindustry players → Account commands: invoke
- Login and register → Session service: login session
- Account commands → Account service: manage account
- Session service → Account service: lookup account
- Session service → SQL database: read and write
- Account service → SQL database: read and write
- Player data cache → Session service: load session
- Player data cache → Account service: load account
- Player data cache → Message service: subscribe updates
- Account service → Message service: broadcast updates
- Message service → SQL database: queue messages
- Mindustry players → Chat pipeline: send chat
- Chat bridge → Message service: exchange messages
- Mindustry bridge → Message service: subscribe messages
- Discord commands → Discord service: check permissions
- Discord users → Discord commands: invoke
- Discord service → Discord platform: connect and manage roles
- Stall monitoring → Webhook service: send alert