Zum Inhalt springen
In EntwicklungInfrastructure
Offline

CrownTrade Economy

526 Klassen. 7 Phasen. Ein vollständiges Wirtschaftssystem.

CrownTrade Economy
526
Klassen
75000+
Zeilen Code
7
Entwicklungsphasen
88
DB-Tabellen
169
GUI-Klassen
50
Services

Ausgangslage
C

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
C

1

Architekturdesign mit strikter 4-Schichten-Trennung: Commands/GUIs → Services → Repositories → Datenbank. Jede Schicht hat klare Verantwortlichkeiten.

2

Kern-Economy mit atomaren Transfers implementieren: UUID-sortiertes Locking verhindert Deadlocks, jede Transaktion wird im Ledger protokolliert.

3

Firmensystem mit GUI-Wizard aufbauen: Gründung, Lager mit Base64-NBT-Serialisierung, Rollen/Rechte-System, automatische Gehaltszahlungen.

4

Wirtschaftskreisläufe schließen: Steuersystem mit Staatskasse, Regierungsjobs, Versicherungen als Geldspeicher, Bot-System gegen Deflation.

5

Endgame-Features: Börse mit IPOs und Dividenden, Quest-System, Private Warps — schrittweise aktivierbar über Feature-Flags.

Funktionen
C

1
Spieler-KontenDECIMAL(15,2) Präzision, unveränderliche Historie
Atomare TransfersDeadlock-sicher durch UUID-sortiertes Locking
Vault-IntegrationUniverselle Kompatibilität mit allen Shop-Plugins
Transaktions-LedgerLückenlose Protokollierung jeder Geldbewegung
StundeneinkommenKonfigurierbares Online-Einkommen mit Tageslimit
Login-BoniStreak-Tracking mit täglichen Belohnungen
2
FirmengründungGUI-Wizard: Name → Icon → Beschreibung → Bestätigung
Lager-ManagementBase64-NBT-Serialisierung, paginierte Storefront
Rollen & RechteOwner/Manager/Employee mit Per-Member-ACLs
GehaltssystemTägliche bis monatliche Intervalle, automatische Auszahlung
Firmen-Leveling5 Stufen von Startup bis Konzern, XP-basiert
WerbungBuchungssystem mit Chat-Broadcasts und Ablaufdatum
3
Trade-GUISplit-Inventory mit beidseitiger Bestätigung
Item-AufträgeSpieler bestellen Items bei Firmen
Service-AufträgeBuchbasierte Beschreibung, Firmenkatalog
Bot-SystemVirtuelle Käufer mit Tagesbudget gegen Deflation
4
Steuersystem5% Shop, 2% Handel, 3% Aufträge → Staatskasse
StaatskasseSammelt Steuern und Upkeep-Gebühren
RegierungsjobsStaatliche Aufträge mit Gehalt und Quoten
5
5 Policen-TypenKeep-Inventory, Firmen-Stabilität, Handels-Schutz, XP-Schutz
Schadens-ManagementNutzungstracking und automatischer Ablauf
Death-ListenerVerhindert Item-/XP-Verlust bei aktiver Police
6
Private Warps1 gratis + 4 kaufbar (2k–25k€), monatliche Wartung
Öffentliche WarpsBesitzer legt Gebühr fest (10–10.000€)
Tägliche QuestsAuto-generiert: Kill/Farm/Mine/Craft mit Belohnungen
7
IPOsFirmen gehen an die Börse, verkaufen Anteile
AktienhandelKauf/Verkauf zum Marktpreis
DividendenAutomatische Ausschüttung basierend auf Firmengewinn
PortfolioÜbersicht aller Beteiligungen pro Spieler

Technische Details
C

Strikte 4-Schichten-Architektur: Commands/GUIs → Services → Repositories → Datenbank. Jede Architekturentscheidung dient Thread-Sicherheit und Skalierbarkeit.

TechnologieZweck
Paper APIPaper API
Java 21Java 21
MariaDBDatenbank
HikariCPHikariCP
VaultEconomy-API
PlaceholderAPIPlaceholder-System
LuckPermsLuckPerms

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
C

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.

7
Entwicklungsphasen abgeschlossen
526
Java-Klassen
88
Datenbank-Tabellen
0
Race Conditions

Erkenntnisse

1UUID-sortiertes Locking löst das Deadlock-Problem bei Finanztransfers elegant — aber nur, wenn JEDER Transfer denselben Pfad nimmt. Ein einziger unsortierter Lock reicht für einen Deadlock.
2Paper-Plugin-Classloader erfordert explizites Class.forName() für JDBC-Treiber vor HikariCP — der übliche ServiceLoader-Mechanismus greift nicht im Plugin-Kontext.
3GUI-Klicks in Minecraft sind nicht idempotent: Ohne Debouncing kaufen Spieler bei Lag versehentlich doppelt. 200ms Cooldown hat sich als Sweet Spot bewährt.

Roadmap
C

JetztAktiv
Stabilisierung & TestingFirmen-Übernahmen & FusionenGilden-System mit geteilter Kasse
Als Nächstes
Kredit-System mit ZinsenServer-ShopRang-System mit Prestige
Später
Casino & GlücksspielKopfgeld-System