403 lines
10 KiB
Markdown
403 lines
10 KiB
Markdown
# Taxes Plugin - Minecraft Steuer-System
|
||
|
||
Ein modernes, sicheres Minecraft-Plugin für automatische Steuereinziehung basierend auf Spielerkontoständen.
|
||
|
||

|
||

|
||

|
||

|
||
|
||
---
|
||
|
||
## 🎯 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: <Zahl><Einheit>
|
||
# 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 <name>` | `/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 <name>` | `/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 <name>` | `/tax-info` | taxes.player.info | Steuer-Details (persönlich) |
|
||
|
||
### Tab-Completion
|
||
|
||
Alle Commands mit `<name>` 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 <name> permission set taxes.admin.collect
|
||
/lp user <name> permission set taxes.bypass.playerbalancetax
|
||
/lp group admin permission set taxes.*
|
||
```
|
||
|
||
**PermissionsEx:**
|
||
```bash
|
||
/pex user <name> 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
|
||
```
|
||
|
||
---
|
||
|
||
## <20> 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*
|