# recilia/honamispigot architecture

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

- Interactive diagram: https://gitdiagram.com/recilia/honamispigot
- Repository: https://github.com/recilia/honamispigot

## Overview

Honami is a performance- and PvP-focused Minecraft 1.8.8 server fork with a Bukkit/Spigot-compatible plugin API. The primary workflow is a server runtime accepting player connections, processing gameplay and world ticks, and sending results back to clients; plugin and administration APIs extend that runtime. Documented branches include combat configuration, parallel ticking, asynchronous pathfinding and saving, protocol compatibility, optimized redstone, and profiling. Some capabilities are README-only here, so their links are documented rather than traced through unsampled implementation.

Main entry points: [`Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java`](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java) (Server runtime), [`Honami-Server/src/main/java/rein/honami/spigot/Honami.java`](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/Honami.java) (Honami services), [`Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java`](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java) (Network pipeline), [`Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java`](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java) (Combat rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Server runtime"]
  node_server["Server runtime"]
  node_honami["Honami services<br/>[Honami.java]"]
end

subgraph group_world["World and combat"]
  node_worldtick["World ticking"]
  node_pathfinding["Async pathfinding<br/>[SearchHandler.java]"]
  node_worldcombat["Combat rules"]
  node_knockback["Knockback command"]
  node_redstone["Panda redstone"]
  node_storage["World and player saving"]
end

subgraph group_network["Networking"]
  node_pipeline["Network pipeline"]
  node_netmanager["Connection handling"]
  node_compat["Version compatibility"]
end

subgraph group_api["Plugin API"]
  node_bukkit["Bukkit API<br/>[Bukkit.java]"]
  node_serverapi["Server API<br/>[Server.java]"]
  node_playerapi["Player API<br/>[Player.java]"]
  node_plugins["Plugin management"]
  node_combatapi["Combat API"]
end

subgraph group_ops["Operations"]
  node_timings["Timing collection"]
  node_timingapi["Timing controls<br/>[Timings.java]"]
  node_profiler["Profiler command"]
end

node_operator(("Server operator"))
node_client(("Minecraft clients"))

node_operator -.->|"starts"| node_server
node_client -.->|"connects"| node_pipeline
node_pipeline -->|"configures"| node_netmanager
node_pipeline -.->|"supports versions"| node_compat
node_server -->|"ticks worlds"| node_worldtick
node_server -->|"saves worlds"| node_storage
node_server -.->|"offloads searches"| node_pathfinding
node_server -.->|"applies combat"| node_worldcombat
node_operator -.->|"tunes combat"| node_knockback
node_knockback -.->|"sets profiles"| node_worldcombat
node_server -.->|"uses algorithm"| node_redstone
node_server -->|"initializes extensions"| node_honami
node_honami -->|"sets defaults"| node_worldcombat
node_honami -->|"initializes search"| node_pathfinding
node_bukkit -->|"delegates calls"| node_serverapi
node_serverapi -->|"exposes players"| node_playerapi
node_server -.->|"dispatches events"| node_plugins
node_honami -->|"provides integration"| node_combatapi
node_server -.->|"records timings"| node_timings
node_timingapi -->|"manages handlers"| node_timings
node_operator -.->|"runs profiling"| node_profiler

click node_server "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java"
click node_honami "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/Honami.java"
click node_worldtick "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/world/WorldTickManager.java"
click node_pathfinding "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/async/pathsearch/SearchHandler.java"
click node_worldcombat "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java"
click node_knockback "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/commands/KnockbackCommand.java"
click node_redstone "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/redstone/PandaRedstoneWire.java"
click node_storage "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/WorldNBTStorage.java"
click node_pipeline "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java"
click node_netmanager "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/NetworkManager.java"
click node_bukkit "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/Bukkit.java"
click node_serverapi "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/Server.java"
click node_playerapi "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/entity/Player.java"
click node_plugins "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/plugin/SimplePluginManager.java"
click node_combatapi "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java"
click node_timings "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/co/aikar/timings/TimingsManager.java"
click node_timingapi "https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/co/aikar/timings/Timings.java"
click node_profiler "https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/profiler/HonamiProfiler.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_server,node_honami,node_client toneBlue
class node_worldtick,node_pathfinding,node_worldcombat,node_knockback,node_redstone,node_storage toneAmber
class node_pipeline,node_netmanager,node_compat,node_operator toneMint
class node_bukkit,node_serverapi,node_playerapi,node_plugins,node_combatapi toneRose
class node_timings,node_timingapi,node_profiler toneIndigo
```

## Components

### Server runtime

- [Server runtime](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java): `Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java`
- [Honami services](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/Honami.java): `Honami-Server/src/main/java/rein/honami/spigot/Honami.java`

### World and combat

- [World ticking](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/world/WorldTickManager.java): `Honami-Server/src/main/java/rein/honami/spigot/world/WorldTickManager.java`
- [Async pathfinding](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/async/pathsearch/SearchHandler.java): `Honami-Server/src/main/java/rein/honami/spigot/async/pathsearch/SearchHandler.java`
- [Combat rules](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java): `Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java`
- [Knockback command](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/commands/KnockbackCommand.java): `Honami-Server/src/main/java/rein/honami/spigot/commands/KnockbackCommand.java`
- [Panda redstone](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/redstone/PandaRedstoneWire.java): `Honami-Server/src/main/java/rein/honami/spigot/redstone/PandaRedstoneWire.java`
- [World and player saving](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/WorldNBTStorage.java): `Honami-Server/src/main/java/net/minecraft/server/WorldNBTStorage.java`

### Networking

- [Network pipeline](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java): `Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java`
- [Connection handling](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/net/minecraft/server/NetworkManager.java): `Honami-Server/src/main/java/net/minecraft/server/NetworkManager.java`
- **Version compatibility**

### Plugin API

- [Bukkit API](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/Bukkit.java): `Honami-API/src/main/java/org/bukkit/Bukkit.java`
- [Server API](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/Server.java): `Honami-API/src/main/java/org/bukkit/Server.java`
- [Player API](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/entity/Player.java): `Honami-API/src/main/java/org/bukkit/entity/Player.java`
- [Plugin management](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/org/bukkit/plugin/SimplePluginManager.java): `Honami-API/src/main/java/org/bukkit/plugin/SimplePluginManager.java`
- [Combat API](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java): `Honami-Server/src/main/java/rein/honami/server/combat/WorldCombatManager.java`

### Operations

- [Timing collection](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/co/aikar/timings/TimingsManager.java): `Honami-API/src/main/java/co/aikar/timings/TimingsManager.java`
- [Timing controls](https://github.com/recilia/honamispigot/blob/master/Honami-API/src/main/java/co/aikar/timings/Timings.java): `Honami-API/src/main/java/co/aikar/timings/Timings.java`
- [Profiler command](https://github.com/recilia/honamispigot/blob/master/Honami-Server/src/main/java/rein/honami/spigot/profiler/HonamiProfiler.java): `Honami-Server/src/main/java/rein/honami/spigot/profiler/HonamiProfiler.java`

### Other components

- **Server operator**
- **Minecraft clients**

## Connections

- Server operator → Server runtime: starts
- Minecraft clients → Network pipeline: connects
- Network pipeline → Connection handling: configures (evidence: `Honami-Server/src/main/java/rein/honami/spigot/protocol/MinecraftPipeline.java`)
- Network pipeline → Version compatibility: supports versions
- Server runtime → World ticking: ticks worlds (evidence: `Honami-Server/src/main/java/rein/honami/spigot/world/WorldTickManager.java`)
- Server runtime → World and player saving: saves worlds (evidence: `Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java`)
- Server runtime → Async pathfinding: offloads searches
- Server runtime → Combat rules: applies combat
- Server operator → Knockback command: tunes combat
- Knockback command → Combat rules: sets profiles
- Server runtime → Panda redstone: uses algorithm
- Server runtime → Honami services: initializes extensions (evidence: `Honami-Server/src/main/java/rein/honami/spigot/Honami.java`)
- Honami services → Combat rules: sets defaults (evidence: `Honami-Server/src/main/java/rein/honami/spigot/Honami.java`)
- Honami services → Async pathfinding: initializes search (evidence: `Honami-Server/src/main/java/rein/honami/spigot/Honami.java`)
- Bukkit API → Server API: delegates calls (evidence: `Honami-API/src/main/java/org/bukkit/Bukkit.java`)
- Server API → Player API: exposes players (evidence: `Honami-API/src/main/java/org/bukkit/Server.java`)
- Server runtime → Plugin management: dispatches events
- Honami services → Combat API: provides integration (evidence: `Honami-Server/src/main/java/rein/honami/spigot/Honami.java`)
- Server runtime → Timing collection: records timings (evidence: `Honami-Server/src/main/java/net/minecraft/server/MinecraftServer.java`)
- Timing controls → Timing collection: manages handlers (evidence: `Honami-API/src/main/java/co/aikar/timings/Timings.java`)
- Server operator → Profiler command: runs profiling
