226 lines
5.3 KiB
Markdown
226 lines
5.3 KiB
Markdown
# StatusAPI
|
||
|
||

|
||

|
||
|
||
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 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 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 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.
|
||
|
||
---
|
||
|
||
## Befehle
|
||
|
||
| Befehl | Beschreibung | Permission |
|
||
|------|-------------|------------|
|
||
| `/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` |
|
||
|
||
---
|
||
|
||
## Bypass
|
||
|
||
Spieler mit folgender Permission umgehen den CommandBlocker vollständig:
|
||
|
||
```yaml
|
||
commandblocker.bypass
|
||
```
|
||
|
||
---
|
||
|
||
## 💻 Allgemeine Befehle
|
||
|
||
| Befehl | Beschreibung | Permission |
|
||
|------|-------------|------------|
|
||
| `/verify <token>` | 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 <msg>` | Support-Anfrage senden | - |
|
||
| `/reply <msg>` | Auf Support antworten | - |
|
||
| `/info` | Plugin-Infos anzeigen | - |
|
||
|
||
---
|
||
|
||
## 🌐 JSON API
|
||
|
||
**Endpoint:**
|
||
```yaml
|
||
http://DEINE_IP: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 vollständig modular aufgebaut und erlaubt die einfache Erweiterung um eigene Module, ohne den Core-Code zu verändern.
|
||
|
||
---
|
||
|
||
### Eigenes Modul erstellen
|
||
|
||
1. Klasse implementiert das `Module`-Interface
|
||
2. Optional zusätzlich `Listener` implementieren
|
||
3. Registrierung im Core (z. B. im ModuleManager):
|
||
|
||
```java
|
||
moduleManager.registerModule(new MeinModul());
|
||
```
|
||
### Modul-Lifecycle
|
||
|
||
Jedes Modul besitzt Zugriff auf folgende Lifecycle-Methoden:
|
||
|
||
- `onEnable(Plugin plugin)`
|
||
- `onDisable(Plugin plugin)`
|
||
|
||
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
|
||
|
||
---
|
||
|
||
## 📜 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.
|
||
|