# StatusAPI ![Build Status](https://img.shields.io/badge/build-passing-brightgreen) ![Version](https://img.shields.io/badge/version-4.0.0-blue) 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.