README.md aktualisiert

This commit is contained in:
2026-04-29 14:51:15 +00:00
parent d11fef0032
commit b7f689c726

171
README.md
View File

@@ -33,9 +33,13 @@ Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und
Ankaufspreis pro Item konfigurierbar (% vom VK, Festpreis oder VK minus Betrag).
- ✈️ **Fly-Abo-System**
Zeitbasiertes Fly-Abonnement mit tägl. Stunden-Limit (Standard: 6h).
Monatlich abgebuchtes Abonnement mit tägl. Stunden-Limit (Standard: 6h).
Kauf im Shop, Verwaltung & Kündigung vollständig ingame.
- 📦 **Plot-Slot-System**
Zusätzliche PlotSquared-Slots einmalig kaufen oder monatlich abonnieren.
Integration über LuckPerms (`plots.plot.<n>` Permission), vollautomatisch.
- 🌐 **REST API ohne RCON**
- 📊 **Top-Spender & Umsatzstatistik**
@@ -98,7 +102,7 @@ fly-redeem-disabled: false
# Spieler der die Einnahmen aus dem Shop erhält (Vault-Konto)
income-receiver: ""
# MySQL-Verbindung (für Fly-Code-System, Rang-Sessions und Fly-Abo)
# MySQL-Verbindung (für Fly-Code-System, Rang-Sessions, Fly-Abo und Plot-Slots)
mysql:
host: "localhost"
port: "3306"
@@ -117,12 +121,29 @@ sell:
fly-abo:
# Maximale Fly-Zeit pro Tag in Stunden (Standard: 6)
max-daily-hours: 6
# Plot-Slot Einstellungen (nur Citybuild)
plot-slots:
# Auf welchem Server greift das Plot-Slot-System?
server: "citybuild"
# Standard-Plot-Slots pro LuckPerms-Gruppe
rank-defaults:
member: 2
vip: 3
scout: 4
primo: 5
```
---
# 🎮 Ingame-Befehle
## Übersicht
| Befehl | Beschreibung | Berechtigung |
|--------|-------------|--------------|
| `/abo` | Zeigt alle laufenden Abonnements in einer Übersicht | `ingameshop.abo` |
## Shop / Bestellungen
| Befehl | Beschreibung | Berechtigung |
@@ -144,9 +165,19 @@ fly-abo:
| Befehl | Beschreibung | Berechtigung |
|--------|-------------|--------------|
| `/flyabo` | Zeigt Abo-Status, Ablaufdatum und heutiges Tageslimit | `ingameshop.flyabo` |
| `/flyabocancel [confirm]` | Kündigt das Abo zum Ablaufdatum (bleibt bis dahin aktiv) | `ingameshop.flyabocancel` |
| `/flyabocancel confirm` | Kündigt das Abo zum Monatsende (bleibt bis dahin aktiv) | `ingameshop.flyabocancel` |
| `/flyabogive <Spieler> <Monatspreis> [Label]` | Vergibt ein Fly-Abo manuell (Admin) | `ingameshop.flyabogive` (OP) |
## Plot-Slots
| Befehl | Beschreibung | Berechtigung |
|--------|-------------|--------------|
| `/plotslots` | Zeigt eigene Slot-Übersicht (Basis / Einmalig / Abo / Gesamt) | `ingameshop.plotslots` |
| `/plotabo` | Zeigt Plot-Abo-Status, Slots, Preis und Ablaufdatum | `ingameshop.plotabo` |
| `/plotabocancel confirm` | Kündigt das Plot-Abo zum Monatsende | `ingameshop.plotabocancel` |
| `/plotabogive <Spieler> <Slots> <Preis> [Label]` | Vergibt ein Plot-Abo manuell (Admin) | `ingameshop.plotabogive` (OP) |
| `/plotslotsgive <Spieler> <Slots> [Label]` | Vergibt permanente Plot-Slots (Admin) | `ingameshop.plotslotsgive` (OP) |
## Ränge
| Befehl | Beschreibung | Berechtigung |
@@ -218,12 +249,105 @@ Die Item-ID wird automatisch als `fly_abo` gespeichert.
| Zahlung fehlgeschlagen | Abo läuft bis Monatsende, danach automatisch beendet |
| `/flyabocancel confirm` | Kündigung vorgemerkt, Abo läuft bis Monatsende weiter |
## Datenbanktabellen
---
| Tabelle | Inhalt |
|---------|--------|
| `wis_fly_abos` | Aktive Abos pro Spieler (Label, Ablaufdatum, Kündigungs-Flag) |
| `wis_fly_abo_usage` | Tagesverbrauch pro Spieler (wird täglich neu erfasst) |
# 📦 Plot-Slot-System
Spieler können zusätzliche Plot-Slots auf dem Citybuild-Server kaufen entweder **einmalig permanent** oder als **monatliches Abo**.
## Standard-Limits pro Rang
| Rang | Standard-Slots |
|------|---------------|
| Member | 2 |
| VIP | 3 |
| Scout | 4 |
| Primo | 5 |
## Gesamtlimit-Berechnung
```
Gesamt = Rang-Basis + einmalig gekaufte Slots + Abo-Slots
```
Das Plugin setzt automatisch die LuckPerms-Permission `plots.plot.<n>` PlotSquared liest diese direkt aus.
## PlotSquared Voraussetzung
In `plugins/PlotSquared/config/worlds.yml` muss für jede Welt gesetzt sein:
```yaml
worlds:
citybuild:
plot:
max_plots_per_player: -1
```
## Shop-Artikel anlegen (WordPress)
**Einmaliger Kauf (permanent):**
1. Typ: **„📦 Plot-Slots (einmalig)"** auswählen
2. Anzahl der zusätzlichen Slots eingeben
3. Preis setzen → Speichern
Item-ID: `plot_slots_2` (z.B. +2 Slots permanent)
**Monatliches Abo:**
1. Typ: **„📦 Plot-Abo (monatlich)"** auswählen
2. Anzahl der Abo-Slots eingeben
3. Preis setzen (= monatlicher Beitrag) → Speichern
Item-ID: `plot_abo_2` (z.B. +2 Slots monatlich)
## Billing-Übersicht
| Zeitpunkt | Was passiert |
|-----------|-------------|
| Kauf im Shop | Vault-Abzug, Slots sofort aktiv, LuckPerms Permission gesetzt |
| 1. des Monats | Automatische Vault-Abbuchung, Abo-Slots bleiben aktiv |
| Zahlung fehlgeschlagen | Abo-Slots verfallen, überzählige Plots eingefroren |
| `/plotabocancel confirm` | Kündigung vorgemerkt, läuft bis Monatsende weiter |
## Einfrieren bei Zahlungsausfall
Wenn nach Zahlungsausfall der Spieler mehr Plots besitzt als das neue Limit erlaubt, werden die überzähligen Plots eingefroren (kein Bauen möglich) bis das Abo erneuert wird.
---
# 📋 /abo Abo-Übersicht
Der Befehl `/abo` zeigt alle laufenden Abonnements eines Spielers in einer kompakten Übersicht:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Meine Abonnements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✈ Fly-Abo
┌ Paket: Fly-Abo Monat
├ Preis: 50 $ / Monat
├ Status: ✔ Aktiv
├ Aktiv bis: 30.04.2026
├ Nächste Abbuchung: 01.05.2026
├ Heute: 1h 30min / 6h (noch: 4h 30min)
└ Kündigen: /flyabocancel confirm
📦 Plot-Abo
┌ Paket: Plot-Abo +2 Slots
├ Slots: +2 Plot-Slots
├ Preis: 30 $ / Monat
├ Status: ✔ Aktiv
├ Aktiv bis: 30.04.2026
├ Nächste Abbuchung: 01.05.2026
└ Kündigen: /plotabocancel confirm
📦 Plot-Slots
┌ Rang-Basis: 2
├ Einmalig: +1
├ Abo: +2
└ Gesamt: 5 Slots
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
Die Plot-Slots-Übersicht wird immer angezeigt. Hat der Spieler kein Abo, erscheint ein Hinweis mit dem Shop-Link.
---
@@ -311,7 +435,7 @@ Ideal für:
### Einzelbearbeitung
- Item ID (`minecraft:diamond`)
- Typ: Minecraft Item | ✈ Fly-Gutschein | 👑 Rang (LuckPerms) | ✈ Fly-Abo (tägl. Limit)
- Typ: Minecraft Item | ✈ Fly-Gutschein | 👑 Rang (LuckPerms) | ✈ Fly-Abo | 📦 Plot-Slots (einmalig) | 📦 Plot-Abo (monatlich)
- Preis
- Angebotspreis
- Server-Zuweisung
@@ -392,7 +516,7 @@ Beispiel:
```
Blöcke
Waffen
Rüstung
R<EFBFBD>stung
Ranks
```
@@ -626,6 +750,33 @@ Antwort:
---
## `wis_plot_extra_slots` *(Spigot MySQL)*
| Feld | Beschreibung |
|------|-------------|
| player_name | Minecraft Name |
| extra_slots | Dauerhaft gekaufte Zusatz-Slots |
| last_perm | Zuletzt gesetzter `plots.plot.<n>` Wert (für sauberes LP-Update) |
| granted_at | Zeitstempel der letzten Vergabe |
---
## `wis_plot_abos` *(Spigot MySQL)*
| Feld | Beschreibung |
|------|-------------|
| player_name | Minecraft Name |
| label | Anzeigename des Pakets |
| abo_slots | Anzahl der Abo-Slots |
| monthly_price | Monatlicher Beitrag (Vault) |
| cancelled | 0 / 1 Kündigung vorgemerkt? |
| cancellation_reason | `user` oder `payment_failed` |
| next_billing_date | Datum der nächsten Abbuchung (immer 1. des Monats) |
| period_end | Letzter Tag der aktuellen Abo-Periode (Monatsende) |
| granted_at | Aktivierungszeitpunkt |
---
## `wp_wis_servers`
Serverdefinitionen