How nutyworks/codon works
Codon is a Minecraft command debugger. A player issues controls or inspects debugger views in the client; client networking carries requests to server handlers, which use the debugger engine to pause, step, and report execution state. Minecraft hooks capture command execution, while adapters provide pause control and world data; client state and UI present the resulting inspection tools. The tree indicates breakpoint, watch/NBT, source-browsing, execution-flow, and freecam capabilities. README is empty, and sampled implementation is partial, so uncertain subsystem wiring is omitted.
Main entry points: DebuggerEngine.java Debugger engine · DebuggerRequestHandler.java Debugger requests · NetworkDebuggerEventSink.java Network event sink · InputManager.java Debugger controls
Components 26
Client debugger
- Client entry
src/client/java/works/nuty/codon/client/CodonClientMod.java - Debugger controls
src/client/java/works/nuty/codon/client/input/InputManager.java - Debugger screens
src/client/java/works/nuty/codon/client/ui/DebuggerOverlay.java - Client inspection state
src/client/java/works/nuty/codon/client/state/ClientDebuggerState.java - Flow timeline
src/client/java/works/nuty/codon/client/state/ExecutionFlowTimeline.java - Freecam
src/client/java/works/nuty/codon/client/camera/DebuggerFreecam.java
Networking
- Client networking
src/client/java/works/nuty/codon/client/network/ClientNetworking.java - Source browse client
src/client/java/works/nuty/codon/client/network/ClientSourceBrowseNetworking.java - Payload registration
src/main/java/works/nuty/codon/network/CodonNetworking.java - Debugger requests
src/main/java/works/nuty/codon/network/DebuggerRequestHandler.java - Source browsing
src/main/java/works/nuty/codon/network/SourceBrowseNetworking.java
Server debugging
- Debugger commands
src/main/java/works/nuty/codon/command/CodonCommand.java - Debugger engine
src/core/java/works/nuty/codon/core/service/DebuggerEngine.java - Breakpoint registry
src/core/java/works/nuty/codon/core/service/BreakpointRegistry.java - Step controller
src/core/java/works/nuty/codon/core/service/StepController.java - Flow recording
src/core/java/works/nuty/codon/core/service/ExecutionFlowRecorder.java - Network event sink
src/main/java/works/nuty/codon/network/NetworkDebuggerEventSink.java
Minecraft runtime
- Command hooks
src/main/java/works/nuty/codon/mixin/CommandFunctionMixin.java - Pause controller
src/main/java/works/nuty/codon/adapter/McExecutionController.java - Watch evaluation
src/main/java/works/nuty/codon/adapter/WatchReader.java - NBT tree reader
src/main/java/works/nuty/codon/adapter/NbtTreeReader.java - Function sources
src/main/java/works/nuty/codon/adapter/FunctionSourceRepository.java
Persistence and models
- World persistence
src/main/java/works/nuty/codon/persistence/WorldBreakpointPersistence.java - Watch persistence
src/main/java/works/nuty/codon/persistence/WorldWatchPersistence.java - Debugger models
src/core/java/works/nuty/codon/core/model/PauseSnapshot.java
Other components
- Player
Connections 28
- Player → Debugger controls: uses controls
- Player → Debugger screens: inspects state
- Client entry → Debugger controls: registers
- Debugger controls → Client inspection state: checks pause
- Debugger controls → Client networking: sends requests
- Debugger screens → Client inspection state: renders state
- Client inspection state → Flow timeline: tracks history
- Client entry → Freecam: integrates
- Client networking → Payload registration: exchanges payloads
- Source browse client → Source browsing: exchanges requests
- Payload registration → Debugger requests: dispatches
- Debugger requests → Debugger engine: controls execution
- Debugger commands → Debugger engine: controls execution
- Command hooks → Debugger engine: reports stages
- Debugger engine → Breakpoint registry: checks and updates
- Debugger engine → Step controller: checks step mode
- Debugger engine → Flow recording: records execution
- Debugger engine → Pause controller: parks execution
- Debugger engine → Network event sink: publishes events
- Network event sink → Payload registration: sends updates
- Debugger requests → Watch evaluation: queries watches
- Debugger requests → NBT tree reader: queries NBT
- Source browsing → Function sources: reads sources
- Breakpoint registry → World persistence: saved by
- Watch evaluation → Watch persistence: uses definitions
- Debugger engine → Debugger models: builds snapshots
- Network event sink → Client inspection state: syncs debugger state
- Network event sink → Flow timeline: syncs flow history