From 5bcd8cf4a163aa1f3bc9b6c6e09dc91a5e3c6f0a Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 1 Apr 2026 10:05:46 +0000 Subject: [PATCH] README.md aktualisiert --- README.md | 401 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 230 insertions(+), 171 deletions(-) diff --git a/README.md b/README.md index 969d8c4..2a754c8 100644 --- a/README.md +++ b/README.md @@ -1,225 +1,284 @@ # StatusAPI -![Build Status](https://img.shields.io/badge/build-passing-brightgreen) -![Version](https://img.shields.io/badge/version-4.0.6-blue) +![Version](https://img.shields.io/badge/version-4.1.0-blue) +![Plattform](https://img.shields.io/badge/platform-BungeeCord-orange) +![Minecraft](https://img.shields.io/badge/Minecraft-1.20%2B-brightgreen) +![Java](https://img.shields.io/badge/Java-8%2B-red) +![Lizenz](https://img.shields.io/badge/license-All%20Rights%20Reserved-black) -Ein modulares und leistungsstarkes Plugin für **BungeeCord**, das einen zentralen JSON-Status, globalen Chat, WordPress-Verifizierung, Server-Navigation und optionale Sicherheitsmodule bereitstellt. +Benutzerdokumentation für GitHub (Serverbetreiber, Teammitglieder und Spieler). ---- +StatusAPI ist ein BungeeCord-Plugin mit Fokus auf Chat, Moderation, Verifizierung und Brücken zu externen Plattformen wie Discord, Telegram und Forum/WordPress. -## ⚡ Features +## Rechtlicher Hinweis -- **Modulares System** - Aktiviere nur die Module, die du benötigst (Chat, Navigation, Verify, Security). +Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen nicht verändert, kopiert oder weiterverbreitet werden. -- **JSON Status API** - Liefert Echtzeit-Serverdaten für Webseiten oder externe Dienste (Port `9191`). +Jegliche Nutzung, Modifikation oder Weitergabe – ganz oder teilweise – ist ausschließlich mit vorheriger schriftlicher Genehmigung des Entwicklers gestattet. -- **Global Chat** - Serverübergreifender Chat mit Badword-Filter, LuckPerms-Unterstützung und Logging. +© Entwickelt von M_Viper. Alle Rechte vorbehalten. -- **Server Navigation** - Automatische Generierung von Server-Befehlen (z. B. `/survival` statt `/server survival`). +## Inhaltsverzeichnis -- **WordPress Verify** - Spieler-Verifizierung über WordPress (Token-basiert, CPT-kompatibel). +1. [Features](#features) +2. [Voraussetzungen](#voraussetzungen) +3. [Installation](#installation) +4. [Schnellstart](#schnellstart) +5. [Befehle](#befehle) +6. [Permissions](#permissions) +7. [Konfiguration](#konfiguration) +8. [Typische Nutzung](#typische-nutzung) +9. [Fehlerbehebung](#fehlerbehebung) -- **CommandBlocker (Security Modul)** - Zentrale Blockierung von Commands auf Netzwerkebene inkl. Admin-Bypass. +## Features -- **Auto-Updater** - Prüft automatisch auf Updates und lädt diese herunter. +- Mehrere Chat-Kanäle (z. B. Global, Local, Trade, Staff) +- Private Nachrichten mit Antwortfunktion (`/msg`, `/r`) +- Ignore-System (`/ignore`, `/unignore`) +- Mute-System für Teammitglieder (`/chatmute`, `/chatunmute`) +- Report-System (`/report`, `/reports`, `/reportclose`) +- Mentions (`@Spieler`) mit Benachrichtigung +- Emoji-Unterstützung über Platzhalter (z. B. `:smile:`) +- Chat-Filter (Spam, Duplikate, Caps, Wortfilter) +- Chat-Logs und History +- Discord- und Telegram-Integration +- Discord-/Telegram-Account-Verknüpfung +- Website/WordPress-Verifizierung (`/verify`) +- Forum-Bridge mit Ingame-Benachrichtigungen +- Broadcast-Funktion +- Command-Blocker für unerwünschte Befehle -- **Logging** - Persistente Speicherung von Chat-Nachrichten mit automatischer Bereinigung. +## Voraussetzungen ---- +- BungeeCord-Proxy +- Minecraft 1.20+ +- Optional: + - LuckPerms (Soft-Dependency) + - Geyser-BungeeCord (Soft-Dependency) + - Discord Bot/Webhook + - Telegram Bot + - WordPress/API für Verify und Forum -## 📥 Installation +## Installation -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 +1. Plugin-JAR in den Plugin-Ordner deines BungeeCord-Proxys legen. +2. Proxy starten (Dateien werden automatisch erstellt). +3. Proxy stoppen. +4. Konfiguration anpassen: + - `plugins/StatusAPI/verify.properties` + - `plugins/StatusAPI/chat.yml` + - `plugins/StatusAPI/blocked-commands.yml` (optional) +5. Proxy neu starten. ---- +## Schnellstart -## ⚙️ Konfiguration - -Alle Hauptmodule werden zentral über -`plugins/StatusAPI/verify.properties` gesteuert. - -### verify.properties - -```properties -# =========================== -# GLOBALE EINSTELLUNGEN -# =========================== - -chat.enabled=true -navigation.enabled=true -commandblocker.enabled=true - -# =========================== -# WORDPRESS VERIFY -# =========================== - -wp_verify_url=https://deine-wordpress-domain.tld - -# =========================== -# SERVER KONFIGURATION -# =========================== - -server.lobby=&bLobby -server.lobby.id=1606 -server.lobby.secret=DeinSecretHier - -server.survival=&aSurvival -server.survival.id=2 -server.survival.secret=GeheimesWortFuerSurvival -``` -## 🔒 CommandBlocker Modul - -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 -``` - -Änderungen können entweder **manuell** oder **per Befehl** vorgenommen werden. - ---- +1. In `verify.properties` Port und Verify-/Forum-Daten setzen. +2. In `chat.yml` Kanäle, Formate und Rechte prüfen. +3. Discord/Telegram nur aktivieren, wenn Token und IDs korrekt sind. +4. Mit Test-Account prüfen: + - `/channel` + - `/msg` + - `/report` + - `/helpop` + - `/chatreload` ## Befehle -| Befehl | Beschreibung | Permission | -|------|-------------|------------| -| `/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` | +### Verifizierung und Forum ---- +| Befehl | Beschreibung | +|---|---| +| `/verify ` | Verifiziert den Spieler gegen die Website. | +| `/forumlink ` | Verknüpft Minecraft-Account mit dem Forum. | +| `/forum` | Zeigt ausstehende Forum-Benachrichtigungen. | -## Bypass +### Chat und Kommunikation -Spieler mit folgender Permission umgehen den CommandBlocker vollständig: +| Befehl | Beschreibung | +|---|---| +| `/channel [kanal]` | Kanal wechseln oder Kanäle anzeigen. | +| `/helpop ` | Hilfeanfrage an das Team senden. | +| `/msg ` | Private Nachricht senden. | +| `/r ` | Auf letzte private Nachricht antworten. | +| `/ignore ` | Spieler ignorieren. | +| `/unignore ` | Ignore aufheben. | +| `/chataus` | Eigenen Chat-Empfang ein/aus schalten. | +| `/mentions` | Mention-Benachrichtigungen ein/aus schalten. | +| `/emoji` | Emoji-Liste anzeigen. | +| `/chatbypass` | Nächste Eingabe für Plugin-Dialoge durchlassen. | -```yaml -commandblocker.bypass -``` +### Team und Moderation ---- +| Befehl | Beschreibung | +|---|---| +| `/chatmute [minuten]` | Spieler stummschalten. | +| `/chatunmute ` | Stummschaltung aufheben. | +| `/broadcast ` | Nachricht an alle Spieler senden. | +| `/socialspy` | Private Nachrichten mitlesen. | +| `/chatreload` | Chat-Konfiguration neu laden. | +| `/chatinfo ` | Chat-Informationen zu einem Spieler. | +| `/chathist [spieler] [anzahl]` | Chat-History anzeigen. | -## 💻 Allgemeine Befehle +### Reports -| 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 | - | +| Befehl | Beschreibung | +|---|---| +| `/report ` | Spieler melden. | +| `/reports [all]` | Offene oder alle Reports anzeigen. | +| `/reportclose ` | Report schließen. | ---- +### CommandBlocker -## 🌐 JSON API +| Befehl | Beschreibung | +|---|---| +| `/cb add ` | Befehl blockieren. | +| `/cb remove ` | Blockierung aufheben. | +| `/cb list` | Blockierte Befehle anzeigen. | +| `/cb reload` | CommandBlocker neu laden. | -**Endpoint:** -```yaml -http://DEINE_IP:9191/ -``` +### Account-Linking +| Befehl | Beschreibung | +|---|---| +| `/linkdiscord` | Link-Code für Discord erzeugen. | +| `/linktelegram` | Link-Code für Telegram erzeugen. | +| `/unlink ` | Verknüpfung lösen. | -### Beispiel-Antwort +## Permissions -```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" - } - ] -} -``` +Wichtige Rechte (Auszug): ---- +| Permission | Zweck | +|---|---| +| `statusapi.update.notify` | Update-Hinweise erhalten | +| `chat.channel.local` | Zugriff auf Local-Kanal | +| `chat.channel.trade` | Zugriff auf Trade-Kanal | +| `chat.channel.staff` | Zugriff auf Staff-Kanal | +| `chat.helpop.receive` | HelpOp empfangen | +| `chat.mute` | Spieler muten/unmuten | +| `chat.broadcast` | Broadcast senden | +| `chat.socialspy` | PMs mitlesen | +| `chat.admin.bypass` | Admin-Bypass (nicht mutebar/blockierbar) | +| `chat.admin.notify` | Admin-Benachrichtigungen | +| `chat.report` | Reports erstellen (wenn konfiguriert) | +| `chat.color` | Farbcodes im Chat nutzen | +| `chat.color.format` | Formatcodes im Chat nutzen | +| `chat.filter.bypass` | Chatfilter umgehen | +| `commandblocker.admin` | `/cb` verwalten | +| `commandblocker.bypass` | Von CommandBlocker ausgenommen | -## 🛠️ Für Entwickler +Hinweis: Standardwerte (`true`/`false`/`op`) stehen in `plugin.yml`. -Die **StatusAPI** ist vollständig modular aufgebaut und erlaubt die einfache Erweiterung um eigene Module, ohne den Core-Code zu verändern. +## Konfiguration ---- +### `verify.properties` -### Eigenes Modul erstellen +Zentrale Datei für Core, Verify, Broadcast, Forum und CommandBlocker. -1. Klasse implementiert das `Module`-Interface -2. Optional zusätzlich `Listener` implementieren -3. Registrierung im Core (z. B. im ModuleManager): +Wichtige Schlüssel: -```java -moduleManager.registerModule(new MeinModul()); -``` -### Modul-Lifecycle +- `statusapi.port=9191` +- `wp_verify_url=https://deine-domain.tld` +- `server..id=` +- `server..secret=` +- `broadcast.enabled=true|false` +- `broadcast.api_key=` +- `forum.enabled=true|false` +- `forum.api_secret=` +- `commandblocker.enabled=true|false` +- `commandblocker.bypass.permission=commandblocker.bypass` -Jedes Modul besitzt Zugriff auf folgende Lifecycle-Methoden: +### `chat.yml` -- `onEnable(Plugin plugin)` -- `onDisable(Plugin plugin)` +Steuert die meisten Chat-Features: -Diese Methoden werden automatisch beim **Starten** bzw. **Stoppen** des Proxys aufgerufen. +- Kanäle (`channels`) +- Formate/Farben +- HelpOp +- Private Nachrichten +- Mute +- Emojis +- Reports +- Chatlog-Aufbewahrung +- Discord/Telegram +- Account-Linking +- Mentions +- Filter ---- +Wichtige Bereiche: -## 📝 Permissions Übersicht +- `default-channel` +- `channels.global/local/trade/staff` +- `private-messages` +- `reports` +- `chatlog` +- `discord` +- `telegram` +- `account-linking` +- `filter` -- `globalchat.mute` -- `globalchat.bypass` -- `globalchat.reload` -- `globalchat.clear` -- `commandblocker.admin` -- `commandblocker.bypass` +### `blocked-commands.yml` ---- +Liste blockierter Befehle für den CommandBlocker. +Kann komfortabel über `/cb` gepflegt werden. -## 🤝 Credits +## Typische Nutzung ---- +### Spieler verifizieren -## 📜 Lizenz & Nutzung +1. Spieler bekommt Token auf der Website. +2. Spieler nutzt `/verify ` im passenden Server. +3. Bei Erfolg ist der Account verifiziert. -Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen **nicht verändert, kopiert oder weiterverbreitet** werden. +### Team-Support -Jegliche Nutzung, Modifikation oder Weitergabe – ganz oder teilweise – ist **ausschließlich mit vorheriger schriftlicher Genehmigung** des Entwicklers gestattet. +1. Spieler nutzt `/helpop `. +2. Team mit passender Permission erhält die Nachricht. +3. Optional zusätzlich Weiterleitung an Discord/Telegram. + +### Reports bearbeiten + +1. Spieler erstellt Report über `/report`. +2. Team prüft Fälle über `/reports`. +3. Team schließt Fall mit `/reportclose `. + +### Discord-/Telegram-Link + +1. Spieler startet `/linkdiscord` oder `/linktelegram`. +2. Token innerhalb der Laufzeit an den Bot senden. +3. Nach erfolgreicher Verknüpfung werden externe Namen korrekt zugeordnet. + +## Fehlerbehebung + +### Befehl funktioniert nicht + +- Permission prüfen +- Schreibweise prüfen +- Proxy neu starten + +### Discord/Telegram-Nachrichten kommen nicht an + +- `enabled` in `chat.yml` prüfen +- Token, Channel-/Chat-ID prüfen +- Poll-Interval prüfen + +### `/verify` funktioniert nicht + +- `wp_verify_url` prüfen +- `server..id` prüfen +- `server..secret` prüfen +- Website/API erreichbar? + +### Forum-Benachrichtigungen fehlen + +- `forum.enabled` prüfen +- `forum.api_secret` prüfen +- `forum.wp_url` bzw. Basis-URL prüfen +- Login-Delay prüfen + +### Spieler können nicht schreiben + +- Mute aktiv? +- Kanal-Permission vorhanden? +- Chatfilter greift? -© Entwickelt von **M_Viper**. Alle Rechte vorbehalten. -