Files
WP-Ingame-Shop-Pro/README.md
2026-04-25 21:07:27 +00:00

10 KiB
Raw Blame History

WP Ingame Shop Pro

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, 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.


Highlights

  • 🛒 Warenkorb-System
    Mehrere Items pro Bestellung.
    Eine Bestellung = eine saubere Datenbankzeile mit JSON-Details.

  • Mehrfachbearbeitung (Bulk Edit)
    Hunderte Items gleichzeitig bearbeiten (Preis, Server, Kategorie, Status, Ankauf).

  • 💰 Eigene Währung
    „Coins", „Tokens" oder beliebige virtuelle Währungen.

  • 🖼️ Automatische Bildzuweisung
    minecraft:diamondminecraft_diamond.png
    Ideal für große Bildsammlungen (1500+ Dateien).

  • 🔥 Daily Deal & Sale-System

  • 🎫 Smart Coupons
    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

  • 📊 Top-Spender & Umsatzstatistik


🚀 Installation

WordPress Plugin

  1. Ordner wp-ingame-shop-pro nach:
wp-content/plugins/
  1. Plugin im WordPress Backend aktivieren.
  2. Fertig.

Bei Aktivierung werden automatisch erstellt:

  • Datenbanktabellen (wp_wis_*)
  • 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

# 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)

📂 Basis-URL für alle Item-Bilder

https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/

🔧 Eintragen im Plugin

Ingame Shop → Einstellungen → Bilder Basis-URL

Eintragen:

https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/

📌 Automatische Bildlogik

Item-ID im Shop:

minecraft:diamond

Automatisch geladen wird:

https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/minecraft_diamond.png

Regeln:

  • : wird zu _
  • Dateiendung = .png
  • Keine manuelle Bildzuweisung notwendig

📥 Quick JSON Import (Direkt von Gitea)

🔗 Import-URL

https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/items.json

🛠️ Import durchführen

  1. Ingame Shop → JSON Tools
  2. Import
  3. URL einfügen
  4. Import starten

Ideal für:

  • Kompletten Shop-Aufbau in Sekunden
  • Regelmäßige Synchronisation
  • Kombination mit Bulk Edit

🛠️ Admin-Bereich

1 Einstellungen

  • Shop Header Text
  • Währungsname (z.B. Coins)
  • Bilder Basis-URL
  • Daily Deal (% Rabatt)
  • Gutscheine auf Sale-Items erlauben / verbieten

2 Items Verwaltung

Einzelbearbeitung

  • Item ID (minecraft:diamond)
  • Preis
  • Angebotspreis
  • Server-Zuweisung
  • Kategorie
  • 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)

Beispiel: 100 Items auf Ankauf konfigurieren.

  1. Items anhaken
  2. „Massenaktionen" wählen:
    • Server zuweisen
    • Preis ändern
    • Angebot ändern
    • Kategorie setzen
    • Status ändern
    • Ankauf konfigurieren
  3. Anwenden
  4. Änderungen speichern

Bei Ankauf konfigurieren siehst du pro Item:

  • Checkbox zum Aktivieren/Deaktivieren
  • Modus-Auswahl (%, minus, fix)
  • Wert-Eingabe
  • Live-Vorschau des Ankaufspreises

3 Weitere Bereiche

📦 Bestellungen

  • Bestellungen anzeigen
  • Manuell abschließen
  • Stornieren

Status:

pending
processing
completed
cancelled

🌐 Server

Beispiel:

lobby
survival
skyblock

Frontend-Filter werden automatisch generiert.


📂 Kategorien

Beispiel:

Blöcke
Waffen
Rüstung
Ranks

🎫 Gutscheine

  • fixed (Festbetrag)
  • percent (Prozent)
  • Ablaufdatum
  • Nutzungslimit
  • Ausschluss bei Angeboten

📊 Top Spender

Automatische Auswertung der Bestellungen.


🎮 Frontend Nutzung

Shortcode:

[ingame_shop_form]

Spieler-Funktionen

  • Suche
  • Server-Filter
  • Kategorie-Tabs
  • Warenkorb
  • Gutschein-Eingabe
  • Server-Validierung beim Checkout

📡 REST API

Basis:

/wp-json/wis/v1/

Bestellung erstellen

POST /wis/v1/order
{
  "player": "Name",
  "server": "survival",
  "cart": [
    { "id": "item_id", "quantity": 1 }
  ],
  "coupon_code": "CODE"
}

Offene Bestellungen abrufen

GET /wis/v1/pending_orders?player=Name

Status ändern

POST /wis/v1/execute_order
POST /wis/v1/complete_order
POST /wis/v1/cancel_order

Gutschein validieren

POST /wis/v1/validate_coupon

Ankauf Items abrufen

GET /wis/v1/sell_items?server=survival

Antwort:

{
  "items": [
    {
      "item_id": "minecraft:diamond",
      "name": "Diamant",
      "buy_price": 100,
      "sell_price": 80
    }
  ],
  "currency": "Coins"
}

Ankauf Item verkaufen

POST /wis/v1/sell_item
{
  "player": "Steve",
  "server": "survival",
  "item_id": "minecraft:diamond",
  "quantity": 5
}

Antwort:

{
  "success": true,
  "item_name": "Diamant",
  "quantity": 5,
  "price_per_item": 80.00,
  "total": 400.00
}

💾 Datenbank-Struktur

wp_wis_items

Feld Beschreibung
item_id minecraft:diamond
name Anzeigename
price Standardpreis
offer_price Angebotspreis
is_offer 0 / 1
servers JSON Array
categories JSON Array
status publish / draft
sell_enabled 0 / 1 Ankauf aktiv?
sell_price_mode percent / fixed / minus
sell_price_value Wert passend zum Modus

wp_wis_orders

Feld Beschreibung
player_name Minecraft Name
server Zielserver
item_title Zusammenfassung
price Gesamtpreis
response JSON
status pending / processing / completed / cancelled

wp_wis_coupons

Feld Beschreibung
code Gutschein
type fixed / percent
value Rabattwert
usage_limit Limit
used_count Nutzung

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

Serverdefinitionen


wp_wis_categories

Kategoriedefinitionen


Performance Empfehlung

Bei 1500+ PNG-Dateien:

  • CDN empfohlen
  • PNG verlustfrei komprimieren
  • Gitea Caching aktivieren
  • Optional WebP-Versionen erstellen

🔐 Sicherheitshinweis

Aktuell sind API-Endpunkte öffentlich (__return_true).

Für Produktion empfohlen:

  • API-Key Header
  • Bearer Token
  • IP Whitelisting
  • Nonce/Signature System

Copyright © 2026 - M_Viper - Alle Rechte vorbehalten

Die unbefugte Vervielfältigung, Verbreitung oder Weitergabe dieses Plugins ist strafbar und wird rechtlich verfolgt.