
CrownTrade Economy
526 Klassen. 7 Phasen. Ein vollständiges Wirtschaftssystem.
Ausgangslage
Minecraft-Economy-Plugins beschränken sich auf einfache Kontostände. Kein System bildet echte Wirtschaftskreisläufe ab — Firmen, Handel, Steuern, Versicherungen, Börse. Für ein Netzwerk mit realistischer Economy braucht es mehr als ein Wallet.
Die technischen Anforderungen gehen weit über Standard-Plugins hinaus: Thread-sichere Finanztransaktionen, die keine Race Conditions oder Deadlocks verursachen. GUI-Systeme, die unter Last nicht abstürzen. Datenbankarchitektur, die serverübergreifend funktioniert.
Und das Ganze muss kompatibel bleiben: Vault als universelle Schnittstelle, bestehende Shop-Plugins dürfen nicht brechen, und das System muss sowohl mit MariaDB als auch standalone mit SQLite laufen.
Umsetzung
Architekturdesign mit strikter 4-Schichten-Trennung: Commands/GUIs → Services → Repositories → Datenbank. Jede Schicht hat klare Verantwortlichkeiten.
Kern-Economy mit atomaren Transfers implementieren: UUID-sortiertes Locking verhindert Deadlocks, jede Transaktion wird im Ledger protokolliert.
Firmensystem mit GUI-Wizard aufbauen: Gründung, Lager mit Base64-NBT-Serialisierung, Rollen/Rechte-System, automatische Gehaltszahlungen.
Wirtschaftskreisläufe schließen: Steuersystem mit Staatskasse, Regierungsjobs, Versicherungen als Geldspeicher, Bot-System gegen Deflation.
Endgame-Features: Börse mit IPOs und Dividenden, Quest-System, Private Warps — schrittweise aktivierbar über Feature-Flags.
Funktionen
Technische Details
Strikte 4-Schichten-Architektur: Commands/GUIs → Services → Repositories → Datenbank. Jede Architekturentscheidung dient Thread-Sicherheit und Skalierbarkeit.
UUID-sortiertes Locking
Transfers sperren Konten in deterministischer Reihenfolge (UUID-Vergleich). Verhindert Deadlocks unabhängig von der Transferrichtung — das klassische Dining-Philosophers-Problem, gelöst durch konsistente Lock-Ordnung.
Async DB / Sync UI
Alle Datenbankoperationen laufen asynchron (runTaskAsynchronously), alle UI-Updates synchron (runTask). Verhindert Server-Hänger bei langsamen Queries, garantiert Thread-sichere Inventory-Operationen.
Base64 NBT Serialisierung
Items werden als Base64-encodiertes NBT in der Datenbank gespeichert statt in physischen Kisten. Serverunabhängig, backup-fähig, multi-server-kompatibel — ein LONGTEXT-Feld pro Item.
Dual-Database-Support
MariaDB für Produktion (HikariCP Pool, 10 Connections, Leak-Detection). SQLite als Fallback für Einzelserver — WAL-Modus, keine externen Abhängigkeiten. Gleiche Repository-Interfaces, kein Code-Branching.
GUI-Manager mit Debouncing
Zentraler GuiManager (ConcurrentHashMap) routet Klicks zu spezifischen GUI-Handlern. 200ms Click-Cooldown verhindert doppelte Käufe. Automatische Cleanup bei Player-Quit gegen Memory Leaks.
Status
CrownTrade Economy umfasst 526 Java-Klassen in 7 Entwicklungsphasen: von einfachen Kontoständen bis zum vollständigen Börsenhandel mit IPOs und Dividenden.
Die Architektur hat sich unter Last bewährt: Null Race Conditions dank deterministischem Locking, null Memory Leaks dank zentralem GUI-Management, null Datenverlust dank atomarer Transaktionen.