144 lines
4.7 KiB
Markdown
144 lines
4.7 KiB
Markdown
# StatusAPI
|
|
|
|

|
|

|
|
|
|
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.
|
|
|
|
## ⚡ 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
|
|
|
|
## 📥 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
|
|
|
|
## ⚙️ Konfiguration
|
|
|
|
Alle Haupt-Einstellungen werden in der `plugins/StatusAPI/verify.properties` zentral verwaltet.
|
|
|
|
### 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
|
|
|
|
# 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.<Name>=<Anzeigename> -> Wird im Chat und als Befehl genutzt
|
|
# - server.<Name>.id=<ID> -> WordPress Server ID
|
|
# - server.<Name>.secret=<Key> -> 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
|
|
|
|
# Beispiel: SkyBlock
|
|
server.skyblock=&dSkyBlock
|
|
server.skyblock.id=3
|
|
server.skyblock.secret=GeheimesWortFuerSkyBlock
|
|
```
|
|
|
|
### Weitere Dateien
|
|
|
|
- **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
|
|
|
|
Die meisten Befehle werden dynamisch basierend auf deiner `verify.properties` erstellt.
|
|
|
|
| Befehl | Beschreibung | Permission |
|
|
|--------|--------------|------------|
|
|
| `/verify <token>` | 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` |
|
|
| `/support <msg>` | Sendet eine Nachricht an das Online-Team | - |
|
|
| `/reply <msg>` | Antwortet auf eine Support-Anfrage | - |
|
|
| `/info` | Zeigt Plugin-Informationen an | - |
|
|
|
|
## 🌐 JSON API (Status)
|
|
|
|
Die API läuft unter `http://DEINE_IP:9191/`.
|
|
|
|
### Beispiel Request
|
|
```bash
|
|
curl http://127.0.0.1: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 modular aufgebaut. Du kannst eigene Module erstellen, ohne den Core-Code zu berühren.
|
|
|
|
### Beispiel
|
|
|
|
1. Erstelle eine Klasse, die `Module` implementiert
|
|
2. Registriere sie in der StatusAPI Hauptdatei:
|
|
```java
|
|
moduleManager.registerModule(new MeinModul());
|
|
```
|
|
|
|
3. Dein Modul hat Zugriff auf `onEnable` und `onDisable` des Haupt-Plugins
|
|
|
|
## 📝 Permissions
|
|
|
|
- `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
|
|
|
|
## 🤝 Credits
|
|
|
|
Entwickelt von **M_Viper**.
|
|
Unterstützt durch BungeeCord und LuckPerms Community.
|