How xenos-core/maxtac works
MaxTac is a modular Folia/CanvasMC server guard; its implemented feature is lagguard. The main workflow samples region load and activity, selects an eligible sector, captures evidence, then either alerts staff or applies configured remediation and records/notifies the incident. Staff can inspect flags, region status, and player counts through commands. The README documents Discord alerts and detailed logging; those capabilities are represented, though their full implementation was not sampled. Arrows use README or indexed source references; dashed edges mark optional or incompletely verified integrations.
Main entry points: LagGuardModule.java Lagguard module · ActionService.java Action service · MaxTacPlugin.java Plugin lifecycle · LagCommands.java Lagguard commands
Components 23
Plugin core
- Plugin lifecycle
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Module manager
src/main/java/fun/noxel/maxtac/module/ModuleManager.java - Command router
src/main/java/fun/noxel/maxtac/command/MaxTacCommand.java - Core commands
src/main/java/fun/noxel/maxtac/command/CoreCommands.java - Async file writes
src/main/java/fun/noxel/maxtac/core/IoQueue.java - Message formatting
src/main/java/fun/noxel/maxtac/core/Messages.java
Region monitoring
- Lagguard module
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lag settings
src/main/java/fun/noxel/maxtac/lagguard/LagSettings.java - Region monitor
src/main/java/fun/noxel/maxtac/lagguard/Monitor.java - Folia sampling
src/main/java/fun/noxel/maxtac/lagguard/FoliaInternals.java - Activity tracker
src/main/java/fun/noxel/maxtac/lagguard/ActivityTracker.java - Activity listeners
src/main/java/fun/noxel/maxtac/lagguard/ActivityListener.java
Incident response
- Sector scanner
src/main/java/fun/noxel/maxtac/lagguard/SectorScanner.java - Action service
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Redstone freeze
src/main/java/fun/noxel/maxtac/lagguard/FreezeManager.java - Freeze listeners
src/main/java/fun/noxel/maxtac/lagguard/FreezeListener.java - Notifications
src/main/java/fun/noxel/maxtac/core/Notifier.java - Discord webhook
Evidence and commands
- Flag evidence model
src/main/java/fun/noxel/maxtac/lagguard/Flag.java - Incident log
src/main/java/fun/noxel/maxtac/lagguard/FlagLog.java - Player flag counts
src/main/java/fun/noxel/maxtac/lagguard/FlagCounts.java - Lagguard commands
src/main/java/fun/noxel/maxtac/lagguard/LagCommands.java
Other components
- Player or staff
Connections 35
- Plugin lifecycle → Module manager: creates
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Plugin lifecycle → Lagguard module: registers
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Plugin lifecycle → Command router: installs
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Plugin lifecycle → Core commands: registers
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Plugin lifecycle → Async file writes: creates
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Plugin lifecycle → Notifications: creates
src/main/java/fun/noxel/maxtac/MaxTacPlugin.java - Module manager → Lagguard module: enables
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Command router → Player or staff: accepts commands
src/main/java/fun/noxel/maxtac/command/MaxTacCommand.java - Command router → Module manager: dispatches subcommands
src/main/java/fun/noxel/maxtac/command/MaxTacCommand.java - Lagguard module → Lag settings: loads
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Region monitor: starts
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Activity tracker: initializes
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Activity listeners: registers
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Redstone freeze: initializes
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Freeze listeners: registers
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Lagguard module → Lagguard commands: registers
src/main/java/fun/noxel/maxtac/lagguard/LagGuardModule.java - Region monitor → Folia sampling: samples load
src/main/java/fun/noxel/maxtac/lagguard/Monitor.java - Region monitor → Sector scanner: selects sector
src/main/java/fun/noxel/maxtac/lagguard/Monitor.java - Activity listeners → Activity tracker: records events
src/main/java/fun/noxel/maxtac/lagguard/ActivityListener.java - Action service → Sector scanner: scans and removes
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Action service → Redstone freeze: freezes chunks
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Freeze listeners → Redstone freeze: checks freezes
src/main/java/fun/noxel/maxtac/lagguard/FreezeListener.java - Action service → Flag evidence model: creates evidence
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Action service → Notifications: broadcasts alerts
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Action service → Discord webhook: posts optionally
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Action service → Incident log: adds incident
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Action service → Player flag counts: increments players
src/main/java/fun/noxel/maxtac/lagguard/ActionService.java - Incident log → Async file writes: writes asynchronously
src/main/java/fun/noxel/maxtac/lagguard/FlagLog.java - Player flag counts → Async file writes: writes asynchronously
src/main/java/fun/noxel/maxtac/lagguard/FlagCounts.java - Lagguard commands → Incident log: reads incidents
src/main/java/fun/noxel/maxtac/lagguard/LagCommands.java - Lagguard commands → Player flag counts: reads counts
src/main/java/fun/noxel/maxtac/lagguard/LagCommands.java - Lagguard commands → Action service: runs tests
src/main/java/fun/noxel/maxtac/lagguard/LagCommands.java - Lagguard commands → Player or staff: serves results
README.md - Incident log → Flag evidence model: stores records
src/main/java/fun/noxel/maxtac/lagguard/FlagLog.java - Message formatting → Player or staff: formats messages
README.md