# zetaplugins/cookieclickerz architecture

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

- Interactive diagram: https://gitdiagram.com/zetaplugins/cookieclickerz
- Repository: https://github.com/zetaplugins/cookieclickerz

## Overview

CookieClickerZ is a Minecraft server plugin that implements a cookie-clicker game loop: players use configured clicker blocks and commands, accumulate cookies and progression, and access game menus and rankings. Its documented capabilities also include offline earnings, events, achievements, anti-cheat, customizable presentation, and SQLite/MySQL persistence. Source excerpts confirm leaderboard refreshes query storage and clicker management persists locations and can spawn holograms; most listener-to-gameplay wiring is not sampled, so those links are omitted or shown only where the product workflow is documented.

Main entry points: [`src/main/java/com/zetaplugins/cookieclickerz/CookieClickerZ.java`](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/CookieClickerZ.java) (Plugin runtime), [`src/main/java/com/zetaplugins/cookieclickerz/storage/SQLStorage.java`](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/SQLStorage.java) (SQL storage), [`src/main/java/com/zetaplugins/cookieclickerz/commands/MainCommand/MainCommandHandler.java`](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/commands/MainCommand/MainCommandHandler.java) (Command handler), [`src/main/java/com/zetaplugins/cookieclickerz/util/ClickerManager.java`](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/ClickerManager.java) (Clicker manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Plugin entry"]
  node_plugin["Plugin runtime"]
  node_commands["Command handler"]
end

subgraph group_play["Player gameplay"]
  node_click_listener["Click listener"]
  node_clickers["Clicker manager"]
  node_anticheat["Click anti-cheat<br/>[AntiCheat.java]"]
  node_events["Cookie events"]
end

subgraph group_progress["Progression"]
  node_achievements["Achievements"]
  node_prestige["Prestige system<br/>[PrestigeData.java]"]
  node_leaderboard["Leaderboard service"]
end

subgraph group_state["Player state"]
  node_playerdata["Player data<br/>[PlayerData.java]"]
  node_storage["Storage interface<br/>[Storage.java]"]
  node_sql["SQL storage<br/>[SQLStorage.java]"]
  node_sqlite["SQLite backend<br/>[SQLiteStorage.java]"]
  node_mysql["MySQL backend<br/>[MySQLStorage.java]"]
end

subgraph group_presentation["Presentation"]
  node_gui["Game menus<br/>[MainGUI.java]"]
  node_placeholders["Placeholders<br/>[PapiExpansion.java]"]
  node_config["Configuration<br/>[ConfigManager.java]"]
  node_language["Language manager"]
  node_holograms["Hologram adapters"]
end

node_player(("Player"))
node_server(("Minecraft server"))
node_hologram_service(("Hologram plugin"))
node_papi_service(("PlaceholderAPI"))

node_server -->|"loads plugin"| node_plugin
node_player -->|"runs commands"| node_commands
node_player -->|"clicks block"| node_click_listener
node_commands -->|"manages clickers"| node_clickers
node_clickers -->|"spawns holograms"| node_holograms
node_holograms -.->|"uses adapter"| node_hologram_service
node_leaderboard -->|"queries rankings"| node_storage
node_storage -->|"SQL operations"| node_sql
node_sql -->|"backend variant"| node_sqlite
node_sql -->|"backend variant"| node_mysql
node_placeholders -.->|"registers expansion"| node_papi_service
node_plugin -->|"loads settings"| node_config
node_plugin -->|"loads language"| node_language
node_achievements -->|"announces completion"| node_player

click node_plugin "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/CookieClickerZ.java"
click node_commands "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/commands/MainCommand/MainCommandHandler.java"
click node_click_listener "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/listeners/PlayerInteractionListener.java"
click node_clickers "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/ClickerManager.java"
click node_anticheat "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/AntiCheat.java"
click node_events "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/cookieevents/CookieEventManager.java"
click node_playerdata "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/PlayerData.java"
click node_storage "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/Storage.java"
click node_sql "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/SQLStorage.java"
click node_sqlite "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/SQLiteStorage.java"
click node_mysql "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/MySQLStorage.java"
click node_achievements "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/achievements/AchievementManager.java"
click node_prestige "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/PrestigeData.java"
click node_leaderboard "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/leaderboard/LeaderBoardService.java"
click node_gui "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/gui/MainGUI.java"
click node_placeholders "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/PapiExpansion.java"
click node_config "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/ConfigManager.java"
click node_language "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/LanguageManager.java"
click node_holograms "https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/holograms/HologramManager.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 toneBlue
class node_click_listener,node_clickers,node_anticheat,node_events toneAmber
class node_achievements,node_prestige,node_leaderboard,node_server,node_papi_service toneMint
class node_playerdata,node_storage,node_sql,node_sqlite,node_mysql toneRose
class node_gui,node_placeholders,node_config,node_language,node_holograms,node_player,node_hologram_service toneIndigo
```

## Components

### Plugin entry

- [Plugin runtime](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/CookieClickerZ.java): `src/main/java/com/zetaplugins/cookieclickerz/CookieClickerZ.java`
- [Command handler](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/commands/MainCommand/MainCommandHandler.java): `src/main/java/com/zetaplugins/cookieclickerz/commands/MainCommand/MainCommandHandler.java`

### Player gameplay

- [Click listener](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/listeners/PlayerInteractionListener.java): `src/main/java/com/zetaplugins/cookieclickerz/listeners/PlayerInteractionListener.java`
- [Clicker manager](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/ClickerManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/ClickerManager.java`
- [Click anti-cheat](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/AntiCheat.java): `src/main/java/com/zetaplugins/cookieclickerz/util/AntiCheat.java`
- [Cookie events](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/cookieevents/CookieEventManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/cookieevents/CookieEventManager.java`

### Progression

- [Achievements](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/achievements/AchievementManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/achievements/AchievementManager.java`
- [Prestige system](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/PrestigeData.java): `src/main/java/com/zetaplugins/cookieclickerz/util/PrestigeData.java`
- [Leaderboard service](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/leaderboard/LeaderBoardService.java): `src/main/java/com/zetaplugins/cookieclickerz/util/leaderboard/LeaderBoardService.java`

### Player state

- [Player data](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/PlayerData.java): `src/main/java/com/zetaplugins/cookieclickerz/storage/PlayerData.java`
- [Storage interface](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/Storage.java): `src/main/java/com/zetaplugins/cookieclickerz/storage/Storage.java`
- [SQL storage](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/SQLStorage.java): `src/main/java/com/zetaplugins/cookieclickerz/storage/SQLStorage.java`
- [SQLite backend](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/SQLiteStorage.java): `src/main/java/com/zetaplugins/cookieclickerz/storage/SQLiteStorage.java`
- [MySQL backend](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/storage/MySQLStorage.java): `src/main/java/com/zetaplugins/cookieclickerz/storage/MySQLStorage.java`

### Presentation

- [Game menus](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/gui/MainGUI.java): `src/main/java/com/zetaplugins/cookieclickerz/util/gui/MainGUI.java`
- [Placeholders](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/PapiExpansion.java): `src/main/java/com/zetaplugins/cookieclickerz/util/PapiExpansion.java`
- [Configuration](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/ConfigManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/ConfigManager.java`
- [Language manager](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/LanguageManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/LanguageManager.java`
- [Hologram adapters](https://github.com/zetaplugins/cookieclickerz/blob/main/src/main/java/com/zetaplugins/cookieclickerz/util/holograms/HologramManager.java): `src/main/java/com/zetaplugins/cookieclickerz/util/holograms/HologramManager.java`

### Other components

- **Player**
- **Minecraft server**
- **Hologram plugin**
- **PlaceholderAPI**

## Connections

- Minecraft server → Plugin runtime: loads plugin
- Player → Command handler: runs commands
- Player → Click listener: clicks block
- Command handler → Clicker manager: manages clickers
- Clicker manager → Hologram adapters: spawns holograms
- Hologram adapters → Hologram plugin: uses adapter
- Leaderboard service → Storage interface: queries rankings
- Storage interface → SQL storage: SQL operations
- SQL storage → SQLite backend: backend variant
- SQL storage → MySQL backend: backend variant
- Placeholders → PlaceholderAPI: registers expansion
- Plugin runtime → Configuration: loads settings
- Plugin runtime → Language manager: loads language
- Achievements → Player: announces completion
