# delta203/advancedban architecture

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

- Interactive diagram: https://gitdiagram.com/delta203/advancedban
- Repository: https://github.com/delta203/advancedban

## Overview

AdvancedBan is a Minecraft (BungeeCord/Spigot) ban, mute, and report system with a PHP web panel backed by shared MySQL tables. Players use server commands to create or manage punishments and reports; staff can inspect player history, chat logs, and reports in the panel, which can request in-game actions through the command-query table. The tree and README establish both server variants and panel capabilities; sampled handlers confirm several database operations, but unsampled module wiring is not asserted.

Main entry points: [`src/main/java/de/ab/delta203/bungee/commands`](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/commands) (Proxy commands), [`src/main/java/de/ab/delta203/spigot/commands`](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/spigot/commands) (Server commands), [`abpanel/index.php`](https://github.com/delta203/advancedban/blob/main/abpanel/index.php) (Panel entry), [`abpanel/api`](https://github.com/delta203/advancedban/tree/main/abpanel/api) (Panel actions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_server["Minecraft server"]
  node_bungee_plugin["Bungee plugin"]
  node_spigot_plugin["Spigot plugin"]
  node_bungee_commands["Proxy commands"]
  node_spigot_commands["Server commands"]
end

subgraph group_data["Shared persistence"]
  node_mysql_manager["MySQL manager<br/>[MySQlManager.java]"]
  node_ban_store["Ban storage<br/>[BanHandler.java]"]
  node_mute_store["Mute storage<br/>[MuteHandler.java]"]
  node_report_store["Report storage<br/>[ReportHandler.java]"]
  node_query_store["Command queue<br/>[QueryHandler.java]"]
end

subgraph group_panel["Web panel"]
  node_panel_entry["Panel entry<br/>[index.php]"]
  node_panel_auth["Session validation<br/>[handler.php]"]
  node_panel_views["Panel views"]
  node_panel_api["Panel actions"]
end

subgraph group_ops["Moderation features"]
  node_ban["Ban module"]
  node_mute["Mute module"]
  node_report["Report module"]
  node_chatlog["Chat logging"]
  node_check["Player checks"]
  node_query["Command polling<br/>[Query.java]"]
end

node_player(("Player"))
node_moderator(("Moderator"))
node_proxy["BungeeCord"]
node_spigot["Spigot"]
node_mysql[("MySQL database")]
node_web["Web server"]

node_player -->|"runs commands"| node_bungee_commands
node_player -->|"runs commands"| node_spigot_commands
node_bungee_plugin -->|"registers with"| node_proxy
node_spigot_plugin -->|"registers with"| node_spigot
node_bungee_commands -->|"invokes"| node_ban
node_bungee_commands -->|"invokes"| node_mute
node_bungee_commands -->|"invokes"| node_report
node_bungee_commands -->|"invokes"| node_check
node_spigot_commands -->|"invokes"| node_ban
node_spigot_commands -->|"invokes"| node_mute
node_spigot_commands -->|"invokes"| node_report
node_spigot_commands -->|"invokes"| node_check
node_ban -->|"reads/writes"| node_ban_store
node_mute -->|"reads/writes"| node_mute_store
node_report -->|"reads/writes"| node_report_store
node_chatlog -->|"records chat"| node_mysql
node_check -->|"reads history"| node_mysql
node_mysql_manager -->|"connects; creates tables"| node_mysql
node_ban_store -->|"reads/writes"| node_mysql
node_mute_store -->|"reads/writes"| node_mysql
node_report_store -->|"reads/writes"| node_mysql
node_query -->|"polls queue"| node_query_store
node_query_store -->|"reads/deletes commands"| node_mysql
node_query -->|"dispatches commands"| node_proxy
node_moderator -->|"uses panel"| node_web
node_web -->|"serves request"| node_panel_entry
node_panel_entry -->|"validates session"| node_panel_auth
node_panel_entry -->|"renders views"| node_panel_views
node_panel_entry -->|"routes actions"| node_panel_api
node_panel_auth -->|"checks player key"| node_mysql
node_panel_views -->|"reads moderation data"| node_mysql
node_panel_api -->|"reads/writes"| node_mysql
node_panel_api -.->|"queues commands"| node_query_store

click node_bungee_plugin "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/bungee/AdvancedBanBungee.java"
click node_spigot_plugin "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/spigot/AdvancedBanSpigot.java"
click node_bungee_commands "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/commands"
click node_spigot_commands "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/spigot/commands"
click node_ban "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/ban"
click node_mute "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/mute"
click node_report "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/report"
click node_chatlog "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/chatlog"
click node_check "https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/check"
click node_query "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/bungee/modules/query/Query.java"
click node_mysql_manager "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/mysql/MySQlManager.java"
click node_ban_store "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/ban/mysql/BanHandler.java"
click node_mute_store "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/mute/mysql/MuteHandler.java"
click node_report_store "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/report/mysql/ReportHandler.java"
click node_query_store "https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/query/mysql/QueryHandler.java"
click node_panel_entry "https://github.com/delta203/advancedban/blob/main/abpanel/index.php"
click node_panel_auth "https://github.com/delta203/advancedban/blob/main/abpanel/api/handler.php"
click node_panel_views "https://github.com/delta203/advancedban/tree/main/abpanel/menus"
click node_panel_api "https://github.com/delta203/advancedban/tree/main/abpanel/api"

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_bungee_plugin,node_spigot_plugin,node_bungee_commands,node_spigot_commands toneBlue
class node_mysql_manager,node_ban_store,node_mute_store,node_report_store,node_query_store,node_mysql toneAmber
class node_panel_entry,node_panel_auth,node_panel_views,node_panel_api,node_web toneMint
class node_ban,node_mute,node_report,node_chatlog,node_check,node_query toneRose
class node_player,node_moderator,node_proxy,node_spigot toneIndigo
```

## Components

### Minecraft server

- [Bungee plugin](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/bungee/AdvancedBanBungee.java): `src/main/java/de/ab/delta203/bungee/AdvancedBanBungee.java`
- [Spigot plugin](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/spigot/AdvancedBanSpigot.java): `src/main/java/de/ab/delta203/spigot/AdvancedBanSpigot.java`
- [Proxy commands](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/commands): `src/main/java/de/ab/delta203/bungee/commands`
- [Server commands](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/spigot/commands): `src/main/java/de/ab/delta203/spigot/commands`

### Shared persistence

- [MySQL manager](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/mysql/MySQlManager.java): `src/main/java/de/ab/delta203/core/mysql/MySQlManager.java`
- [Ban storage](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/ban/mysql/BanHandler.java): `src/main/java/de/ab/delta203/core/modules/ban/mysql/BanHandler.java`
- [Mute storage](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/mute/mysql/MuteHandler.java): `src/main/java/de/ab/delta203/core/modules/mute/mysql/MuteHandler.java`
- [Report storage](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/report/mysql/ReportHandler.java): `src/main/java/de/ab/delta203/core/modules/report/mysql/ReportHandler.java`
- [Command queue](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/core/modules/query/mysql/QueryHandler.java): `src/main/java/de/ab/delta203/core/modules/query/mysql/QueryHandler.java`

### Web panel

- [Panel entry](https://github.com/delta203/advancedban/blob/main/abpanel/index.php): `abpanel/index.php`
- [Session validation](https://github.com/delta203/advancedban/blob/main/abpanel/api/handler.php): `abpanel/api/handler.php`
- [Panel views](https://github.com/delta203/advancedban/tree/main/abpanel/menus): `abpanel/menus`
- [Panel actions](https://github.com/delta203/advancedban/tree/main/abpanel/api): `abpanel/api`

### Moderation features

- [Ban module](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/ban): `src/main/java/de/ab/delta203/bungee/modules/ban`
- [Mute module](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/mute): `src/main/java/de/ab/delta203/bungee/modules/mute`
- [Report module](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/report): `src/main/java/de/ab/delta203/bungee/modules/report`
- [Chat logging](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/chatlog): `src/main/java/de/ab/delta203/bungee/modules/chatlog`
- [Player checks](https://github.com/delta203/advancedban/tree/main/src/main/java/de/ab/delta203/bungee/modules/check): `src/main/java/de/ab/delta203/bungee/modules/check`
- [Command polling](https://github.com/delta203/advancedban/blob/main/src/main/java/de/ab/delta203/bungee/modules/query/Query.java): `src/main/java/de/ab/delta203/bungee/modules/query/Query.java`

### Other components

- **Player**
- **Moderator**
- **BungeeCord**
- **Spigot**
- **MySQL database**
- **Web server**

## Connections

- Player → Proxy commands: runs commands
- Player → Server commands: runs commands
- Bungee plugin → BungeeCord: registers with
- Spigot plugin → Spigot: registers with
- Proxy commands → Ban module: invokes
- Proxy commands → Mute module: invokes
- Proxy commands → Report module: invokes
- Proxy commands → Player checks: invokes
- Server commands → Ban module: invokes
- Server commands → Mute module: invokes
- Server commands → Report module: invokes
- Server commands → Player checks: invokes
- Ban module → Ban storage: reads/writes
- Mute module → Mute storage: reads/writes
- Report module → Report storage: reads/writes
- Chat logging → MySQL database: records chat
- Player checks → MySQL database: reads history
- MySQL manager → MySQL database: connects; creates tables
- Ban storage → MySQL database: reads/writes
- Mute storage → MySQL database: reads/writes
- Report storage → MySQL database: reads/writes
- Command polling → Command queue: polls queue
- Command queue → MySQL database: reads/deletes commands
- Command polling → BungeeCord: dispatches commands
- Moderator → Web server: uses panel
- Web server → Panel entry: serves request
- Panel entry → Session validation: validates session
- Panel entry → Panel views: renders views
- Panel entry → Panel actions: routes actions
- Session validation → MySQL database: checks player key
- Panel views → MySQL database: reads moderation data
- Panel actions → MySQL database: reads/writes
- Panel actions → Command queue: queues commands
