How xdnw/locutus works
Locutus is a Discord bot for Politics and War, offering server administration and game-management tools through commands. The primary workflow is a Discord user invoking a command, which the command framework resolves and runs; commands can consult game data or call the Politics and War API and return a response. Separate capabilities include alliance role synchronization, war analysis, trade data, treaty-history ingestion and validation, and temporary conflict storage. README also documents MCP transport, but no corresponding implementation path appears in the supplied tree. Several subsystem connections are inferred only at the documented capability level; unsampled call wiring is omitted.
Main entry points: CommandManager.java Command manager · PoliticsAndWarBuilder.java Politics and War API · PlaceholderEngine.java Placeholder engine · TreatyVisRuntimeDailyIngestionService.java Treaty ingestion
Components 20
Command Runtime
- Command manager
src/main/java/link/locutus/discord/commands/manager/CommandManager.java - Placeholder engine
src/main/java/link/locutus/discord/commands/manager/v2/binding/bindings/PlaceholderEngine.java - Runtime lookup
src/main/java/link/locutus/discord/commands/manager/v2/impl/pw/filter/CommandRuntimeLookupService.java - MCP transport
Game Data
- Politics and War API
src/main/java/link/locutus/discord/apiv1/PoliticsAndWarBuilder.java - API queries
src/main/java/link/locutus/discord/apiv1/queries/Query.java
Alliance Operations
- Account commands
src/main/java/link/locutus/discord/commands/account/RegisterCommand.java - Alliance commands
src/main/java/link/locutus/discord/commands/alliance/SetRank.java - Bank commands
src/main/java/link/locutus/discord/commands/bank/TransferCommand.java - Auto-role service
src/main/java/link/locutus/discord/util/task/roles/AutoRoleService.java
Analysis Tools
- War commands
src/main/java/link/locutus/discord/commands/war/SpyOpsService.java - War ranking
src/main/java/link/locutus/discord/commands/manager/v2/impl/pw/ranking/WarRankingService.java - Trade manager
src/main/java/link/locutus/discord/util/trade/TradeManager.java
Treaty Data
- Treaty ingestion
src/main/java/link/locutus/discord/treatyvis/runtime/TreatyVisRuntimeDailyIngestionService.java - Treaty validation
src/main/java/link/locutus/discord/treatyvis/runtime/TreatyVisRuntimeValidationService.java - Virtual conflict storage
src/main/java/link/locutus/discord/db/conflict/VirtualConflictStorageManager.java - Cloud object storage
src/main/java/link/locutus/discord/web/jooby/S3CompatibleStorage.java
Other components
- Discord user
- Politics and War
- Discord roles
Connections 15
- Discord user → Command manager: invokes commands
- Command manager → Placeholder engine: binds command values
- Placeholder engine → Runtime lookup: resolves game entities
- Command manager → Account commands: dispatches commands
- Command manager → Alliance commands: dispatches commands
- Command manager → Bank commands: dispatches commands
- Command manager → War commands: dispatches commands
- Command manager → War ranking: dispatches commands
- Command manager → Trade manager: dispatches commands
- Auto-role service → Discord roles: updates roles
- Politics and War API → API queries: executes queries
- Politics and War API → Politics and War: requests game data
- Treaty ingestion → Cloud object storage: publishes artifacts
- Treaty validation → Treaty ingestion: validates runtime state
- Virtual conflict storage → Cloud object storage: reads and writes objects