Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
ENGLISH
💳 ChaosPayCore
Paying, balances and economy administration — the front desk for whatever economy already runs on your server.
ChaosPayCore is the payment layer for your server: the thing players use to hand money to each other, and the thing your staff uses when something has to be corrected. It replaces nothing. It sits in front of the economy plugin you already run and makes that one balance usable, safe and readable.
It has no balance of its own. It reaches your economy through Vault. That is a deliberate decision, not a missing feature.
- 🎮 Minecraft 1.21.x
- 🖥️ Server software: Folia · Spigot · Paper · Purpur
- ☕ Java 21
- 🔐 Required: Vault and any Vault economy plugin
- 🔗 Optional: PlaceholderAPI
- 🧵 Folia-native — no Bukkit scheduler call anywhere in the code
👥 What players get
💸 /pay (player) (amount)
The command everyone actually came for. Amounts are typed the way people talk: 5000, 10,000, 1.5k and 1,5k all mean the same thing, and 2.5m, 1b and 3t are one keystroke instead of a calculator. Which suffixes exist is yours to decide — the letter is the key, the value is what it multiplies by.
🔒 Two people can never pay each other twice at once. The second attempt is refused rather than queued.
⚙️ Three switches, each one their own
Every player decides for themselves, and each choice is stored and survives a restart:
- /payments — blocks or allows incoming payments entirely. While blocked, nobody can pay them and they are told so.
- /payalerts — silences or restores the chat line when money arrives. The money arrives either way, only the message changes.
- /payconfirm — puts a confirmation screen in front of every payment, for the players who want one.
👤 Nothing about one player's choice touches anybody else's. A server where one person was burned by a fat-fingered 5m can leave /payconfirm off by default and let that one person opt in.
🖼️ A confirmation screen you can redesign
/payconfirm opens a small menu before the money moves. It ships with a three-row layout — cancel on the left, the receiver's head in the middle, confirm on the right — laid out so that a misaimed click lands on the head, which does nothing at all, rather than on the other button.
📄 It is a normal config file, not code:
- 📐 The layout is nine characters per row. Each character is an item's symbol. Only the actions matter — an item with the action confirm sends the money wherever you put it. A one-row menu with two buttons works, and moving confirm to the far left works too. Nothing else has to change.
- 🧑 The head shows the receiver's real skin. The lookup is local, no request goes to Mojang.
- 🎨 Names, lore and the title take colour codes, hex included, and PlaceholderAPI — so a rank prefix or your economy's own placeholders work in any line.
- ⏱️ Clicks that land within the first fraction of a second are ignored, so nobody confirms something the window was not even able to show yet. Raise it on a high-ping server.
🏷️ Placeholders available in that menu: %player%, %amount%, %balance% and %balance_after%.
💰 /balance
Your own balance. With /balance and a player's name you get that player's balance, and it needs its own permission.
📊 Action bars
Any message can have a twin in the action bar, the line above the hotbar, sent alongside the chat line with the same placeholders. Out of the box only one is filled: money arriving is the easiest line to miss in a busy chat. On plain CraftBukkit there is no action bar, so the line falls back to chat.
🛠️ What staff get
🔧 /eco
Four verbs — give, take, set and clear — and as the target either a player or the word all:
- /eco give 1000 Notch
- /eco set 0 all
- /eco clear Notch
take never pushes a balance below zero, and the player affected is told what happened to their money.
⚠️ all and clear all are switched off by default. all reaches every account the index knows — on a large server that is thousands of accounts and thousands of writes into your economy plugin — and clear all sets every balance to zero with no undo. Both exist, but neither should be a thing you can do by accident. Turn them on when you are running a season reset, and turn them back off afterwards.
🔄 /pay reload
Settings, every message and the menu are re-read without a restart. Open confirmation menus are closed first, because a menu drawn from a config that no longer exists is worse than no menu.
🎛️ Controls that actually matter
- pay.enabled — master switch. While off, /pay refuses and everything else keeps working. Useful while you migrate an economy and do not want money moving.
- pay.minimum — the smallest payment allowed.
- pay.maximum — the largest payment allowed per transaction. 0.0 means no cap.
- pay.whole-amounts-only — rounds 12.5 down to 12. Most economies show whole numbers anyway.
- pay.allow-self — whether a player may pay themselves. Pointless rather than dangerous, but it produces two chat lines that look like a duplication bug.
- pay.allow-offline — whether money may go to somebody who is not online.
- pay.cooldown-seconds — minimum delay between two payments per player.
- confirm.default-on — what a player who never touched /payconfirm gets.
- confirm.click-delay-millis — the anti-misfire window described above.
- permissions.pay, permissions.balance, permissions.balance-others, permissions.toggle and permissions.admin — all five permission names are renameable. An empty name means no permission required.
🔗 PlaceholderAPI
Optional. Without PlaceholderAPI everything works, only these placeholders are missing:
- %chaospaycore_balance% — the player's balance, formatted, such as 1.2K or 3.4M
- %chaospaycore_balance_raw% — the same balance, unformatted
- %chaospaycore_minimum% — the configured smallest payment
- %chaospaycore_maximum% — the configured largest payment, or a dash when uncapped
- %chaospaycore_accepting% — whether the player accepts incoming payments
- %chaospaycore_alerts% — whether the player wants payment alerts
- %chaospaycore_confirming% — whether the player wants a confirmation screen
- %chaospaycore_economy% — whether a Vault economy was found
- %chaospaycore_known_players% — how many players the name index knows
🌉 There is a second, separate bridge for your menu files: set menus.placeholderapi to true in config.yml and every menu title, item name and lore line is handed to PlaceholderAPI after this plugin's own placeholders are filled in. That is what makes another plugin's values work inside this plugin's menus. It costs nothing on lines that contain no percent sign, and it can be switched off permanently if PlaceholderAPI ever misbehaves.
📋 Commands and permissions
- /pay (player) (amount) — send money — chaospaycore.pay — default: everyone
- /pay reload — reload config, messages and menu — chaospaycore.admin — default: op
- /balance — your balance — chaospaycore.balance — default: everyone
- /balance (player) — somebody else's balance — chaospaycore.balance.others — default: op
- /eco give take set clear (player or all) (amount) — change balances — chaospaycore.admin — default: op
- /payments — allow or block incoming payments — chaospaycore.toggle — default: everyone
- /payalerts — show or hide the incoming-payment line — chaospaycore.toggle — default: everyone
- /payconfirm — ask before sending money — chaospaycore.toggle — default: everyone
🔤 Aliases: /bal and /money for /balance.
⌨️ Tab completion knows the online players for /pay, /balance and /eco, the four verbs for /eco, and reload for admins.
💾 Storage
The balances are never written here, they belong to your economy plugin. What this plugin stores is the three per-player switches and the name-to-UUID index that makes paying offline players possible.
- yaml — default. One readable file you can fix by hand.
- sqlite — once you have thousands of players. One database file.
- mysql — several servers sharing the same switches.
📦 Nothing has to be installed for any of them, the SQLite and MySQL drivers ship with Bukkit, Spigot, Paper and Folia. If the database cannot be reached, the plugin falls back to YAML and says so in the console rather than starting with everything reset.
🕒 The switches are written the moment they change. A timer, five minutes by default, is the safety net and not the main path.
🧠 Why it works this way
🪙 No second wallet. A plugin with a balance of its own would mean a player has two different amounts depending on which command they typed, and every shop on the server reading a number that is not the one in /balance. That is not a bug you can config your way out of. This plugin has no balances and never will.
🕵️ Offline names without a Mojang round-trip. The plugin keeps its own name-to-UUID index, built as players join. Letting the server resolve an unknown name instead can trigger a lookup at Mojang, and a mistyped name would then freeze the whole server for the length of an HTTP timeout. The trade-off is honest and stated in the config: an offline player can only be named if they have joined at least once since this plugin was installed.
🛟 Money is never lost quietly. The sequence is always withdraw, then deposit, and every failure is handled explicitly. If the deposit is refused after the withdrawal went through, the sender gets the full amount back and is told, and the console names the economy plugin that said no. If the refund is refused as well, the console gets a line saying the money is stuck, along with both UUIDs, both names and both amounts, because an operator has to be able to put that right by hand. And if the economy plugin throws an exception, the payment is abandoned, the exception is logged with full context, and the sender is told rather than left guessing.
⌨️ A stray key cannot empty a wallet. The maximum amount per payment exists because the amount is typed as text, and a slipped key turns 5k into 5m with no way back. The default is uncapped because a cap on a trusting server is your decision to make. The switch is there.
🔌 No licence key, no phone-home, no network calls. Config reload, menu rendering, name lookup and skin lookup are all local. There is nothing to activate, nothing that phones home, and nothing that breaks when a network does.
🧵 Written for Folia from the start, not patched for it. Every scheduled task, meaning the save timer, the delayed notice to a receiving player and the menu redraw, goes through one small scheduler facade that picks the global, async, region or entity scheduler depending on what it finds at runtime. There is no unguarded Bukkit scheduler call left in the code, which is why the plugin can honestly declare Folia support in its plugin.yml.
🧷 New options arrive without losing yours. When a new version adds a config key, your file is topped up with just that key on the next start. A file with a YAML error is left completely untouched and reported, never overwritten with defaults.
🌍 Languages
🇬🇧 English and 🇩🇪 German, both complete, both maintained. The language is set in config.yml and everything with text in it lives in lang/EN or lang/DE, including the confirmation screen. So you can have an English menu for some players and a German one for others.
⏳ Set the language before you configure anything. Switching later creates the other folder from scratch, and your settings do not move across, because silently moving a server's configuration is not a surprise anybody wants.
🔇 Every message is a single line in one file. An empty string switches that message off completely, which is the intended way to silence one line without editing anything else. Colour codes, hex included, work everywhere.
✅ Requirements
- ☕ Java 21
- 🎮 Minecraft 1.21.x on Folia, Spigot, Paper or Purpur
- 🔐 Vault and any Vault economy plugin, such as EssentialsX Economy, CMI or BetaEconomy
- 🔗 PlaceholderAPI — optional, only for placeholders and third-party values inside menus
ℹ️ Vault is a soft dependency on purpose. A server that forgot it still gets the plugin, plus a console line explaining why /pay and /balance are refusing, instead of a plugin that silently never appears in the list.
⚔️ If your economy plugin also has /pay
One of the two wins and the other has to be typed as /chaospaycore:pay. Decide which set of commands you want and switch the other off in that plugin.
📸 Screenshots
Add your own: the confirmation screen, /pay in action, the /eco output.
📜 Changelog
1.0.0
- 🎉 First release of ChaosPayCore
- The commands /pay, /balance, /eco, /payments, /payalerts, /payconfirm and /pay reload
- 🖼️ Configurable confirmation screen with player heads
- 🔗 PlaceholderAPI expansion and a PlaceholderAPI bridge for menu text
- 💾 YAML, SQLite and MySQL storage
- 🧵 Native Folia scheduling
GERMAN
💳 ChaosPayCore
Bezahlen, Kontostände und Economy-Verwaltung — die Rezeption für die Economy, die auf deinem Server schon läuft.
ChaosPayCore ist die Zahlungsebene deines Servers: das, womit Spieler einander Geld geben, und das, womit dein Team Fehler ausbessert. Es ersetzt nichts. Es legt sich vor die Economy, die du schon betreibst, und macht diese eine Zahl benutzbar, sicher und lesbar.
Es hat keinen eigenen Kontostand. Es greift über Vault auf deine Economy zu. Das ist eine bewusste Entscheidung und keine fehlende Funktion.
- 🎮 Minecraft 1.21.x
- 🖥️ Server-Software: Folia · Spigot · Paper · Purpur
- ☕ Java 21
- 🔐 Erforderlich: Vault und ein Vault-Economy-Plugin
- 🔗 Optional: PlaceholderAPI
- 🧵 Folia-nativ — kein einziger Bukkit-Scheduler-Aufruf im Code
👥 Was Spieler bekommen
💸 /pay (Spieler) (Betrag)
Der Befehl, um den es eigentlich geht. Beträge werden so getippt, wie man spricht: 5000, 10.000, 1.5k und 1,5k bedeuten dasselbe, und 2.5m, 1b und 3t sind ein Tastendruck statt eines Taschenrechners. Welche Suffixe es gibt, entscheidest du — der Buchstabe ist der Schlüssel, der Wert der Faktor.
🔒 Zwei Leute können sich nie zweimal gleichzeitig bezahlen. Ein zweiter Versuch wird abgelehnt, nicht eingereiht.
⚙️ Drei Schalter, jeder für sich
Jeder Spieler entscheidet selbst, und jede Entscheidung wird gespeichert und überlebt einen Neustart:
- /payments — eingehende Zahlungen ganz an oder aus. Solange aus, kann niemand jemanden bezahlen, und der Empfänger wird darauf hingewiesen.
- /payalerts — die Chat-Zeile beim Geldempfang stumm schalten oder wieder einschalten. Das Geld kommt trotzdem an, nur die Nachricht ändert sich.
- /payconfirm — vor jeder Zahlung einen Bestätigungsbildschirm einblenden, für die Spieler, die das wollen.
👤 Niemand wird von der Wahl eines anderen Spielers betroffen. Ein Server, auf dem einmal ein 5m-Tippfehler Schaden angerichtet hat, lässt /payconfirm standardmäßig aus und lässt genau diese eine Person zustimmen.
🖼️ Ein Bestätigungsbildschirm, den du umgestalten kannst
/payconfirm öffnet ein kleines Menü, bevor das Geld bewegt wird. Ausgeliefert wird ein dreizeiliges Layout — Abbrechen links, der Kopf des Empfängers in der Mitte, Bestätigen rechts — so angeordnet, dass ein daneben getroffener Klick auf dem Kopf landet und gar nichts passiert, statt auf dem anderen Knopf.
📄 Es ist eine normale Config-Datei, kein Code:
- 📐 Das Layout ist neun Zeichen pro Zeile. Jedes Zeichen ist das Symbol eines Items. Nur die Aktionen zählen — ein Item mit der Aktion confirm sendet das Geld, wo immer du es hinstellst. Ein einzeiliges Menü mit zwei Knöpfen funktioniert, und Bestätigen ganz nach links verschieben auch. Sonst muss nichts geändert werden.
- 🧑 Der Kopf zeigt den echten Skin des Empfängers. Der Lookup ist lokal, es geht keine Anfrage an Mojang.
- 🎨 Namen, Lore und Titel verstehen Farbcodes, Hex-Farben eingeschlossen, und PlaceholderAPI — damit funktionieren der Prefix eines Rangen-Systems oder die Platzhalter deiner Economy in jeder Zeile.
- ⏱️ Klicks, die in den ersten Bruchteil einer Sekunde landen, werden ignoriert, damit niemand etwas bestätigt, was das Fenster noch gar nicht anzeigen konnte. Bei hohem Ping höher stellen.
🏷️ Platzhalter in diesem Menü: %player%, %amount%, %balance% und %balance_after%.
💰 /balance
Dein eigener Kontostand. Mit /balance und dem Namen eines Spielers bekommst du dessen Kontostand — dafür ist eine eigene Permission nötig.
📊 Action Bars
Jede Nachricht kann eine Zwillingszeile in der Action Bar bekommen, also der Leiste über der Hotbar, die zusätzlich zur Chat-Zeile mit denselben Platzhaltern gesendet wird. Ausgeliefert ist nur eine gefüllt: Geld, das ankommt, ist in einem wilden Chat am leichtesten zu übersehen. Auf reinem CraftBukkit gibt es keine Action Bar, dort wandert die Zeile in den Chat.
🛠️ Was das Team bekommt
🔧 /eco
Vier Verben — give, take, set und clear — und als Ziel entweder einen Spieler oder das Wort all:
- /eco give 1000 Notch
- /eco set 0 all
- /eco clear Notch
take bringt einen Kontostand nie unter null, und der betroffene Spieler wird informiert, was mit seinem Geld passiert ist.
⚠️ all und clear all sind standardmäßig aus. all erreicht jedes Konto, das der Index kennt — auf einem großen Server sind das Tausende Konten und Tausende Schreibvorgänge in dein Economy-Plugin —, und clear all setzt jeden Kontostand auf null, ohne Rückweg. Beides gibt es, beides sollte aber nicht versehentlich passieren können. Einschalten, wenn du eine Saison zurücksetzt, und danach wieder ausschalten.
🔄 /pay reload
Settings, jede Nachricht und das Menü werden ohne Neustart neu eingelesen. Offene Bestätigungsmenüs werden zuerst geschlossen, weil ein Menü aus einer Config, die es nicht mehr gibt, schlimmer ist als gar kein Menü.
🎛️ Stellschrauben, auf die es ankommt
- pay.enabled — Hauptschalter. Solange aus, lehnt /pay ab und alles andere läuft weiter. Praktisch, wenn du eine Economy umziehst und sich kein Geld bewegen soll.
- pay.minimum — die kleinste erlaubte Zahlung.
- pay.maximum — die größte erlaubte Zahlung pro Vorgang. 0.0 heißt keine Obergrenze.
- pay.whole-amounts-only — rundet 12.5 auf 12 ab. Die meisten Economies zeigen ohnehin ganze Zahlen.
- pay.allow-self — ob ein Spieler sich selbst bezahlen darf. Sinnlos statt gefährlich, aber es erzeugt zwei Chat-Zeilen, die wie ein Duplikat-Bug aussehen.
- pay.allow-offline — ob Geld an jemanden gehen darf, der nicht online ist.
- pay.cooldown-seconds — Mindestabstand zwischen zwei Zahlungen pro Spieler.
- confirm.default-on — was ein Spieler bekommt, der /payconfirm nie benutzt hat.
- confirm.click-delay-millis — das Fenster gegen Fehlklicks von oben.
- permissions.pay, permissions.balance, permissions.balance-others, permissions.toggle und permissions.admin — alle fünf Permission-Namen sind umbenennbar. Ein leerer Name heißt: keine Permission nötig.
🔗 PlaceholderAPI
Optional. Ohne PlaceholderAPI funktioniert alles, nur diese Platzhalter fehlen:
- %chaospaycore_balance% — Kontostand des Spielers, formatiert, etwa 1.2K oder 3.4M
- %chaospaycore_balance_raw% — derselbe Kontostand, unformatiert
- %chaospaycore_minimum% — die eingestellte kleinste Zahlung
- %chaospaycore_maximum% — die eingestellte größte Zahlung, oder ein Strich wenn unbegrenzt
- %chaospaycore_accepting% — nimmt der Spieler eingehende Zahlungen an
- %chaospaycore_alerts% — will der Spieler Zahlungsmeldungen
- %chaospaycore_confirming% — will der Spieler einen Bestätigungsbildschirm
- %chaospaycore_economy% — ob eine Vault-Economy gefunden wurde
- %chaospaycore_known_players% — wie viele Spieler der Namensindex kennt
🌉 Es gibt eine zweite, davon getrennte Brücke für deine Menüdateien: Setze menus.placeholderapi auf true in der config.yml, dann wird jeder Menütitel, jeder Item-Name und jede Lore-Zeile an PlaceholderAPI weitergegeben, nachdem die eigenen Platzhalter dieses Plugins eingesetzt sind. Genau das sorgt dafür, dass fremde Werte in den Menüs dieses Plugins funktionieren. Es kostet nichts in Zeilen ohne Prozentzeichen und lässt sich dauerhaft abschalten, falls PlaceholderAPI einmal Mist baut.
📋 Befehle und Permissions
- /pay (Spieler) (Betrag) — Geld senden — chaospaycore.pay — Standard: alle
- /pay reload — Config, Nachrichten und Menü neu laden — chaospaycore.admin — Standard: OP
- /balance — dein Kontostand — chaospaycore.balance — Standard: alle
- /balance (Spieler) — Kontostand von jemand anderem — chaospaycore.balance.others — Standard: OP
- /eco give take set clear (Spieler oder all) (Betrag) — Kontostände ändern — chaospaycore.admin — Standard: OP
- /payments — eingehende Zahlungen an oder aus — chaospaycore.toggle — Standard: alle
- /payalerts — Zeile beim Geldempfang an oder aus — chaospaycore.toggle — Standard: alle
- /payconfirm — vor dem Senden nachfragen — chaospaycore.toggle — Standard: alle
🔤 Aliase: /bal und /money für /balance.
⌨️ Tab-Completion kennt die Online-Spieler für /pay, /balance und /eco, die vier Verben für /eco und reload für Admins.
💾 Speicher
Die Kontostände werden hier nie gespeichert, die gehören deinem Economy-Plugin. Was dieses Plugin speichert, sind die drei Schalter pro Spieler und der Name-zu-UUID-Index, der Bezahlungen an Offline-Spieler überhaupt erst möglich macht.
- yaml — Standard. Eine lesbare Datei, die du von Hand reparieren kannst.
- sqlite — ab tausenden Spielern. Eine Datenbankdatei.
- mysql — mehrere Server teilen sich dieselben Schalter.
📦 Für nichts davon musst du etwas installieren, SQLite- und MySQL-Treiber liefert Bukkit, Spigot, Paper und Folia mit. Ist die Datenbank nicht erreichbar, fällt das Plugin auf YAML zurück und sagt es in der Konsole, statt mit leeren Daten zu starten.
🕒 Die Schalter werden geschrieben, sobald sie sich ändern. Ein Timer, standardmäßig fünf Minuten, ist das Sicherheitsnetz und nicht der Hauptweg.
🧠 Warum es so gebaut ist
🪙 Keine zweite Geldbörse. Ein Plugin mit eigenem Kontostand hieße, dass ein Spieler je nach getipptem Befehl zwei verschiedene Beträge hat und jeder Shop auf dem Server eine Zahl liest, die nicht die aus /balance ist. Das ist kein Fehler, den man wegkonfigurieren kann. Dieses Plugin hat keine Kontostände und wird auch keine bekommen.
🕵️ Offline-Namen ohne Mojang-Rundlauf. Das Plugin führt einen eigenen Name-zu-UUID-Index, der beim Join wächst. Lässt du stattdessen den Server einen unbekannten Namen auflösen, kann das eine Abfrage bei Mojang auslösen, und ein Tippfehler im Namen friert dann den ganzen Server für die Dauer eines HTTP-Timeouts ein. Der Preis dafür ist ehrlich und steht in der Config: Einen Offline-Spieler kann man nur benennen, wenn er seit der Installation dieses Plugins mindestens einmal gejoined ist.
🛟 Geld geht nie lautlos verloren. Die Reihenfolge ist immer erst abbuchen, dann einzahlen, und jeder Fehler wird ausdrücklich behandelt. Wird die Einzahlung nach der Abbuchung abgelehnt, bekommt der Absender den vollen Betrag zurück und wird darauf hingewiesen, und die Konsole nennt das Economy-Plugin, das Nein gesagt hat. Wird auch die Erstattung abgelehnt, bekommt die Konsole eine Zeile mit der Warnung, dass Geld feststeckt, dazu beide UUIDs, beide Namen und beide Beträge, weil ein Operator das von Hand richten können muss. Und wirft das Economy-Plugin eine Exception, wird die Zahlung abgebrochen, die Exception mit vollem Kontext geloggt und der Absender informiert, statt zu raten.
⌨️ Ein verrutschter Buchstab kann keine Geldbörse leeren. Das Maximum pro Zahlung existiert, weil der Betrag als Text getippt wird und ein verrutschter Buchstabe aus 5k ein 5m macht, das sich nicht zurücknehmen lässt. Standardmäßig gibt es keine Obergrenze, weil eine Grenze auf einem vertrauenswürdigen Server deine Entscheidung ist. Der Schalter ist aber da.
🔌 Kein Lizenzschlüssel, kein Phone-Home, kein Netzwerkverkehr. Config-Reload, Menü-Rendering, Namens- und Skin-Lookup laufen alle lokal. Es gibt nichts zu aktivieren, nichts, das nach Hause telefoniert, und nichts, was an einem Netzwerk kaputtbricht.
🧵 Für Folia geschrieben, nicht dafür gepatcht. Jeder geplante Task, also der Speicher-Timer, die verzögerte Mitteilung an einen Empfänger und das Neuzeichnen eines Menüs, läuft über eine kleine Scheduler-Fassade, die zur Laufzeit zwischen globalem, asynchronem, Regions- und Entity-Scheduler wählt. Es gibt keinen ungeschützten Scheduler-Aufruf von Bukkit mehr im Code, und deshalb darf das Plugin ehrlich die Folia-Unterstützung in seine plugin.yml schreiben.
🧷 Neue Optionen kommen, ohne deine zu verlieren. Wenn eine neue Version einen Config-Schlüssel ergänzt, wird deine Datei beim nächsten Start genau um diesem Schlüssel ergänzt. Eine Datei mit YAML-Fehler wird vollständig unangetastet gelassen und gemeldet, niemals mit Standardwerten überschrieben.
🌍 Sprachen
🇬🇧 Englisch und 🇩🇪 Deutsch, beide vollständig, beide gepflegt. Die Sprache steht in der config.yml, und alles, was Text enthält, liegt in lang/EN oder lang/DE, auch der Bestätigungsbildschirm. Du kannst also einem Teil der Spieler ein englisches und einem anderen ein deutsches Menü geben.
⏳ Stelle die Sprache um, bevor du etwas einrichtest. Ein späterer Wechsel legt den anderen Ordner neu an, und deine Einstellungen wandern nicht mit, weil es niemandem hilft, die Konfiguration eines Servers hinterrück umzuziehen.
🔇 Jede Nachricht ist eine einzelne Zeile in einer Datei. Eine leere Zeichenkette schaltet diese Nachricht komplett aus, das ist der vorgesehene Weg, eine Zeile zu schweigen, ohne sonst etwas anzufassen. Farbcodes, Hex eingeschlossen, funktionieren überall.
✅ Voraussetzungen
- ☕ Java 21
- 🎮 Minecraft 1.21.x auf Folia, Spigot, Paper oder Purpur
- 🔐 Vault und ein Vault-Economy-Plugin, etwa EssentialsX Economy, CMI oder BetaEconomy
- 🔗 PlaceholderAPI — optional, nur für Platzhalter und Fremdwerte in Menüs
ℹ️ Vault ist absichtlich ein Softdepend. Ein Server, der ihn vergessen hat, bekommt das Plugin trotzdem plus eine Konsolenzeile, die erklärt, warum /pay und /balance ablehnen, statt eines Plugins, das einfach nie in der Liste auftaucht.
⚔️ Wenn dein Economy-Plugin auch /pay hat
Eines der beiden gewinnt, das andere muss als /chaospaycore:pay getippt werden. Entscheide dich, welche Befehle du willst, und schalte die anderen in dem Plugin ab.
📸 Screenshots
Eigene einfügen: der Bestätigungsbildschirm, /pay in Aktion, die /eco-Ausgabe.
📜 Änderungen
1.0.0
- 🎉 Erstes Release von ChaosPayCore
- Die Befehle /pay, /balance, /eco, /payments, /payalerts, /payconfirm und /pay reload
- 🖼️ Konfigurierbarer Bestätigungsbildschirm mit Spielerköpfen
- 🔗 PlaceholderAPI-Expansion und eine PlaceholderAPI-Brücke für Menütexte
- 💾 Speicher für YAML, SQLite und MySQL
- 🧵 Native Folia-Planung


