README.md aktualisiert
This commit is contained in:
401
README.md
401
README.md
@@ -1,225 +1,284 @@
|
|||||||
# StatusAPI
|
# StatusAPI
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
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**
|
Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen nicht verändert, kopiert oder weiterverbreitet werden.
|
||||||
Aktiviere nur die Module, die du benötigst (Chat, Navigation, Verify, Security).
|
|
||||||
|
|
||||||
- **JSON Status API**
|
Jegliche Nutzung, Modifikation oder Weitergabe – ganz oder teilweise – ist ausschließlich mit vorheriger schriftlicher Genehmigung des Entwicklers gestattet.
|
||||||
Liefert Echtzeit-Serverdaten für Webseiten oder externe Dienste (Port `9191`).
|
|
||||||
|
|
||||||
- **Global Chat**
|
© Entwickelt von M_Viper. Alle Rechte vorbehalten.
|
||||||
Serverübergreifender Chat mit Badword-Filter, LuckPerms-Unterstützung und Logging.
|
|
||||||
|
|
||||||
- **Server Navigation**
|
## Inhaltsverzeichnis
|
||||||
Automatische Generierung von Server-Befehlen (z. B. `/survival` statt `/server survival`).
|
|
||||||
|
|
||||||
- **WordPress Verify**
|
1. [Features](#features)
|
||||||
Spieler-Verifizierung über WordPress (Token-basiert, CPT-kompatibel).
|
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)**
|
## Features
|
||||||
Zentrale Blockierung von Commands auf Netzwerkebene inkl. Admin-Bypass.
|
|
||||||
|
|
||||||
- **Auto-Updater**
|
- Mehrere Chat-Kanäle (z. B. Global, Local, Trade, Staff)
|
||||||
Prüft automatisch auf Updates und lädt diese herunter.
|
- 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**
|
## Voraussetzungen
|
||||||
Persistente Speicherung von Chat-Nachrichten mit automatischer Bereinigung.
|
|
||||||
|
|
||||||
---
|
- 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`
|
1. Plugin-JAR in den Plugin-Ordner deines BungeeCord-Proxys legen.
|
||||||
2. Lege sie in den `plugins/` Ordner deiner BungeeCord-Installation
|
2. Proxy starten (Dateien werden automatisch erstellt).
|
||||||
3. Starte den Proxy neu
|
3. Proxy stoppen.
|
||||||
4. Alle Konfigurationsdateien werden automatisch erstellt
|
4. Konfiguration anpassen:
|
||||||
|
- `plugins/StatusAPI/verify.properties`
|
||||||
|
- `plugins/StatusAPI/chat.yml`
|
||||||
|
- `plugins/StatusAPI/blocked-commands.yml` (optional)
|
||||||
|
5. Proxy neu starten.
|
||||||
|
|
||||||
---
|
## Schnellstart
|
||||||
|
|
||||||
## ⚙️ Konfiguration
|
1. In `verify.properties` Port und Verify-/Forum-Daten setzen.
|
||||||
|
2. In `chat.yml` Kanäle, Formate und Rechte prüfen.
|
||||||
Alle Hauptmodule werden zentral über
|
3. Discord/Telegram nur aktivieren, wenn Token und IDs korrekt sind.
|
||||||
`plugins/StatusAPI/verify.properties` gesteuert.
|
4. Mit Test-Account prüfen:
|
||||||
|
- `/channel`
|
||||||
### verify.properties
|
- `/msg`
|
||||||
|
- `/report`
|
||||||
```properties
|
- `/helpop`
|
||||||
# ===========================
|
- `/chatreload`
|
||||||
# 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.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Befehle
|
## Befehle
|
||||||
|
|
||||||
| Befehl | Beschreibung | Permission |
|
### Verifizierung und Forum
|
||||||
|------|-------------|------------|
|
|
||||||
| `/cb add <command>` | Blockiert einen Command | `commandblocker.admin` |
|
|
||||||
| `/cb remove <command>` | Entfernt einen Block | `commandblocker.admin` |
|
|
||||||
| `/cb list` | Zeigt alle blockierten Commands | `commandblocker.admin` |
|
|
||||||
| `/cb reload` | Lädt die YAML neu | `commandblocker.admin` |
|
|
||||||
|
|
||||||
---
|
| Befehl | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `/verify <token>` | Verifiziert den Spieler gegen die Website. |
|
||||||
|
| `/forumlink <token>` | 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 <nachricht>` | Hilfeanfrage an das Team senden. |
|
||||||
|
| `/msg <spieler> <nachricht>` | Private Nachricht senden. |
|
||||||
|
| `/r <nachricht>` | Auf letzte private Nachricht antworten. |
|
||||||
|
| `/ignore <spieler>` | Spieler ignorieren. |
|
||||||
|
| `/unignore <spieler>` | 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
|
### Team und Moderation
|
||||||
commandblocker.bypass
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
| Befehl | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `/chatmute <spieler> [minuten]` | Spieler stummschalten. |
|
||||||
|
| `/chatunmute <spieler>` | Stummschaltung aufheben. |
|
||||||
|
| `/broadcast <nachricht>` | Nachricht an alle Spieler senden. |
|
||||||
|
| `/socialspy` | Private Nachrichten mitlesen. |
|
||||||
|
| `/chatreload` | Chat-Konfiguration neu laden. |
|
||||||
|
| `/chatinfo <spieler>` | Chat-Informationen zu einem Spieler. |
|
||||||
|
| `/chathist [spieler] [anzahl]` | Chat-History anzeigen. |
|
||||||
|
|
||||||
## 💻 Allgemeine Befehle
|
### Reports
|
||||||
|
|
||||||
| Befehl | Beschreibung | Permission |
|
| Befehl | Beschreibung |
|
||||||
|------|-------------|------------|
|
|---|---|
|
||||||
| `/verify <token>` | WordPress-Verifizierung | - |
|
| `/report <spieler> <grund>` | Spieler melden. |
|
||||||
| `/globalmute` | Globalen Chat sperren | `globalchat.mute` |
|
| `/reports [all]` | Offene oder alle Reports anzeigen. |
|
||||||
| `/globalreload` | Config neu laden | `globalchat.reload` |
|
| `/reportclose <id>` | Report schließen. |
|
||||||
| `/clearchat`, `/cc` | Chat leeren | `globalchat.clear` |
|
|
||||||
| `/togglechat` | Chat lokal deaktivieren | - |
|
|
||||||
| `/support <msg>` | Support-Anfrage senden | - |
|
|
||||||
| `/reply <msg>` | Auf Support antworten | - |
|
|
||||||
| `/info` | Plugin-Infos anzeigen | - |
|
|
||||||
|
|
||||||
---
|
### CommandBlocker
|
||||||
|
|
||||||
## 🌐 JSON API
|
| Befehl | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `/cb add <command>` | Befehl blockieren. |
|
||||||
|
| `/cb remove <command>` | Blockierung aufheben. |
|
||||||
|
| `/cb list` | Blockierte Befehle anzeigen. |
|
||||||
|
| `/cb reload` | CommandBlocker neu laden. |
|
||||||
|
|
||||||
**Endpoint:**
|
### Account-Linking
|
||||||
```yaml
|
|
||||||
http://DEINE_IP:9191/
|
|
||||||
```
|
|
||||||
|
|
||||||
|
| Befehl | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `/linkdiscord` | Link-Code für Discord erzeugen. |
|
||||||
|
| `/linktelegram` | Link-Code für Telegram erzeugen. |
|
||||||
|
| `/unlink <discord\|telegram\|all>` | Verknüpfung lösen. |
|
||||||
|
|
||||||
### Beispiel-Antwort
|
## Permissions
|
||||||
|
|
||||||
```json
|
Wichtige Rechte (Auszug):
|
||||||
{
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
| 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
|
Wichtige Schlüssel:
|
||||||
2. Optional zusätzlich `Listener` implementieren
|
|
||||||
3. Registrierung im Core (z. B. im ModuleManager):
|
|
||||||
|
|
||||||
```java
|
- `statusapi.port=9191`
|
||||||
moduleManager.registerModule(new MeinModul());
|
- `wp_verify_url=https://deine-domain.tld`
|
||||||
```
|
- `server.<Name>.id=<nummer>`
|
||||||
### Modul-Lifecycle
|
- `server.<Name>.secret=<secret>`
|
||||||
|
- `broadcast.enabled=true|false`
|
||||||
|
- `broadcast.api_key=<key>`
|
||||||
|
- `forum.enabled=true|false`
|
||||||
|
- `forum.api_secret=<key>`
|
||||||
|
- `commandblocker.enabled=true|false`
|
||||||
|
- `commandblocker.bypass.permission=commandblocker.bypass`
|
||||||
|
|
||||||
Jedes Modul besitzt Zugriff auf folgende Lifecycle-Methoden:
|
### `chat.yml`
|
||||||
|
|
||||||
- `onEnable(Plugin plugin)`
|
Steuert die meisten Chat-Features:
|
||||||
- `onDisable(Plugin plugin)`
|
|
||||||
|
|
||||||
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`
|
### `blocked-commands.yml`
|
||||||
- `globalchat.bypass`
|
|
||||||
- `globalchat.reload`
|
|
||||||
- `globalchat.clear`
|
|
||||||
- `commandblocker.admin`
|
|
||||||
- `commandblocker.bypass`
|
|
||||||
|
|
||||||
---
|
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 <token>` 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 <text>`.
|
||||||
|
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 <ID>`.
|
||||||
|
|
||||||
|
### 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.<Name>.id` prüfen
|
||||||
|
- `server.<Name>.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.
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user