# woshijiejue/leader-lite architecture

> Architecture diagram of the GitHub repository woshijiejue/leader-lite, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/woshijiejue/leader-lite
- Repository: https://github.com/woshijiejue/leader-lite

## Overview

Leader-Lite is a Minecraft 1.8.9 hack client, with a bundled ViaForge compatibility layer and account manager. The principal workflow is game input or network activity entering through client hooks, reaching event dispatch and gameplay modules, then affecting player actions, packets, or rendering. Commands, configuration, and account login provide separate user-facing branches. Several subsystem links are inferred from module roles and paths; only the sampled event, packet, and account code supports specific call/data-flow edges, so uncertain wiring is omitted.

Main entry points: [`src/main/java/leader/module/ModuleManager.java`](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/module/ModuleManager.java) (Module Manager), [`src/main/java/com/viaversion/viaforge/common/ViaForgeCommon.java`](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/common/ViaForgeCommon.java) (ViaForge Platform), [`src/main/java/me/ksyz/accountmanager/gui/GuiAccountManager.java`](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/gui/GuiAccountManager.java) (Account Manager UI), [`src/main/java/leader/mixin`](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/mixin) (Client Hooks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Client Core"]
  node_leader["Client Bootstrap<br/>[Leader.java]"]
  node_initializer["Initializer<br/>[Initializer.java]"]
  node_hooks["Client Hooks"]
  node_events["Event Dispatch<br/>[EventManager.java]"]
end

subgraph group_gameplay["Gameplay"]
  node_modules["Module Manager<br/>[ModuleManager.java]"]
  node_combat["Combat Modules"]
  node_movement["Movement Modules"]
  node_player_modules["Player Modules"]
  node_render["Render Modules"]
  node_managers["Gameplay Managers"]
end

subgraph group_interface["Client Interface"]
  node_commands["Commands"]
  node_config["Configuration<br/>[Config.java]"]
  node_clickgui["Click GUI<br/>[ClickGui.java]"]
end

subgraph group_protocol["Protocol Compatibility"]
  node_protocol_selector["Protocol Selector"]
  node_viaforge["ViaForge Platform"]
  node_via_platform["ViaVersion Adapter"]
  node_providers["Protocol Providers"]
  node_compat["Modern Compatibility"]
  node_offhand_storage["Offhand Bridge State"]
end

subgraph group_accounts["Accounts"]
  node_accounts_gui["Account Manager UI"]
  node_account_manager["Account Store"]
  node_microsoft_auth["Microsoft Login<br/>[MicrosoftAuth.java]"]
  node_session["Active Session"]
end

node_player(("Player"))
node_minecraft["Minecraft Client"]
node_server["Game Server"]

node_player -->|"uses"| node_minecraft
node_minecraft -->|"triggers hooks"| node_hooks
node_hooks -->|"dispatches events"| node_events
node_hooks -->|"intercepts packets"| node_managers
node_events -->|"dispatches packet event"| node_commands
node_player -->|"enters commands"| node_commands
node_commands -->|"sends chat feedback"| node_minecraft
node_modules -->|"manages modules"| node_combat
node_modules -->|"manages modules"| node_movement
node_modules -->|"manages modules"| node_player_modules
node_modules -->|"manages modules"| node_render
node_player -->|"configures features"| node_clickgui
node_clickgui -->|"toggles modules"| node_modules
node_config -->|"persists settings"| node_modules
node_minecraft -->|"selects protocol"| node_protocol_selector
node_protocol_selector -->|"chooses protocol"| node_viaforge
node_viaforge -->|"provides platform"| node_via_platform
node_viaforge -->|"registers providers"| node_providers
node_viaforge -->|"enables compatibility"| node_compat
node_compat -->|"stores offhand state"| node_offhand_storage
node_minecraft -->|"exchanges packets"| node_server
node_accounts_gui -->|"loads and saves"| node_account_manager
node_accounts_gui -->|"starts login"| node_microsoft_auth
node_accounts_gui -->|"sets session"| node_session
node_microsoft_auth -->|"returns credentials"| node_session
node_player -->|"manages accounts"| node_accounts_gui
node_leader -->|"initializes client"| node_initializer

click node_leader "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/Leader.java"
click node_initializer "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/init/Initializer.java"
click node_hooks "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/mixin"
click node_events "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/event/EventManager.java"
click node_modules "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/module/ModuleManager.java"
click node_combat "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/combat"
click node_movement "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/movement"
click node_player_modules "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/player"
click node_render "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/render"
click node_managers "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/management"
click node_commands "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/command/CommandManager.java"
click node_config "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/config/Config.java"
click node_clickgui "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/ui/ClickGui.java"
click node_protocol_selector "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/gui/GuiProtocolSelector.java"
click node_viaforge "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/common/ViaForgeCommon.java"
click node_via_platform "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/common/protocoltranslator/platform/ViaForgeViaVersionPlatform.java"
click node_providers "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/com/viaversion/viaforge/common/protocoltranslator/provider"
click node_compat "https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/com/viaversion/viaforge/compat"
click node_offhand_storage "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/compat/ModernOffhandStorage.java"
click node_accounts_gui "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/gui/GuiAccountManager.java"
click node_account_manager "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/AccountManager.java"
click node_microsoft_auth "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/auth/MicrosoftAuth.java"
click node_session "https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/auth/SessionManager.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_leader,node_initializer,node_hooks,node_events,node_minecraft toneBlue
class node_modules,node_combat,node_movement,node_player_modules,node_render,node_managers toneAmber
class node_commands,node_config,node_clickgui,node_server toneMint
class node_protocol_selector,node_viaforge,node_via_platform,node_providers,node_compat,node_offhand_storage toneRose
class node_accounts_gui,node_account_manager,node_microsoft_auth,node_session,node_player toneIndigo
```

## Components

### Client Core

- [Client Bootstrap](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/Leader.java): `src/main/java/leader/Leader.java`
- [Initializer](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/init/Initializer.java): `src/main/java/leader/init/Initializer.java`
- [Client Hooks](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/mixin): `src/main/java/leader/mixin`
- [Event Dispatch](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/event/EventManager.java): `src/main/java/leader/event/EventManager.java`

### Gameplay

- [Module Manager](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/module/ModuleManager.java): `src/main/java/leader/module/ModuleManager.java`
- [Combat Modules](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/combat): `src/main/java/leader/module/modules/combat`
- [Movement Modules](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/movement): `src/main/java/leader/module/modules/movement`
- [Player Modules](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/player): `src/main/java/leader/module/modules/player`
- [Render Modules](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/module/modules/render): `src/main/java/leader/module/modules/render`
- [Gameplay Managers](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/leader/management): `src/main/java/leader/management`

### Client Interface

- [Commands](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/command/CommandManager.java): `src/main/java/leader/command/CommandManager.java`
- [Configuration](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/config/Config.java): `src/main/java/leader/config/Config.java`
- [Click GUI](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/leader/ui/ClickGui.java): `src/main/java/leader/ui/ClickGui.java`

### Protocol Compatibility

- [Protocol Selector](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/gui/GuiProtocolSelector.java): `src/main/java/com/viaversion/viaforge/gui/GuiProtocolSelector.java`
- [ViaForge Platform](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/common/ViaForgeCommon.java): `src/main/java/com/viaversion/viaforge/common/ViaForgeCommon.java`
- [ViaVersion Adapter](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/common/protocoltranslator/platform/ViaForgeViaVersionPlatform.java): `src/main/java/com/viaversion/viaforge/common/protocoltranslator/platform/ViaForgeViaVersionPlatform.java`
- [Protocol Providers](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/com/viaversion/viaforge/common/protocoltranslator/provider): `src/main/java/com/viaversion/viaforge/common/protocoltranslator/provider`
- [Modern Compatibility](https://github.com/woshijiejue/leader-lite/tree/main/src/main/java/com/viaversion/viaforge/compat): `src/main/java/com/viaversion/viaforge/compat`
- [Offhand Bridge State](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/com/viaversion/viaforge/compat/ModernOffhandStorage.java): `src/main/java/com/viaversion/viaforge/compat/ModernOffhandStorage.java`

### Accounts

- [Account Manager UI](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/gui/GuiAccountManager.java): `src/main/java/me/ksyz/accountmanager/gui/GuiAccountManager.java`
- [Account Store](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/AccountManager.java): `src/main/java/me/ksyz/accountmanager/AccountManager.java`
- [Microsoft Login](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/auth/MicrosoftAuth.java): `src/main/java/me/ksyz/accountmanager/auth/MicrosoftAuth.java`
- [Active Session](https://github.com/woshijiejue/leader-lite/blob/main/src/main/java/me/ksyz/accountmanager/auth/SessionManager.java): `src/main/java/me/ksyz/accountmanager/auth/SessionManager.java`

### Other components

- **Player**
- **Minecraft Client**
- **Game Server**

## Connections

- Player → Minecraft Client: uses
- Minecraft Client → Client Hooks: triggers hooks
- Client Hooks → Event Dispatch: dispatches events
- Client Hooks → Gameplay Managers: intercepts packets
- Event Dispatch → Commands: dispatches packet event
- Player → Commands: enters commands
- Commands → Minecraft Client: sends chat feedback
- Module Manager → Combat Modules: manages modules
- Module Manager → Movement Modules: manages modules
- Module Manager → Player Modules: manages modules
- Module Manager → Render Modules: manages modules
- Player → Click GUI: configures features
- Click GUI → Module Manager: toggles modules
- Configuration → Module Manager: persists settings
- Minecraft Client → Protocol Selector: selects protocol
- Protocol Selector → ViaForge Platform: chooses protocol
- ViaForge Platform → ViaVersion Adapter: provides platform
- ViaForge Platform → Protocol Providers: registers providers
- ViaForge Platform → Modern Compatibility: enables compatibility
- Modern Compatibility → Offhand Bridge State: stores offhand state
- Minecraft Client → Game Server: exchanges packets
- Account Manager UI → Account Store: loads and saves
- Account Manager UI → Microsoft Login: starts login
- Account Manager UI → Active Session: sets session
- Microsoft Login → Active Session: returns credentials
- Player → Account Manager UI: manages accounts
- Client Bootstrap → Initializer: initializes client
