From d3796a3ed947ac6c1e0387af087c22782d987a82 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 18 Jan 2026 16:08:10 +0000 Subject: [PATCH] README.md aktualisiert --- README.md | 215 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 148 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 0ef9fe7..6a44ecd 100644 --- a/README.md +++ b/README.md @@ -3,103 +3,158 @@ ![Build Status](https://img.shields.io/badge/build-passing-brightgreen) ![Version](https://img.shields.io/badge/version-4.0.1-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. +Ein modulares und leistungsstarkes Plugin für **BungeeCord**, das einen zentralen JSON-Status, globalen Chat, WordPress-Verifizierung, Server-Navigation und optionale Sicherheitsmodule 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 +- **Modulares System** + Aktiviere nur die Module, die du benötigst (Chat, Navigation, Verify, Security). + +- **JSON Status API** + Liefert Echtzeit-Serverdaten für Webseiten oder externe Dienste (Port `9191`). + +- **Global Chat** + Serverübergreifender Chat mit Badword-Filter, LuckPerms-Unterstützung und Logging. + +- **Server Navigation** + Automatische Generierung von Server-Befehlen (z. B. `/survival` statt `/server survival`). + +- **WordPress Verify** + Spieler-Verifizierung über WordPress (Token-basiert, CPT-kompatibel). + +- **CommandBlocker (Security Modul)** + Zentrale Blockierung von Commands auf Netzwerkebene inkl. Admin-Bypass. + +- **Auto-Updater** + Prüft automatisch auf Updates und lädt diese herunter. + +- **Logging** + Persistente Speicherung von Chat-Nachrichten mit automatischer Bereinigung. + +--- ## 📥 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 +1. Lade die aktuelle `StatusAPI.jar` +2. Lege sie in den `plugins/` Ordner deiner BungeeCord-Installation +3. Starte den Proxy neu +4. Alle Konfigurationsdateien werden automatisch erstellt + +--- ## ⚙️ Konfiguration -Alle Haupt-Einstellungen werden in der `plugins/StatusAPI/verify.properties` zentral verwaltet. +Alle Hauptmodule werden zentral über +`plugins/StatusAPI/verify.properties` gesteuert. ### 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 +commandblocker.enabled=true + +# =========================== +# WORDPRESS VERIFY +# =========================== -# 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 +server.survival=&aSurvival +server.survival.id=2 +server.survival.secret=GeheimesWortFuerSurvival +``` +## 🔒 CommandBlocker Modul -# Beispiel: SkyBlock -server.skyblock=&dSkyBlock -server.skyblock.id=3 -server.skyblock.secret=GeheimesWortFuerSkyBlock +Das **CommandBlockerModule** blockiert definierte Commands **netzwerkweit**, bevor sie an Backend-Server weitergeleitet werden. + +### Eigenschaften + +- Blockierung auf **BungeeCord-Ebene** +- **YAML-basierte** Konfiguration +- **Live-Verwaltung** per Command +- **Bypass-Permission** für Admins +- **Keine Abhängigkeit** von anderen Modulen + +--- + +### Konfigurationsdatei + +**Datei:** +`plugins/StatusAPI/blocked-commands.yml` + +```yaml +blocked: + - plugins + - pl + - version + - about ``` -### Weitere Dateien +Änderungen können entweder **manuell** oder **per Befehl** vorgenommen werden. -- **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 +## Befehle | 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` | -| `/clearchat, cc` | Löscht den Chatverlauf | `globalchat.clear` | -| `/togglechat` | schaltet für den Spieler den Chat ab | - | -| `/support ` | Sendet eine Nachricht an das Online-Team | - | -| `/reply ` | Antwortet auf eine Support-Anfrage | - | -| `/info` | Zeigt Plugin-Informationen an | - | +|------|-------------|------------| +| `/cb add ` | Blockiert einen Command | `commandblocker.admin` | +| `/cb remove ` | Entfernt einen Block | `commandblocker.admin` | +| `/cb list` | Zeigt alle blockierten Commands | `commandblocker.admin` | +| `/cb reload` | Lädt die YAML neu | `commandblocker.admin` | -## 🌐 JSON API (Status) +--- -Die API läuft unter `http://DEINE_IP:9191/`. +## Bypass -### Beispiel Request -```bash -curl http://127.0.0.1:9191/ +Spieler mit folgender Permission umgehen den CommandBlocker vollständig: + +```yaml +commandblocker.bypass ``` -### Beispiel Antwort +--- + +## 💻 Allgemeine Befehle + +| Befehl | Beschreibung | Permission | +|------|-------------|------------| +| `/verify ` | WordPress-Verifizierung | - | +| `/globalmute` | Globalen Chat sperren | `globalchat.mute` | +| `/globalreload` | Config neu laden | `globalchat.reload` | +| `/clearchat`, `/cc` | Chat leeren | `globalchat.clear` | +| `/togglechat` | Chat lokal deaktivieren | - | +| `/support ` | Support-Anfrage senden | - | +| `/reply ` | Auf Support antworten | - | +| `/info` | Plugin-Infos anzeigen | - | + +--- + +## 🌐 JSON API + +**Endpoint:** +```yaml +http://DEINE_IP:9191/ +``` + + +### Beispiel-Antwort + ```json { "online": true, @@ -117,28 +172,54 @@ curl http://127.0.0.1:9191/ } ``` +--- + ## 🛠️ Für Entwickler -Die StatusAPI ist modular aufgebaut. Du kannst eigene Module erstellen, ohne den Core-Code zu berühren. +Die **StatusAPI** ist vollständig modular aufgebaut und erlaubt die einfache Erweiterung um eigene Module, ohne den Core-Code zu verändern. -### Beispiel +--- + +### Eigenes Modul erstellen + +1. Klasse implementiert das `Module`-Interface +2. Optional zusätzlich `Listener` implementieren +3. Registrierung im Core (z. B. im ModuleManager): -1. Erstelle eine Klasse, die `Module` implementiert -2. Registriere sie in der StatusAPI Hauptdatei: ```java moduleManager.registerModule(new MeinModul()); ``` +### Modul-Lifecycle -3. Dein Modul hat Zugriff auf `onEnable` und `onDisable` des Haupt-Plugins +Jedes Modul besitzt Zugriff auf folgende Lifecycle-Methoden: -## 📝 Permissions +- `onEnable(Plugin plugin)` +- `onDisable(Plugin plugin)` -- `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 -- `globalchat.clear` - Löscht den Kompletten Chatverlauf +Diese Methoden werden automatisch beim **Starten** bzw. **Stoppen** des Proxys aufgerufen. + +--- + +## 📝 Permissions Übersicht + +- `globalchat.mute` +- `globalchat.bypass` +- `globalchat.reload` +- `globalchat.clear` +- `commandblocker.admin` +- `commandblocker.bypass` + +--- ## 🤝 Credits -Entwickelt von **M_Viper**. -Unterstützt durch BungeeCord und LuckPerms Community. +--- + +## 📜 Lizenz & Nutzung + +Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen **nicht verändert, kopiert oder weiterverbreitet** werden. + +Jegliche Nutzung, Modifikation oder Weitergabe – ganz oder teilweise – ist **ausschließlich mit vorheriger schriftlicher Genehmigung** des Entwicklers gestattet. + +© Entwickelt von **M_Viper**. Alle Rechte vorbehalten. +