# Taxes Plugin - Minecraft Steuer-System Ein modernes, sicheres Minecraft-Plugin für automatische Steuereinziehung basierend auf Spielerkontoständen. ![Version](https://img.shields.io/badge/version-8.0-blue.svg) ![Minecraft](https://img.shields.io/badge/minecraft-1.21.4-brightgreen.svg) ![Java](https://img.shields.io/badge/java-17+-orange.svg) ![License](https://img.shields.io/badge/license-All%20Rights%20Reserved-red.svg) --- ## 🎯 Features ✅ **Automatische Steuereinziehung** - Regelmäßige Steuern von Spielerkonten - Flexible Zeitintervalle (Sekunden, Minuten, Stunden, Tage, Wochen) ✅ **Progressive Steuersätze** - Mehrere Steuerstufen je nach Kontostand - Prozentuale oder Festbetrag-Steuern - Konfigurierbare Armuts- und Reichengrenzen ✅ **Flexible Auszahlungsquellen** - **PLAYER**: Direkt vom Spielerkonto (Standard) - **BANK**: Nur von MysqlEconomyBank-Konten - **BANK_IF_AVAILABLE**: Intelligente Fallback-Logik ✅ **Wirtschaftliche Features** - Steuern auf Serverkonto deponieren - Batch-Processing für große Spielerzahlen - Fehlerbehandlung & Money-Duplikat-Prävention ✅ **Administrator-Tools** - In-Game Commands mit Tab-Completion - Manuelle Steuereinziehung - Reload ohne Neustart - Detaillierte Logs und Statistiken ✅ **Benutzerfreundlichkeit** - Deutsche Nachrichten (konfigurierbar) - Aussagekräftige Error-Messages - Hilfreiche Config mit Dokumentation --- ## 📋 Anforderungen ### Server-Anforderungen: - **Minecraft Server**: Spigot/Paper 1.21.4+ - **Java**: JDK 17 oder höher - **RAM**: Minimal 512 MB (empfohlen 1 GB+) - **Dependencies**: - ✅ **Vault-Plugin** (erforderlich für Wirtschaft) - ✅ **Economy-Plugin** (z.B. EssentialsX, CMI, usw.) - ⚠️ **MysqlEconomyBank** (optional, nur für BANK-Modus) - Git: https://git.viper.ipv64.net/M_Viper/MysqlEconomyBank-Reborn - Spigot: https://www.spigotmc.org/resources/mysqleconomybank-reborn.127771/ --- ## 🚀 Installation ### Schritt 1: Voraussetzungen installieren ```bash # Stelle sicher dass du ein Economy-Plugin hast (z.B. EssentialsX) # und Vault-Plugin installiert ist ``` ### Schritt 2: Plugin installieren ```bash 1. Lade Taxes.jar herunter 2. Kopiere es in dein plugins/ Verzeichnis 3. Starten Sie den Server neu → Plugin erstellt automatisch config.yml 4. Passen Sie die Config an (siehe unten) 5. Starten Sie den Server erneut ``` ### Schritt 3: Vault konfigurieren Vault benötigt nur ein Economy-Plugin, um zu funktionieren: ```bash # In plugins/config.yml keine Anpassung nötig # Vault kommuniziert automatisch mit dem Economy-Plugin ``` ### Schritt 4: Optional: MysqlEconomyBank Für BANK-Modus (Steuern von Bankkonten abziehen): ```bash 1. Installiere MysqlEconomyBank-Plugin - Git: https://git.viper.ipv64.net/M_Viper/MysqlEconomyBank-Reborn - Spigot: https://www.spigotmc.org/resources/mysqleconomybank-reborn.127771/ 2. Konfiguriere in config.yml: PlayerBalanceTax: WithdrawSource: BANK_IF_AVAILABLE 3. Server neustarten ``` --- ## ⚙️ Konfiguration Die Hauptkonfiguration befindet sich in `plugins/Taxes/config.yml` ### Basis-Einstellungen ```yaml # Debug-Modus für ausführliche Logs Debug: false Taxes: PlayerBalanceTax: # Steuer aktiviert? Enabled: true # Wie oft Steuern eingezogen werden # Format: # Einheiten: s (Sekunden), m (Minuten), h (Stunden), d (Tage), w (Wochen) TaxFrequency: 1d # Woher wird das Geld genommen? # PLAYER, BANK, oder BANK_IF_AVAILABLE WithdrawSource: PLAYER # Auf welche Kollektion (Steuerstufen) anwenden? TaxCollection: OnlyCollection ``` ### Steuerstufen (Tax Brackets) konfigurieren ```yaml TaxCollections: OnlyCollection: AllPlayers: Groups: [] # [] = alle Spieler TaxBrackets: Arm: MaxBalance: 100000.00 TaxType: PERCENT # oder FLAT TaxAmount: 0.0 # Prozentsatz oder Betrag Reich: MaxBalance: -1 # -1 = unbegrenzt (oberste Stufe) TaxType: PERCENT TaxAmount: 20.0 ``` ### Erweiterte Einstellungen ```yaml # Steuern auf Serverkonto deponieren TaxDepositAccount: Enabled: true Name: server_account # Spielername oder Bankkontoname # Batch-Processing für große Spielerzahlen BatchProcessing: Enabled: false # true = langsamer, weniger Last Size: 500 # Spieler pro Batch Delay: 20 # Ticks zwischen Batches (20 = 1 Sekunde) ``` --- ## 📝 Commands ### Admin-Befehle | Command | Alias | Permission | Beschreibung | |---------|-------|-----------|-------------| | `/taxes-collect ` | `/tax-collect` | taxes.admin.collect | Steuer manuell einziehen | | `/taxes-collectall` | `/tax-collectall` | taxes.admin.collectall | Alle Steuern einziehen | | `/taxes-reload` | `/tax-reload` | taxes.admin.reload | Config neu laden | | `/taxes-listall` | `/tax-listall` | taxes.admin.listall | Alle Steuern anzeigen | | `/taxes-infoall ` | `/tax-infoall` | taxes.admin.infoall | Steuer-Details (Admin) | ### Spieler-Befehle | Command | Alias | Permission | Beschreibung | |---------|-------|-----------|-------------| | `/taxes` | `/tax` | taxes.player.help | Befehlshilfe anzeigen | | `/taxes-list` | `/tax-list` | taxes.player.list | Für mich relevante Steuern | | `/taxes-info ` | `/tax-info` | taxes.player.info | Steuer-Details (persönlich) | ### Tab-Completion Alle Commands mit `` Parameter unterstützen **Tab-Completion**: ```bash /taxes-collect [TAB] → PlayerBalanceTax /taxes-info Play[TAB] → PlayerBalanceTax /taxes-infoall [TAB] → Alle Steuern (auch deaktivierte) ``` --- ## 🔐 Berechtigungen ```yaml # Alle Plugin-Berechtigungen taxes.* ├── taxes.admin.* # Admin-Befehle │ ├── taxes.admin.collect │ ├── taxes.admin.collectall │ ├── taxes.admin.listall │ ├── taxes.admin.infoall │ └── taxes.admin.reload │ ├── taxes.player.* # Spieler-Befehle │ ├── taxes.player.help │ ├── taxes.player.list │ └── taxes.player.info │ └── taxes.bypass.* # Steuern umgehen └── taxes.bypass.playerbalancetax ``` ### Berechtigungen in Permission-Plugins setzen **LuckPerms:** ```bash /lp user permission set taxes.admin.collect /lp user permission set taxes.bypass.playerbalancetax /lp group admin permission set taxes.* ``` **PermissionsEx:** ```bash /pex user add taxes.admin.collect /pex group admin add taxes.* ``` --- ## 💡 Anwendungsbeispiele ### Beispiel 1: Einfache tägliche Einkommenssteuer ```yaml PlayerBalanceTax: Enabled: true TaxFrequency: 1d # Täglich WithdrawSource: PLAYER TaxBrackets: Normal: MaxBalance: -1 TaxType: PERCENT TaxAmount: 5.0 # 5% täglich ``` ### Beispiel 2: Progressive Vermögenssteuer ```yaml TaxBrackets: Arm: MaxBalance: 10000 TaxType: PERCENT TaxAmount: 0.0 # Keine Steuer Mittelstand: MaxBalance: 100000 TaxType: PERCENT TaxAmount: 2.0 # 2% Wohlhabend: MaxBalance: 1000000 TaxType: PERCENT TaxAmount: 5.0 # 5% Reich: MaxBalance: -1 TaxType: PERCENT TaxAmount: 10.0 # 10% ``` ### Beispiel 3: Festbetrag-Steuer mit Bank-Fallback ```yaml PlayerBalanceTax: TaxFrequency: 1w # Wöchentlich WithdrawSource: BANK_IF_AVAILABLE TaxDepositAccount: Enabled: true Name: kingdom_vault TaxBrackets: Alle: MaxBalance: -1 TaxType: FLAT TaxAmount: 100.0 # 100 Gold pro Woche ``` --- ## 🛠️ Troubleshooting ### Problem: Plugin lädt nicht ``` [ERROR] Could not load 'plugins/Taxes.jar' ``` **Lösung:** - Java 17+ erforderlich: `java -version` - Vault-Plugin muss installiert sein - Economy-Plugin erforderlich (z.B. CMI) - Server neu starten: `/restart` ### Problem: "Unknown Economy Provider" ``` [WARN] No economy provider found ``` **Lösung:** - Economy-Plugin installieren (EssentialsX, CMI, usw.) - Server neu starten ### Problem: Steuern werden nicht eingezogen ``` Console zeigt keine Logs, Spieler-Geld ändert sich nicht ``` **Überprüfe:** 1. Ist die Steuer aktiviert? `Enabled: true` 2. Gibt es Spieler mit genug Geld? 3. Ist die Taxfrequency richtig? (z.B. `1d`) 4. Logs prüfen: `/logs tail` 5. Debug aktivieren: `Debug: true` in config.yml ### Problem: "Insufficient Funds" Fehler ``` [WARNING] Tax withdrawal failed for player XYZ - insufficient funds ``` **Bedeutung:** Spieler hat nicht genug Geld **Lösung:** - Normale Meldung, keine Fehler - Plugin verhindert Geldverlust automatisch - Spieler erhält Nachricht im Chat ### Problem: MysqlEconomyBank funktioniert nicht ``` [SEVERE] MysqlEconomyBank is enabled but bank account not found ``` **Lösung:** 1. MysqlEconomyBank korrekt installiert? 2. Database konfiguriert? 3. Spieler hat Bank-Konto? 4. Fallback nutzen: `WithdrawSource: BANK_IF_AVAILABLE` --- ## 📊 Performance-Tipps ### Für große Server (100+ Spieler) ```yaml BatchProcessing: Enabled: true Size: 1000 # Mehr Spieler pro Batch Delay: 10 # Kürzere Pausen TaxFrequency: 1d # Nicht zu oft abziehen ``` ### Für kleine Server ```yaml BatchProcessing: Enabled: false # Nicht nötig TaxFrequency: 12h # Öfter abziehen möglich ``` --- ## � Lizenz Dieses Plugin wurde von **M_Viper** entwickelt. Alle Rechte vorbehalten. --- ## 👨‍💻 Support ### Bug Reports Falls du einen Bug findest: 1. Überprüfe die Troubleshooting-Sektion 2. Sammle die Logs aus dem Plugins-Ordner 3. Stelle sicher, dass alle Anforderungen erfüllt sind ### Fragen & Hilfe - **Discord**: [Link zum Discord Server] - **Issues**: Gitea Issue-Tracker - **Email**: [Support-Email] --- ## 🙏 Danksagungen - Bukkit/Spigot Team für die API - MilkBowl für Vault-Plugin - Alle Tester und Nutzer --- **Viel Spaß mit dem Taxes-Plugin!** 🎉 *Letzte Aktualisierung: 5. Februar 2026*