Expand description
Plugin pipeline — the azalea equivalent of the JS project’s plugin system (anonymize / snapshot / synchronization / inventory / replicator).
Phase 1 runs zero plugins and just forwards everything; the trait exists now so phases 2-4 are additive instead of a rewrite. Hooks mirror the original’s: onReadReal ≈ on_clientbound (packets from the target server), onWriteReal ≈ on_serverbound (packets from the controlling client), bindToReflected ≈ on_session_start.
Hooks operate on RAW FRAMES (packet id + payload bytes, post decryption/decompression) rather than typed packets. This is deliberate: phase 1 doesn’t need to understand packets, and raw frames survive protocol details the proxy doesn’t model. Plugins that need typed access (snapshot, replicator) parse the frames they care about themselves via azalea_protocol’s read functions and ignore the rest.
Structs§
- Frame
- A raw protocol frame: varint packet id + body, already stripped of length prefix / compression / encryption.
- Pipeline
- Runs frames through every plugin in order. First Drop/Replace wins, matching the original’s sequential plugin order semantics.
Enums§
- Verdict
- What the pipeline should do with a frame after a plugin saw it.