# lukasvdgaag/skywarsreloaded architecture

> Architecture diagram of the GitHub repository lukasvdgaag/skywarsreloaded, 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/lukasvdgaag/skywarsreloaded
- Repository: https://github.com/lukasvdgaag/skywarsreloaded

## Overview

SkyWarsReloaded is a Bukkit/Spigot SkyWars server plugin. Players use commands and menus to join or spectate arenas; the match manager handles arena participation and match progression, while player statistics are loaded and saved separately. Administrators also configure maps, kits, chests, and match settings. The tree shows compatibility layers for Minecraft internals and world providers, plus a public API. Some subsystem links are dashed because their wiring is not present in the sampled excerpts; optional integrations are shown separately.

Main entry points: [`SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java) (Plugin lifecycle), [`SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java`](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java) (Match runtime), [`SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java`](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java) (Commands), [`SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/GameMapManager.java`](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/GameMapManager.java) (Arena maps)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Player and admin entry"]
  node_plugin["Plugin lifecycle"]
  node_commands["Commands"]
  node_command_base["Command dispatch<br/>[BaseCmd.java]"]
  node_menus["Menus"]
  node_menu_events["Menu events"]
end

subgraph group_matches["Arena and match runtime"]
  node_map_admin["Map administration"]
  node_maps["Arena maps"]
  node_match["Match runtime<br/>[MatchManager.java]"]
  node_events["Match events<br/>[MatchEvent.java]"]
end

subgraph group_state["Configuration and player state"]
  node_config["Plugin configuration<br/>[Config.java]"]
  node_player_state["Player stats<br/>[PlayerStat.java]"]
  node_storage["Stats storage<br/>[DataStorage.java]"]
  node_database[("Database<br/>[Database.java]")]
end

subgraph group_platform["Platform and integrations"]
  node_public_api["Plugin API"]
  node_worlds["World providers"]
  node_nms["Minecraft adapters"]
  node_messages["Messaging<br/>[Messaging.java]"]
end

node_players(("Players and admins"))
node_placeholder["PlaceholderAPI"]
node_server["Bukkit server"]

node_players -.->|"issue commands"| node_commands
node_commands -->|"dispatches"| node_command_base
node_command_base -->|"formats replies"| node_messages
node_players -.->|"select options"| node_menus
node_menu_events -->|"routes clicks"| node_menus
node_plugin -->|"initializes"| node_maps
node_plugin -->|"initializes"| node_match
node_map_admin -.->|"manages maps"| node_maps
node_commands -.->|"player actions"| node_match
node_match -.->|"uses arenas"| node_maps
node_match -.->|"triggers events"| node_events
node_match -->|"teleports players"| node_players
node_plugin -.->|"loads settings"| node_config
node_player_state -->|"loads stats"| node_storage
node_storage -->|"checks connection"| node_database
node_plugin -.->|"selects provider"| node_worlds
node_plugin -.->|"selects adapter"| node_nms
node_plugin -.->|"exposes API"| node_public_api
node_messages -->|"resolves placeholders"| node_placeholder
node_plugin -.->|"uses Bukkit"| node_server

click node_plugin "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java"
click node_commands "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java"
click node_command_base "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/BaseCmd.java"
click node_menus "https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/menus"
click node_menu_events "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/listeners/IconMenuController.java"
click node_map_admin "https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/maps"
click node_maps "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/GameMapManager.java"
click node_match "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java"
click node_events "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/matchevents/MatchEvent.java"
click node_config "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/config/Config.java"
click node_player_state "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/PlayerStat.java"
click node_storage "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/DataStorage.java"
click node_database "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/Database.java"
click node_public_api "https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/api"
click node_worlds "https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/worlds"
click node_nms "https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/nms"
click node_messages "https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/utilities/Messaging.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_plugin,node_commands,node_command_base,node_menus,node_menu_events toneBlue
class node_map_admin,node_maps,node_match,node_events toneAmber
class node_config,node_player_state,node_storage,node_database,node_placeholder,node_server toneMint
class node_public_api,node_worlds,node_nms,node_messages toneRose
class node_players toneIndigo
```

## Components

### Player and admin entry

- [Plugin lifecycle](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`
- [Commands](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java`
- [Command dispatch](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/BaseCmd.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/BaseCmd.java`
- [Menus](https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/menus): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/menus`
- [Menu events](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/listeners/IconMenuController.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/listeners/IconMenuController.java`

### Arena and match runtime

- [Map administration](https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/maps): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/maps`
- [Arena maps](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/GameMapManager.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/GameMapManager.java`
- [Match runtime](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java`
- [Match events](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/matchevents/MatchEvent.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/matchevents/MatchEvent.java`

### Configuration and player state

- [Plugin configuration](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/config/Config.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/config/Config.java`
- [Player stats](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/PlayerStat.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/PlayerStat.java`
- [Stats storage](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/DataStorage.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/DataStorage.java`
- [Database](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/Database.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/Database.java`

### Platform and integrations

- [Plugin API](https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/api): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/api`
- [World providers](https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/worlds): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/worlds`
- [Minecraft adapters](https://github.com/lukasvdgaag/skywarsreloaded/tree/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/nms): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/nms`
- [Messaging](https://github.com/lukasvdgaag/skywarsreloaded/blob/master/SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/utilities/Messaging.java): `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/utilities/Messaging.java`

### Other components

- **Players and admins**
- **PlaceholderAPI**
- **Bukkit server**

## Connections

- Players and admins → Commands: issue commands
- Commands → Command dispatch: dispatches (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/MainCmdManager.java`)
- Command dispatch → Messaging: formats replies (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/commands/BaseCmd.java`)
- Players and admins → Menus: select options
- Menu events → Menus: routes clicks (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/listeners/IconMenuController.java`)
- Plugin lifecycle → Arena maps: initializes (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Plugin lifecycle → Match runtime: initializes (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Map administration → Arena maps: manages maps
- Commands → Match runtime: player actions
- Match runtime → Arena maps: uses arenas
- Match runtime → Match events: triggers events (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java`)
- Match runtime → Players and admins: teleports players (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/MatchManager.java`)
- Plugin lifecycle → Plugin configuration: loads settings (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Player stats → Stats storage: loads stats (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/managers/PlayerStat.java`)
- Stats storage → Database: checks connection (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/database/DataStorage.java`)
- Plugin lifecycle → World providers: selects provider (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Plugin lifecycle → Minecraft adapters: selects adapter (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Plugin lifecycle → Plugin API: exposes API (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/SkyWarsReloaded.java`)
- Messaging → PlaceholderAPI: resolves placeholders (evidence: `SkyWarsReloadedCore/src/main/java/com/walrusone/skywarsreloaded/utilities/Messaging.java`)
- Plugin lifecycle → Bukkit server: uses Bukkit
