README.md aktualisiert
This commit is contained in:
203
README.md
203
README.md
@@ -1,7 +1,7 @@
|
|||||||
# WP Ingame Shop Pro
|
# WP Ingame Shop Pro
|
||||||
|
|
||||||
Ein leistungsstarker, vollständig eigenständiger Ingame-Shop für WordPress, entwickelt für Minecraft-Server (Spigot/Paper).
|
Ein leistungsstarker, vollständig eigenständiger Ingame-Shop für WordPress, entwickelt für Minecraft-Server (Spigot/Paper).
|
||||||
Er bietet ein komfortables Warenkorb-System, Gutscheine, Daily Deals und eine benutzerdefinierte Währung – komplett ohne RCON.
|
Er bietet ein komfortables Warenkorb-System, Gutscheine, Daily Deals, eine benutzerdefinierte Währung und ein **Item-Ankauf-System** – komplett ohne RCON.
|
||||||
|
|
||||||
Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und vollständige Unabhängigkeit von WordPress-Beiträgen.
|
Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und vollständige Unabhängigkeit von WordPress-Beiträgen.
|
||||||
|
|
||||||
@@ -14,10 +14,10 @@ Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und
|
|||||||
Eine Bestellung = eine saubere Datenbankzeile mit JSON-Details.
|
Eine Bestellung = eine saubere Datenbankzeile mit JSON-Details.
|
||||||
|
|
||||||
- ⚡ **Mehrfachbearbeitung (Bulk Edit)**
|
- ⚡ **Mehrfachbearbeitung (Bulk Edit)**
|
||||||
Hunderte Items gleichzeitig bearbeiten (Preis, Server, Kategorie, Status).
|
Hunderte Items gleichzeitig bearbeiten (Preis, Server, Kategorie, Status, **Ankauf**).
|
||||||
|
|
||||||
- 💰 **Eigene Währung**
|
- 💰 **Eigene Währung**
|
||||||
„Coins“, „Tokens“ oder beliebige virtuelle Währungen.
|
„Coins", „Tokens" oder beliebige virtuelle Währungen.
|
||||||
|
|
||||||
- 🖼️ **Automatische Bildzuweisung**
|
- 🖼️ **Automatische Bildzuweisung**
|
||||||
`minecraft:diamond` → `minecraft_diamond.png`
|
`minecraft:diamond` → `minecraft_diamond.png`
|
||||||
@@ -28,6 +28,10 @@ Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und
|
|||||||
- 🎫 **Smart Coupons**
|
- 🎫 **Smart Coupons**
|
||||||
Prozent- oder Festbetrag, optional nicht kombinierbar mit Angeboten.
|
Prozent- oder Festbetrag, optional nicht kombinierbar mit Angeboten.
|
||||||
|
|
||||||
|
- 🔄 **Item-Ankauf-System**
|
||||||
|
Spieler können Items direkt ingame an den Shop verkaufen.
|
||||||
|
Ankaufspreis pro Item konfigurierbar (% vom VK, Festpreis oder VK minus Betrag).
|
||||||
|
|
||||||
- 🌐 **REST API ohne RCON**
|
- 🌐 **REST API ohne RCON**
|
||||||
|
|
||||||
- 📊 **Top-Spender & Umsatzstatistik**
|
- 📊 **Top-Spender & Umsatzstatistik**
|
||||||
@@ -36,9 +40,13 @@ Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und
|
|||||||
|
|
||||||
## 🚀 Installation
|
## 🚀 Installation
|
||||||
|
|
||||||
|
### WordPress Plugin
|
||||||
|
|
||||||
1. Ordner `wp-ingame-shop-pro` nach:
|
1. Ordner `wp-ingame-shop-pro` nach:
|
||||||
|
|
||||||
|
```
|
||||||
wp-content/plugins/
|
wp-content/plugins/
|
||||||
|
```
|
||||||
|
|
||||||
2. Plugin im WordPress Backend aktivieren.
|
2. Plugin im WordPress Backend aktivieren.
|
||||||
3. Fertig.
|
3. Fertig.
|
||||||
@@ -48,6 +56,105 @@ Bei Aktivierung werden automatisch erstellt:
|
|||||||
- Datenbanktabellen (`wp_wis_*`)
|
- Datenbanktabellen (`wp_wis_*`)
|
||||||
- Cron-Jobs für Daily Deals
|
- Cron-Jobs für Daily Deals
|
||||||
|
|
||||||
|
### Spigot/Paper Plugin
|
||||||
|
|
||||||
|
1. `IngameShopSpigot.jar` in den `plugins/`-Ordner des Servers legen.
|
||||||
|
2. Server starten – `config.yml` wird automatisch erstellt.
|
||||||
|
3. `config.yml` ausfüllen (WordPress-URL, API-Key, Server-Name).
|
||||||
|
4. `/wpis reload` oder Server neu starten.
|
||||||
|
|
||||||
|
**Voraussetzungen:** Vault + ein Economy-Plugin (z.B. EssentialsX)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# ⚙️ Spigot Plugin Konfiguration
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# WordPress-URL (kein abschließendes /)
|
||||||
|
wordpress-url: "https://deine-domain.de"
|
||||||
|
|
||||||
|
# API-Key aus den WordPress-Einstellungen
|
||||||
|
api-key: "HIER_DEN_KEY_AUS_WORDPRESS_EINTRAGEN"
|
||||||
|
|
||||||
|
# Name dieses Servers (muss mit dem Server-Slug in WordPress übereinstimmen)
|
||||||
|
server-name: "survival"
|
||||||
|
|
||||||
|
# Währungsname (muss mit WordPress-Einstellung übereinstimmen)
|
||||||
|
currency-name: "$"
|
||||||
|
|
||||||
|
# Wie oft (in Sekunden) nach ausstehenden Bestellungen gesucht wird
|
||||||
|
check-interval: 10
|
||||||
|
|
||||||
|
# Debug-Modus (ausführliche Logs in der Konsole)
|
||||||
|
debug-mode: false
|
||||||
|
|
||||||
|
# Fly-Code-Einlösung auf diesem Server deaktivieren
|
||||||
|
fly-redeem-disabled: false
|
||||||
|
|
||||||
|
# Spieler der die Einnahmen aus dem Shop erhält (Vault-Konto)
|
||||||
|
income-receiver: ""
|
||||||
|
|
||||||
|
# MySQL-Verbindung (für Fly-Code-System und Rang-Sessions)
|
||||||
|
mysql:
|
||||||
|
host: "localhost"
|
||||||
|
port: "3306"
|
||||||
|
database: "minecraft"
|
||||||
|
username: "root"
|
||||||
|
password: "DEIN_PASSWORT"
|
||||||
|
|
||||||
|
# Ankauf-Einstellungen
|
||||||
|
sell:
|
||||||
|
enabled: true
|
||||||
|
# Preiskorrektur relativ zum WP-Ankaufspreis (in Prozent)
|
||||||
|
# 0.0 = exakt WP-Preis | -10.0 = 10 % weniger | +5.0 = 5 % mehr
|
||||||
|
price-offset: 0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🎮 Ingame-Befehle
|
||||||
|
|
||||||
|
## Shop / Bestellungen
|
||||||
|
|
||||||
|
| Befehl | Beschreibung | Berechtigung |
|
||||||
|
|--------|-------------|--------------|
|
||||||
|
| `/orders` | Zeigt deine letzten Bestellungen | `ingameshop.orders` |
|
||||||
|
|
||||||
|
## Fly-Gutscheine
|
||||||
|
|
||||||
|
| Befehl | Beschreibung | Berechtigung |
|
||||||
|
|--------|-------------|--------------|
|
||||||
|
| `/flytime` | Zeigt deine aktive verbleibende Fly-Zeit | `ingameshop.flytime` |
|
||||||
|
| `/flyredeem <Code>` | Löst einen Fly-Gutschein-Code ein | `ingameshop.flyredeem` |
|
||||||
|
| `/flycodes` | GUI mit deinen ungenutzten Fly-Codes (einlösen / weitergeben) | `ingameshop.flycodes` |
|
||||||
|
| `/flygive <Spieler> <Sekunden> [Label]` | Gibt einem Spieler einen Fly-Code (Admin) | `ingameshop.flygive` |
|
||||||
|
| `/flypause` | Pausiert oder setzt die aktive Fly-Zeit fort | `ingameshop.flypause` |
|
||||||
|
|
||||||
|
## Ränge
|
||||||
|
|
||||||
|
| Befehl | Beschreibung | Berechtigung |
|
||||||
|
|--------|-------------|--------------|
|
||||||
|
| `/rankinfo` | Zeigt deine aktiven zeitbasierten Ränge | `ingameshop.rankinfo` |
|
||||||
|
|
||||||
|
## Item-Ankauf
|
||||||
|
|
||||||
|
| Befehl | Beschreibung | Berechtigung |
|
||||||
|
|--------|-------------|--------------|
|
||||||
|
| `/sell` | Öffnet das Ankauf-GUI mit allen ankaufbaren Items | `ingameshop.sell` |
|
||||||
|
| `/sell hand` | Verkauft den Stack in der Hand direkt | `ingameshop.sell` |
|
||||||
|
| `/sell all` | Verkauft alle ankaufbaren Items aus dem Inventar | `ingameshop.sell` |
|
||||||
|
|
||||||
|
### Ankauf-GUI
|
||||||
|
- **Linksklick** auf ein Item → verkauft alle davon im Inventar
|
||||||
|
- **Rechtsklick** auf ein Item → verkauft genau 1 Stack (max. 64)
|
||||||
|
- Items werden alle 5 Minuten automatisch aus WordPress aktualisiert
|
||||||
|
|
||||||
|
## Admin
|
||||||
|
|
||||||
|
| Befehl | Beschreibung | Berechtigung |
|
||||||
|
|--------|-------------|--------------|
|
||||||
|
| `/wpis reload` | Lädt config.yml und Ankaufliste live neu | `ingameshop.reload` (OP) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🖼️ Bilder-Konfiguration (Gitea Raw)
|
# 🖼️ Bilder-Konfiguration (Gitea Raw)
|
||||||
@@ -139,23 +246,38 @@ Ideal für:
|
|||||||
- Server-Zuweisung
|
- Server-Zuweisung
|
||||||
- Kategorie
|
- Kategorie
|
||||||
- Status (`publish` / `draft`)
|
- Status (`publish` / `draft`)
|
||||||
|
- **Ankauf aktivieren** (mit Preismodus und Live-Vorschau)
|
||||||
|
|
||||||
|
### Ankauf-Preismodi (pro Item)
|
||||||
|
|
||||||
|
| Modus | Beispiel | Ergebnis bei VK 100 |
|
||||||
|
|-------|---------|---------------------|
|
||||||
|
| `% vom VK` | 80 | 80 Coins |
|
||||||
|
| `VK minus` | 10 | 90 Coins |
|
||||||
|
| `Fixpreis` | 15 | immer 15 Coins |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔄 Bulk Edit (Mehrfachbearbeitung)
|
## 🔄 Bulk Edit (Mehrfachbearbeitung)
|
||||||
|
|
||||||
Beispiel: 100 Items einem Server zuweisen.
|
Beispiel: 100 Items auf Ankauf konfigurieren.
|
||||||
|
|
||||||
1. Items anhaken
|
1. Items anhaken
|
||||||
2. „Massenaktionen“ wählen:
|
2. „Massenaktionen" wählen:
|
||||||
- Server zuweisen
|
- Server zuweisen
|
||||||
- Preis ändern
|
- Preis ändern
|
||||||
|
- Angebot ändern
|
||||||
- Kategorie setzen
|
- Kategorie setzen
|
||||||
- Status ändern
|
- Status ändern
|
||||||
|
- **Ankauf konfigurieren**
|
||||||
3. Anwenden
|
3. Anwenden
|
||||||
4. Änderungen speichern
|
4. Änderungen speichern
|
||||||
|
|
||||||
Überschreibt bestehende Server-/Kategorie-Zuweisungen.
|
Bei **Ankauf konfigurieren** siehst du pro Item:
|
||||||
|
- Checkbox zum Aktivieren/Deaktivieren
|
||||||
|
- Modus-Auswahl (%, minus, fix)
|
||||||
|
- Wert-Eingabe
|
||||||
|
- Live-Vorschau des Ankaufspreises
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -297,6 +419,57 @@ POST /wis/v1/validate_coupon
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Ankauf – Items abrufen
|
||||||
|
|
||||||
|
```
|
||||||
|
GET /wis/v1/sell_items?server=survival
|
||||||
|
```
|
||||||
|
|
||||||
|
Antwort:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"item_id": "minecraft:diamond",
|
||||||
|
"name": "Diamant",
|
||||||
|
"buy_price": 100,
|
||||||
|
"sell_price": 80
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currency": "Coins"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ankauf – Item verkaufen
|
||||||
|
|
||||||
|
```
|
||||||
|
POST /wis/v1/sell_item
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"player": "Steve",
|
||||||
|
"server": "survival",
|
||||||
|
"item_id": "minecraft:diamond",
|
||||||
|
"quantity": 5
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Antwort:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"item_name": "Diamant",
|
||||||
|
"quantity": 5,
|
||||||
|
"price_per_item": 80.00,
|
||||||
|
"total": 400.00
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# 💾 Datenbank-Struktur
|
# 💾 Datenbank-Struktur
|
||||||
|
|
||||||
## `wp_wis_items`
|
## `wp_wis_items`
|
||||||
@@ -311,6 +484,9 @@ POST /wis/v1/validate_coupon
|
|||||||
| servers | JSON Array |
|
| servers | JSON Array |
|
||||||
| categories | JSON Array |
|
| categories | JSON Array |
|
||||||
| status | publish / draft |
|
| status | publish / draft |
|
||||||
|
| sell_enabled | 0 / 1 – Ankauf aktiv? |
|
||||||
|
| sell_price_mode | percent / fixed / minus |
|
||||||
|
| sell_price_value | Wert passend zum Modus |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -339,6 +515,21 @@ POST /wis/v1/validate_coupon
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## `wp_wis_sell_log`
|
||||||
|
|
||||||
|
| Feld | Beschreibung |
|
||||||
|
|------|-------------|
|
||||||
|
| player_name | Minecraft Name |
|
||||||
|
| server | Server-Slug |
|
||||||
|
| item_id | minecraft:diamond |
|
||||||
|
| item_name | Anzeigename |
|
||||||
|
| quantity | Verkaufte Menge |
|
||||||
|
| price_per_item | Ankaufspreis pro Stück |
|
||||||
|
| total_paid | Ausgezahlter Gesamtbetrag |
|
||||||
|
| sold_at | Zeitstempel |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## `wp_wis_servers`
|
## `wp_wis_servers`
|
||||||
|
|
||||||
Serverdefinitionen
|
Serverdefinitionen
|
||||||
|
|||||||
Reference in New Issue
Block a user