How anjisuan608/lichen-history-cli works
Lichen History CLI provides shared bash-style command history across Minecraft client mods, server plugins and proxies. Users submit history commands, the platform adapter delegates parsing and command actions to common logic, which reads or updates its own history store; expansion is dispatched back through the platform to execute the recalled command. The README also documents permissions, configuration reload, file operations and platform-specific config screens. Platform adapters are grouped by runtime; some platform wiring is represented by its exact source directory because those files were not sampled.
Main entry points: HistoryCommandHandler.java Command handler · ClientHistoryCommand.java Client command runtime · ServerHistoryCommand.java Server commands · VelocityHistoryCommand.java Velocity commands
Components 21
Shared command core
- Command handler
common/src/main/java/org/anjisuan608/historycli/HistoryCommandHandler.java - Argument parser
common/src/main/java/org/anjisuan608/historycli/HistoryParser.java - History log store
common/src/main/java/org/anjisuan608/historycli/HistoryStore.java - Command suggestions
common/src/main/java/org/anjisuan608/historycli/HistorySuggestions.java
Client mods
- Client commands
fabric/src/client/java/org/anjisuan608/historycli/fabric/client/ClientHistoryCommand.java - Client capture and expansion
fabric/src/client/java/org/anjisuan608/historycli/fabric/mixin/client/ClientPacketListenerMixin.java - Other client adapters
forge/src/main/java/org/anjisuan608/historycli/forge/client - Client command runtime
fabric/src/client/java/org/anjisuan608/historycli/fabric/client/ClientHistoryCommand.java
Server plugins
- Server commands
fabric/src/main/java/org/anjisuan608/historycli/fabric/server/ServerHistoryCommand.java - Plugin adapters
bukkit/src/main/java/org/anjisuan608/historycli/bukkit - Server command runtime
fabric/src/main/java/org/anjisuan608/historycli/fabric/server/ServerHistoryCommand.java
Proxy plugins
- Velocity commands
velocity/src/main/java/org/anjisuan608/historycli/velocity/command/VelocityHistoryCommand.java - Bungee adapter
bungee/src/main/java/org/anjisuan608/historycli/bungee - Proxy command runtime
velocity/src/main/java/org/anjisuan608/historycli/velocity/command/VelocityHistoryCommand.java
Settings and access
- Permission nodes
common/src/main/java/org/anjisuan608/historycli/PermissionNode.java - Config IO
common/src/main/java/org/anjisuan608/historycli/HistoryCliConfigIO.java - TOML config IO
common/src/main/java/org/anjisuan608/historycli/HistoryCliTomlConfigIO.java - Client config screens
fabric/src/client/java/org/anjisuan608/historycli/fabric/client/HistoryConfigScreen.java
Other components
- Player
- Server operator
- Proxy user or console
Connections 27
- Player → Client commands: enters command
- Client commands → Command handler: delegates
- Client capture and expansion → History log store: records and resolves
- Client capture and expansion → Client command runtime: dispatches expansion
- Client command runtime → Player: executes command
- Server operator → Server commands: enters command
- Server commands → Command handler: delegates
- Plugin adapters → Command handler: delegates
- Proxy user or console → Velocity commands: enters command
- Velocity commands → Command handler: delegates
- Bungee adapter → Command handler: delegates
- Command handler → Argument parser: parses arguments
- Command handler → History log store: reads and updates
- Command handler → Client command runtime: dispatches expansion
- Command handler → Server command runtime: dispatches expansion
- Command handler → Proxy command runtime: dispatches expansion
- Client command runtime → Player: executes command
- Server command runtime → Server operator: executes command
- Proxy command runtime → Proxy user or console: executes command
- Client commands → Command suggestions: requests suggestions
- Server commands → Command suggestions: requests suggestions
- Velocity commands → Command suggestions: requests suggestions
- Server commands → Permission nodes: checks access
- Velocity commands → Permission nodes: checks access
- Client config screens → TOML config IO: edits configuration
- Config IO → TOML config IO: uses TOML format
- Other client adapters → Client command runtime: registers client behavior