Files
StatusAPI/README.md
2026-01-18 16:08:28 +00:00

226 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# StatusAPI
![Build Status](https://img.shields.io/badge/build-passing-brightgreen)
![Version](https://img.shields.io/badge/version-4.0.6-blue)
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.