diff --git a/README.md b/README.md index 3170a6a..f72b75e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,144 @@ # StatusAPI +![Build Status](https://img.shields.io/badge/build-passing-brightgreen) +![Version](https://img.shields.io/badge/version-1.0.0-blue) +![License](https://img.shields.io/badge/license-MIT-green) + +Ein modulares und mächtiges Plugin für BungeeCord, das einen zentralen JSON-Status, ein globales Chat-System, WordPress-Verifizierung und dynamische Server-Navigation bereitstellt. + +## ⚡ Features + +- **Modulares System**: Aktiviere nur die Features, die du brauchst (Chat, Stats, Verify) +- **JSON API**: Liefert Echtzeit-Server-Statistiken (Spieleranzahl, Motd, Versionen) für deine Webseite (Port 9191) +- **Global Chat**: Ein einheitlicher Chat über alle Server hinweg mit Badword-Filter und LuckPerms-Support +- **Server Navigation**: Automatische Generierung von Befehlen basierend auf deiner Config (z.B. `/survival` statt `/server survival`) +- **WordPress Verify**: Verifiziere Spieler direkt mit deiner WordPress-Seite (CPT Integration) +- **Auto-Updater**: Prüft automatisch auf Updates und lädt diese herunter +- **Logging**: Speichert den kompletten Chatverlauf in Dateien + +## 📥 Installation + +1. Lade die aktuellste `StatusAPI.jar` herunter +2. Lege die Datei in den `plugins` Ordner deiner BungeeCord-Installation +3. Starte den Server neu +4. Die Config-Dateien werden automatisch erstellt + +## ⚙️ Konfiguration + +Alle Haupt-Einstellungen werden in der `plugins/StatusAPI/verify.properties` zentral verwaltet. + +### verify.properties + +Hier konfigurierst du Server-Namen, Farben und die Verbindung zu WordPress. +```properties +# =========================== +# GLOBALE EINSTELLUNGEN +# =========================== + +# Aktiviert oder deaktiviert das globale Chat-Modul +chat.enabled=true + +# Aktiviert die automatischen Server-Switch Befehle (z.B. /survival) +navigation.enabled=true + +# URL deiner WordPress-Installation +wp_verify_url=https://deine-wordpress-domain.tld + +# =========================== +# SERVER KONFIGURATION +# =========================== + +# Der Key-Name (z.B. bungee-server-1) MUSS exakt mit dem +# Namen in deiner BungeeCord config.yml übereinstimmen! +# +# - server.= -> Wird im Chat und als Befehl genutzt +# - server..id= -> WordPress Server ID +# - server..secret= -> WordPress Secret + +# Beispiel: Server mit Namen "Lobby" +server.lobby=&bLobby +server.lobby.id=1606 +server.lobby.secret=DeinSecretHier + +# Beispiel: Server mit Namen "bungee-server-1" (Name aus BungeeConfig) +server.bungee-server-1=&aSurvival +server.bungee-server-1.id=2 +server.bungee-server-1.secret=GeheimesWortFuerSurvival + +# Beispiel: SkyBlock +server.skyblock=&dSkyBlock +server.skyblock.id=3 +server.skyblock.secret=GeheimesWortFuerSkyBlock +``` + +### Weitere Dateien + +- **filter.yml**: Hier trägst du Badwords ein, die im Chat zensiert werden sollen +- **welcome.yml**: Hier definierst du Willkommensnachrichten für neue Spieler (nur sichtbar, wenn Welcome-Events aktiviert sind) +- **plugins/StatusAPI/logs/**: Hier werden alle Chatnachrichten als Textdateien gespeichert (Löschung nach 7 Tagen) + +## 💻 Befehle + +Die meisten Befehle werden dynamisch basierend auf deiner `verify.properties` erstellt. + +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/verify ` | Verifiziert den Spieler mit der WordPress-Seite | - | +| `/survival` / `/lobby` | Führt dich auf den entsprechenden Server um (wird dynamisch erstellt) | - | +| `/globalmute` | Aktiviert oder deaktiviert den globalen Chat | `globalchat.mute` | +| `/globalreload` | Lädt Filter und Konfigurationen neu | `globalchat.reload` | +| `/support ` | Sendet eine Nachricht an das Online-Team | - | +| `/reply ` | Antwortet auf eine Support-Anfrage | - | +| `/info` | Zeigt Plugin-Informationen an | - | + +## 🌐 JSON API (Status) + +Die API läuft unter `http://DEINE_IP:9191/`. + +### Beispiel Request +```bash +curl http://127.0.0.1:9191/ +``` + +### Beispiel Antwort +```json +{ + "online": true, + "version": "1.20.4", + "max_players": "500", + "motd": "Willkommen auf meinem Server!", + "players": [ + { + "name": "Player1", + "uuid": "550e8400-e29b-41d4-a716-446655440000", + "prefix": "§aAdmin", + "server": "Lobby" + } + ] +} +``` + +## 🛠️ Für Entwickler + +Die StatusAPI ist modular aufgebaut. Du kannst eigene Module erstellen, ohne den Core-Code zu berühren. + +### Beispiel + +1. Erstelle eine Klasse, die `Module` implementiert +2. Registriere sie in der StatusAPI Hauptdatei: +```java +moduleManager.registerModule(new MeinModul()); +``` + +3. Dein Modul hat Zugriff auf `onEnable` und `onDisable` des Haupt-Plugins + +## 📝 Permissions + +- `globalchat.mute` - Erlaubt das Stummschalten des Chats +- `globalchat.bypass` - Erlaubt das Schreiben, auch wenn der Chat gemuted ist +- `globalchat.reload` - Erlaubt das Neuladen der Konfiguration + +## 🤝 Credits + +Entwickelt von **M_Viper**. +Unterstützt durch BungeeCord und LuckPerms Community.