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

|
<p align="center">
|
||||||

|
<img src="https://img.shields.io/badge/Version-4.1.0-0B63CE?style=for-the-badge" />
|
||||||

|
<img src="https://img.shields.io/badge/Platform-BungeeCord-D48700?style=for-the-badge" />
|
||||||

|
<img src="https://img.shields.io/badge/Minecraft-1.20+-1E9E5A?style=for-the-badge" />
|
||||||

|
<img src="https://img.shields.io/badge/Java-8+-C0392B?style=for-the-badge" />
|
||||||
|
</p>
|
||||||
|
|
||||||
StatusAPI ist ein modulares BungeeCord-Plugin für Netzwerkbetrieb, Moderation und Integrationen.
|
<p align="center">
|
||||||
Der Fokus liegt auf Live-Status, Chat/Support, Verifizierung, Forum-Bridge, Broadcasts und Network-Guard mit AntiBot.
|
Modulares BungeeCord-Plugin für Netzwerkbetrieb, Moderation und Integrationen.<br>
|
||||||
|
Live-Status · Chat & Support · Verifizierung · Forum-Bridge · Broadcasts · AntiBot · BackendJoinGuard
|
||||||
|
</p>
|
||||||
|
|
||||||
## Rechtlicher Hinweis
|
---
|
||||||
|
|
||||||
Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen nicht verändert, kopiert oder weiterverbreitet werden.
|
> **Rechtlicher Hinweis**
|
||||||
Jegliche Nutzung, Modifikation oder Weitergabe, ganz oder teilweise, ist ausschließlich mit vorheriger schriftlicher Genehmigung des Entwicklers gestattet.
|
> Dieses Projekt sowie alle enthaltenen Module, Quelltexte und Ressourcen dürfen nicht verändert, kopiert oder weiterverbreitet werden. Jegliche Nutzung, Modifikation oder Weitergabe ist ausschließlich mit vorheriger schriftlicher Genehmigung des Entwicklers gestattet.
|
||||||
© Entwickelt von M_Viper. Alle Rechte vorbehalten.
|
> © Entwickelt von M_Viper. Alle Rechte vorbehalten.
|
||||||
|
|
||||||
## Was das Plugin kann
|
---
|
||||||
|
|
||||||
### Core und API
|
## Übersicht
|
||||||
|
|
||||||
- Eigener HTTP-Server über konfigurierbaren Port
|
Dieses Repository enthält zwei aufeinander abgestimmte Plugins:
|
||||||
|
|
||||||
|
| Plugin | Plattform | Zweck |
|
||||||
|
|---|---|---|
|
||||||
|
| **StatusAPI** | BungeeCord (Proxy) | HTTP-API, AntiBot, Chat, Moderation, Verify, Forum |
|
||||||
|
| **BackendJoinGuard** | Paper / Spigot (Backend) | Verhindert Direktjoins am Proxy vorbei |
|
||||||
|
|
||||||
|
BackendJoinGuard kann eigenständig betrieben werden oder seine Schutzregeln automatisch per Sync von StatusAPI beziehen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Inhaltsverzeichnis
|
||||||
|
|
||||||
|
- [StatusAPI](#statusapi-1)
|
||||||
|
- [Module](#module)
|
||||||
|
- [HTTP API](#http-api)
|
||||||
|
- [Commands](#commands-statusapi)
|
||||||
|
- [Permissions](#permissions-statusapi)
|
||||||
|
- [Konfiguration](#konfiguration-statusapi)
|
||||||
|
- [BackendJoinGuard](#backendjoinguard-1)
|
||||||
|
- [Betriebsarten](#betriebsarten)
|
||||||
|
- [Commands & Permissions](#commands--permissions-backendjoinguard)
|
||||||
|
- [Konfiguration](#konfiguration-backendjoinguard)
|
||||||
|
- [Voraussetzungen & Installation](#voraussetzungen--installation)
|
||||||
|
- [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## StatusAPI
|
||||||
|
|
||||||
|
### Module
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Core & HTTP-API</strong></summary>
|
||||||
|
|
||||||
|
- Eigener HTTP-Server über konfigurierbaren Port (`statusapi.port`, Standard: `9191`)
|
||||||
- JSON-Statusausgabe mit Spieler-, Prefix-, Bedrock-, Netzwerk- und Systemdaten
|
- JSON-Statusausgabe mit Spieler-, Prefix-, Bedrock-, Netzwerk- und Systemdaten
|
||||||
- POST-Endpunkte für Broadcast, Broadcast-Abbruch, Forum-Notify und Attack-Events
|
- POST-Endpunkte für Broadcast, Broadcast-Abbruch, Forum-Notify und Attack-Events
|
||||||
|
|
||||||
### NetworkInfo Modul
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>NetworkInfo</strong></summary>
|
||||||
|
|
||||||
- Live-Snapshot für Proxy, Uptime, RAM, CPU, Backends und Ping
|
- Live-Snapshot für Proxy, Uptime, RAM, CPU, Backends und Ping
|
||||||
- Ingame-Befehl für Statusprüfung
|
- Ingame-Befehl `/netinfo` für Statusprüfung
|
||||||
- Discord-Webhook-Meldungen für:
|
- Discord-Webhook-Meldungen bei: Server-Start/-Stop, hoher RAM-/Spieler-Auslastung, Attack Detected/Stopped
|
||||||
- Start und Stop
|
- Embed-Modus konfigurierbar: `compact` oder `detailed`
|
||||||
- hohe RAM-Auslastung
|
|
||||||
- hohe Spieler-Auslastung
|
|
||||||
- Attack Detected und Attack Stopped
|
|
||||||
- Embed-Modus über Konfiguration:
|
|
||||||
- compact
|
|
||||||
- detailed
|
|
||||||
|
|
||||||
### AntiBot Modul
|
</details>
|
||||||
|
|
||||||
- CPS-basierte Attack-Erkennung mit Start- und Stop-Schwellen
|
<details>
|
||||||
|
<summary><strong>AntiBot</strong></summary>
|
||||||
|
|
||||||
|
- CPS-basierte Attack-Erkennung mit konfigurierbaren Start- und Stop-Schwellen
|
||||||
- Pro-IP Rate-Limit mit temporären IP-Blocks
|
- Pro-IP Rate-Limit mit temporären IP-Blocks
|
||||||
- Optionaler VPN/Proxy/Hosting-Check über ip-api
|
- Optionaler VPN/Proxy/Hosting-Check via ip-api
|
||||||
- Profile strict und high-traffic
|
- Profile: `strict` und `high-traffic`
|
||||||
- Laufzeitverwaltung per Command:
|
- Laufzeitverwaltung über `/antibot` (Status, Blocks leeren, IP entblocken, Profil wechseln, Reload)
|
||||||
- Status anzeigen
|
|
||||||
- Blocks leeren
|
|
||||||
- einzelne IP entblocken
|
|
||||||
- Profil wechseln und speichern
|
|
||||||
- Konfiguration neu laden
|
|
||||||
|
|
||||||
### Chat und Moderation
|
</details>
|
||||||
|
|
||||||
- Mehrere Chat-Kanäle
|
<details>
|
||||||
- PM-System mit Reply
|
<summary><strong>Chat & Moderation</strong></summary>
|
||||||
- Ignore-System
|
|
||||||
- Mute und Unmute
|
- Mehrere Chat-Kanäle, PM-System mit Reply, Ignore-System
|
||||||
- Mentions
|
- Mute/Unmute, Mentions, Emoji-Unterstützung, SocialSpy
|
||||||
- Emoji-Unterstützung
|
|
||||||
- SocialSpy
|
|
||||||
- Chat-History und Admin-Infos
|
- Chat-History und Admin-Infos
|
||||||
- Report-System inklusive Close-Flow
|
- Report-System inkl. Close-Flow
|
||||||
- Weiterleitung an Discord und Telegram (konfigurierbar)
|
- Weiterleitung an Discord und Telegram (konfigurierbar)
|
||||||
|
|
||||||
### Verify, Forum und CommandBlocker
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><strong>Verify, Forum & CommandBlocker</strong></summary>
|
||||||
|
|
||||||
- Spieler-Verifizierung über Token
|
- Spieler-Verifizierung über Token
|
||||||
- Forum-Linking und Forum-Benachrichtigungen im Spiel
|
- Forum-Linking und Forum-Benachrichtigungen ingame
|
||||||
- Command-Blocker mit /cb Verwaltung
|
- Command-Blocker mit `/cb`-Verwaltung
|
||||||
|
|
||||||
### AutoMessage und CustomCommands
|
</details>
|
||||||
|
|
||||||
- Rotierende Auto-Nachrichten aus Datei (intervallgesteuert)
|
<details>
|
||||||
|
<summary><strong>AutoMessage & CustomCommands</strong></summary>
|
||||||
|
|
||||||
|
- Rotierende Auto-Nachrichten aus `messages.txt` (intervallgesteuert)
|
||||||
- Eigene Command-Mappings über `customcommands.yml`
|
- Eigene Command-Mappings über `customcommands.yml`
|
||||||
- Optionaler `/chat`-Command (steuerbar per Konfiguration)
|
- Optionaler `/chat`-Command (steuerbar per Konfiguration)
|
||||||
- Reload der CustomCommands über `/bcmds`
|
- Reload via `/bcmds`
|
||||||
|
|
||||||
## Voraussetzungen
|
</details>
|
||||||
|
|
||||||
- BungeeCord Proxy
|
---
|
||||||
- Minecraft 1.20+
|
|
||||||
- Java 8+
|
|
||||||
- Optional:
|
|
||||||
- LuckPerms
|
|
||||||
- Geyser-BungeeCord
|
|
||||||
- Discord Webhook/Bot
|
|
||||||
- Telegram Bot
|
|
||||||
- WordPress/Forum-Backend
|
|
||||||
|
|
||||||
## Installation
|
### HTTP API
|
||||||
|
|
||||||
1. JAR nach plugins kopieren.
|
Basis-URL: `http://<proxy-ip>:9191` – Port konfigurierbar über `statusapi.port`.
|
||||||
2. Proxy starten, damit Dateien erzeugt werden.
|
|
||||||
3. Proxy stoppen.
|
|
||||||
4. Konfigurationen anpassen:
|
|
||||||
- plugins/StatusAPI/verify.properties
|
|
||||||
- plugins/StatusAPI/chat.yml
|
|
||||||
- plugins/StatusAPI/network-guard.properties
|
|
||||||
- plugins/StatusAPI/blocked-commands.yml
|
|
||||||
5. Proxy neu starten.
|
|
||||||
|
|
||||||
## HTTP API
|
| Methode | Pfad | Beschreibung | Auth |
|
||||||
|
|
||||||
Standard-Port ist 9191 und wird über statusapi.port gesetzt.
|
|
||||||
|
|
||||||
| Methode | Pfad | Zweck | Auth |
|
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| GET | / | Voller Status als JSON | keine |
|
| `GET` | `/` | Voller Netzwerk-Status als JSON | – |
|
||||||
| POST | /broadcast | Broadcast senden oder planen | x-api-key aus Broadcast-Konfiguration |
|
| `POST` | `/broadcast` | Broadcast senden oder planen | `x-api-key` |
|
||||||
| POST | /broadcast/cancel | Geplanten Broadcast abbrechen | x-api-key |
|
| `POST` | `/broadcast/cancel` | Geplanten Broadcast abbrechen | `x-api-key` |
|
||||||
| POST | /cancel | Alias für broadcast/cancel | x-api-key |
|
| `POST` | `/cancel` | Alias für `/broadcast/cancel` | `x-api-key` |
|
||||||
| POST | /forum/notify | Forum-Notification an Proxy | x-api-key bzw. Forum-Secret-Flow |
|
| `POST` | `/forum/notify` | Forum-Notification an Proxy | `x-api-key` / Forum-Secret |
|
||||||
| POST | /network/attack | Attack Detected/Stopped an Discord-Webhook melden | x-api-key aus networkinfo.attack.api_key |
|
| `POST` | `/network/attack` | Attack-Event an Discord-Webhook melden | `x-api-key` |
|
||||||
|
| `GET` | `/network/backendguard/config` | Guard-Regeln für BackendJoinGuard Sync | `x-api-key` |
|
||||||
|
|
||||||
## Commands
|
---
|
||||||
|
|
||||||
### Netzwerk und Schutz
|
### Commands (StatusAPI)
|
||||||
|
|
||||||
|
#### Netzwerk & Schutz
|
||||||
|
|
||||||
| Command | Beschreibung |
|
| Command | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
| /netinfo | Zeigt Netzwerk- und Systemstatus |
|
| `/netinfo` | Netzwerk- und Systemstatus anzeigen |
|
||||||
| /antibot status | Zeigt AntiBot Status |
|
| `/antibot status` | AntiBot-Status anzeigen |
|
||||||
| /antibot clearblocks | Entfernt aktive IP-Blocks |
|
| `/antibot clearblocks` | Alle aktiven IP-Blocks entfernen |
|
||||||
| /antibot unblock <ip> | Entblockt eine IP |
|
| `/antibot unblock <ip>` | Einzelne IP entblocken |
|
||||||
| /antibot profile <strict\|high-traffic> | Wechselt Profil und speichert Werte |
|
| `/antibot profile <strict\|high-traffic>` | Profil wechseln und speichern |
|
||||||
| /antibot reload | Lädt AntiBot-Konfiguration neu |
|
| `/antibot reload` | AntiBot-Konfiguration neu laden |
|
||||||
|
|
||||||
### Verify und Forum
|
#### Verify & Forum
|
||||||
|
|
||||||
| Command | Beschreibung |
|
| Command | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
| /verify <token> | Verifiziert den Account |
|
| `/verify <token>` | Account verifizieren |
|
||||||
| /forumlink <token> | Verknüpft Account mit Forum |
|
| `/forumlink <token>` | Account mit Forum verknüpfen |
|
||||||
| /forum | Zeigt Forum-Benachrichtigungen |
|
| `/forum` | Forum-Benachrichtigungen anzeigen |
|
||||||
|
|
||||||
### Chat, Support und Moderation
|
#### Chat, Support & Moderation
|
||||||
|
|
||||||
| Command | Beschreibung |
|
| Command | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
| /channel [kanal] | Kanal wechseln oder Liste zeigen |
|
| `/channel [kanal]` | Kanal wechseln oder Liste anzeigen |
|
||||||
| /helpop <text> | Support-Anfrage an Team |
|
| `/helpop <text>` | Support-Anfrage an Team |
|
||||||
| /msg <spieler> <text> | Private Nachricht |
|
| `/msg <spieler> <text>` | Private Nachricht senden |
|
||||||
| /r <text> | Antwort auf letzte PM |
|
| `/r <text>` | Auf letzte PM antworten |
|
||||||
| /ignore <spieler> | Spieler ignorieren |
|
| `/ignore <spieler>` | Spieler ignorieren |
|
||||||
| /unignore <spieler> | Ignore entfernen |
|
| `/unignore <spieler>` | Ignore entfernen |
|
||||||
| /chatmute <spieler> [minuten] | Spieler muten |
|
| `/chatmute <spieler> [minuten]` | Spieler muten |
|
||||||
| /chatunmute <spieler> | Mute aufheben |
|
| `/chatunmute <spieler>` | Mute aufheben |
|
||||||
| /chataus | Chat-Empfang toggeln |
|
| `/chataus` | Chat-Empfang toggeln |
|
||||||
| /broadcast <text> | Broadcast an alle |
|
| `/broadcast <text>` | Broadcast an alle senden |
|
||||||
| /emoji | Emoji-Liste |
|
| `/emoji` | Emoji-Liste anzeigen |
|
||||||
| /socialspy | PMs mitlesen |
|
| `/socialspy` | PMs mitlesen toggeln |
|
||||||
| /chatreload | Chat-Konfig neu laden |
|
| `/chatreload` | Chat-Konfiguration neu laden |
|
||||||
| /chatinfo <spieler> | Admin-Infos zu Spieler |
|
| `/chatinfo <spieler>` | Admin-Infos zu einem Spieler |
|
||||||
| /chathist [spieler] [anzahl] | Chat-History |
|
| `/chathist [spieler] [anzahl]` | Chat-History anzeigen |
|
||||||
| /mentions | Mention-Benachrichtigungen toggeln |
|
| `/mentions` | Mention-Benachrichtigungen toggeln |
|
||||||
| /chatbypass | Nächste Nachricht Plugin-bypass |
|
| `/chatbypass` | Nächste Nachricht am Plugin vorbei senden |
|
||||||
| /discordlink, /dlink | Discord-Linktoken erstellen |
|
| `/discordlink`, `/dlink` | Discord-Linktoken erstellen |
|
||||||
| /telegramlink, /tlink | Telegram-Linktoken erstellen |
|
| `/telegramlink`, `/tlink` | Telegram-Linktoken erstellen |
|
||||||
| /unlink <discord\|telegram\|all> | Verknüpfung aufheben |
|
| `/unlink <discord\|telegram\|all>` | Verknüpfung aufheben |
|
||||||
| /report <spieler> <grund> | Spieler melden |
|
| `/report <spieler> <grund>` | Spieler melden |
|
||||||
| /reports [all] | Reports ansehen |
|
| `/reports [all]` | Reports ansehen |
|
||||||
| /reportclose <id> | Report schließen |
|
| `/reportclose <id>` | Report schließen |
|
||||||
|
|
||||||
### CommandBlocker
|
#### CommandBlocker
|
||||||
|
|
||||||
| Command | Beschreibung |
|
| Command | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
| /cb add <command> | Command blockieren |
|
| `/cb add <command>` | Command blockieren |
|
||||||
| /cb remove <command> | Blockierung aufheben |
|
| `/cb remove <command>` | Blockierung aufheben |
|
||||||
| /cb list | Blockierte Commands anzeigen |
|
| `/cb list` | Alle blockierten Commands anzeigen |
|
||||||
| /cb reload | CommandBlocker neu laden |
|
| `/cb reload` | CommandBlocker neu laden |
|
||||||
|
|
||||||
### CustomCommands
|
#### CustomCommands
|
||||||
|
|
||||||
| Command | Beschreibung |
|
| Command | Beschreibung |
|
||||||
|---|---|
|
|---|---|
|
||||||
| /bcmds | Lädt `customcommands.yml` neu |
|
| `/bcmds` | `customcommands.yml` neu laden |
|
||||||
| /chat <text> | Sendet Text als Chat oder führt Slash-Command aus (falls aktiviert) |
|
| `/chat <text>` | Text als Chat senden oder Slash-Command ausführen |
|
||||||
|
|
||||||
# Verfügbare Permissions
|
---
|
||||||
|
|
||||||
| Permission | Beschreibung |
|
### Permissions (StatusAPI)
|
||||||
|---------------------------|----------------------------------------------------------|
|
|
||||||
| statusapi.update.notify | Erlaubt Update-Benachrichtigungen |
|
|
||||||
| statusapi.netinfo | Zugriff auf /netinfo |
|
|
||||||
| statusapi.antibot | Zugriff auf /antibot |
|
|
||||||
| statusapi.automessage | Zugriff auf /automessage reload |
|
|
||||||
| statusapi.bcmds | Zugriff auf bestimmte CustomCommand-Funktionen |
|
|
||||||
| chat.channel.local | Zugang zum Local-Kanal |
|
|
||||||
| chat.channel.trade | Zugang zum Trade-Kanal |
|
|
||||||
| chat.channel.staff | Zugang zum Staff-Kanal |
|
|
||||||
| chat.helpop.receive | HelpOp-Nachrichten empfangen |
|
|
||||||
| chat.mute | Spieler muten / unmuten |
|
|
||||||
| chat.broadcast | Broadcast-Nachrichten senden |
|
|
||||||
| chat.socialspy | Private Nachrichten mitlesen |
|
|
||||||
| chat.admin.bypass | Admin-Bypass (kann nicht geblockt/gemutet werden) |
|
|
||||||
| chat.admin.notify | Benachrichtigungen über Mutes und Blocks erhalten |
|
|
||||||
| chat.report | Spieler reporten (/report) |
|
|
||||||
| chat.color | Farbcodes (&a, &b, ...) im Chat nutzen |
|
|
||||||
| chat.color.format | Formatierungen (&l, &o, &n, ...) im Chat nutzen |
|
|
||||||
| chat.filter.bypass | Chat-Filter (Anti-Spam, Caps, Blacklist) umgehen |
|
|
||||||
| commandblocker.bypass | Command-Blocker umgehen |
|
|
||||||
| commandblocker.admin | CommandBlocker verwalten (/cb) |
|
|
||||||
|
|
||||||
|
| Permission | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `statusapi.update.notify` | Update-Benachrichtigungen empfangen |
|
||||||
|
| `statusapi.netinfo` | Zugriff auf `/netinfo` |
|
||||||
|
| `statusapi.antibot` | Zugriff auf `/antibot` |
|
||||||
|
| `statusapi.automessage` | Zugriff auf `/automessage reload` |
|
||||||
|
| `statusapi.bcmds` | Zugriff auf CustomCommand-Funktionen |
|
||||||
|
| `chat.channel.local` | Zugang zum Local-Kanal |
|
||||||
|
| `chat.channel.trade` | Zugang zum Trade-Kanal |
|
||||||
|
| `chat.channel.staff` | Zugang zum Staff-Kanal |
|
||||||
|
| `chat.helpop.receive` | HelpOp-Nachrichten empfangen |
|
||||||
|
| `chat.mute` | Spieler muten / unmuten |
|
||||||
|
| `chat.broadcast` | Broadcasts senden |
|
||||||
|
| `chat.socialspy` | Private Nachrichten mitlesen |
|
||||||
|
| `chat.admin.bypass` | Nicht mutbar / nicht blockierbar |
|
||||||
|
| `chat.admin.notify` | Benachrichtigungen über Mutes und Blocks |
|
||||||
|
| `chat.report` | Spieler reporten (`/report`) |
|
||||||
|
| `chat.color` | Farbcodes (`&a`, `&b`, …) im Chat nutzen |
|
||||||
|
| `chat.color.format` | Formatierungen (`&l`, `&o`, `&n`, …) im Chat nutzen |
|
||||||
|
| `chat.filter.bypass` | Anti-Spam, Caps und Blacklist umgehen |
|
||||||
|
| `commandblocker.bypass` | Command-Blocker umgehen |
|
||||||
|
| `commandblocker.admin` | CommandBlocker verwalten (`/cb`) |
|
||||||
|
|
||||||
## Wichtige Konfigurationen
|
---
|
||||||
|
|
||||||
### verify.properties
|
### Konfiguration (StatusAPI)
|
||||||
|
|
||||||
Core, Verify, Broadcast, Forum und Port.
|
#### `verify.properties` – Core, Verify, Broadcast, Forum, Port
|
||||||
|
|
||||||
Typische Schlüssel:
|
```properties
|
||||||
|
statusapi.port=9191
|
||||||
|
wp_verify_url=https://deine-domain.tld
|
||||||
|
server.<Name>.id=<id>
|
||||||
|
server.<Name>.secret=<secret>
|
||||||
|
broadcast.enabled=true
|
||||||
|
broadcast.api_key=<key>
|
||||||
|
forum.enabled=true
|
||||||
|
forum.api_secret=<key>
|
||||||
|
automessage.enabled=true
|
||||||
|
automessage.interval=300
|
||||||
|
automessage.file=messages.txt
|
||||||
|
automessage.prefix=&8[&bInfo&8]
|
||||||
|
```
|
||||||
|
|
||||||
- statusapi.port=9191
|
#### `network-guard.properties` – NetworkInfo, Webhook, AntiBot, BackendJoinGuard
|
||||||
- wp_verify_url=https://deine-domain.tld
|
|
||||||
- server.<Name>.id=<id>
|
|
||||||
- server.<Name>.secret=<secret>
|
|
||||||
- broadcast.enabled=true
|
|
||||||
- broadcast.api_key=<key>
|
|
||||||
- forum.enabled=true
|
|
||||||
- forum.api_secret=<key>
|
|
||||||
- automessage.enabled=true
|
|
||||||
- automessage.interval=300
|
|
||||||
- automessage.file=messages.txt
|
|
||||||
- automessage.prefix=&8[&bInfo&8]
|
|
||||||
|
|
||||||
### network-guard.properties
|
```properties
|
||||||
|
networkinfo.enabled=true
|
||||||
|
networkinfo.webhook.enabled=true
|
||||||
|
networkinfo.webhook.url=<discord_webhook>
|
||||||
|
networkinfo.webhook.embed_mode=detailed
|
||||||
|
networkinfo.attack.api_key=<attack_api_key>
|
||||||
|
|
||||||
NetworkInfo, Webhook, Attack-API und AntiBot.
|
antibot.enabled=true
|
||||||
|
antibot.profile=high-traffic
|
||||||
|
|
||||||
Typische Schlüssel:
|
backendguard.enforcement_enabled=true
|
||||||
|
backendguard.log_blocked_attempts=true
|
||||||
|
backendguard.kick_message=&cBitte verbinde dich nur ueber den Proxy-Server.
|
||||||
|
backendguard.allowed_proxy_ips=127.0.0.1,::1
|
||||||
|
backendguard.allowed_proxy_cidrs=10.0.0.0/24
|
||||||
|
backendguard.sync.api_key=<sync_key>
|
||||||
|
```
|
||||||
|
|
||||||
- networkinfo.enabled=true
|
#### Weitere Konfigurationsdateien
|
||||||
- networkinfo.webhook.enabled=true
|
|
||||||
- networkinfo.webhook.url=<discord_webhook>
|
|
||||||
- networkinfo.webhook.embed_mode=detailed
|
|
||||||
- networkinfo.attack.api_key=<attack_api_key>
|
|
||||||
- antibot.enabled=true
|
|
||||||
- antibot.profile=high-traffic
|
|
||||||
|
|
||||||
### chat.yml
|
| Datei | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| `chat.yml` | Kanäle, Formate, PM, Reports, Filter, Logging, Discord/Telegram, Linking |
|
||||||
|
| `blocked-commands.yml` | Liste der geblockten Commands |
|
||||||
|
| `customcommands.yml` | Eigene Befehle, Aliase, Sender-Typen |
|
||||||
|
| `messages.txt` | AutoMessage-Texte (Zeilen mit `#` und Leerzeilen werden ignoriert) |
|
||||||
|
|
||||||
Chat-Kanäle, Formate, PM, Reports, Filter, Logging, Discord/Telegram, Account-Linking.
|
---
|
||||||
|
|
||||||
### blocked-commands.yml
|
## BackendJoinGuard
|
||||||
|
|
||||||
Liste der geblockten Commands für CommandBlocker.
|
BackendJoinGuard verhindert, dass Spieler Backend-Server direkt betreten und damit den Proxy-Schutz umgehen. Das Plugin prüft beim Login die Quell-IP – nur konfigurierte Proxy-IPs oder CIDR-Netze werden durchgelassen.
|
||||||
|
|
||||||
### customcommands.yml
|
> **Wichtig:** BackendJoinGuard kommt auf **jeden Backend-Server**, nicht auf den Proxy.
|
||||||
|
|
||||||
Konfiguration für eigene Befehle, Aliase, Sender-Typen und Command-Listen.
|
---
|
||||||
|
|
||||||
## AutoMessage Datei
|
### Betriebsarten
|
||||||
|
|
||||||
Nachrichten für das AutoMessage-Modul liegen standardmäßig in `messages.txt`.
|
| Modus | Beschreibung |
|
||||||
Leere Zeilen und Zeilen mit `#` werden ignoriert.
|
|---|---|
|
||||||
|
| **Standalone** | Nutzt ausschließlich die lokale `config.yml` |
|
||||||
|
| **StatusAPI Sync** | Lädt Schutzregeln regelmäßig von StatusAPI; lokale Werte bleiben als Fallback erhalten |
|
||||||
|
|
||||||
## StatusPulse Companion (WordPress)
|
---
|
||||||
|
|
||||||
Im Repository liegt zusätzlich ein WordPress-Admin-Companion unter wordpress/statuspulse.
|
### Commands & Permissions (BackendJoinGuard)
|
||||||
Damit können Admins die StatusAPI-Verbindung, Attack-Key und Attack-Testflows direkt im WordPress-Backend bedienen.
|
|
||||||
Voraussetzung dafür ist StatusAPI ab Version 4.1.0.
|
| Command | Permission | Beschreibung |
|
||||||
|
|---|---|---|
|
||||||
|
| `/backendguard reload` | `backendguard.admin` | Config neu laden und bei aktivem Sync sofort neu abrufen |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Konfiguration (BackendJoinGuard)
|
||||||
|
|
||||||
|
Datei: `plugins/BackendJoinGuard/config.yml`
|
||||||
|
|
||||||
|
#### Lokaler Schutz
|
||||||
|
|
||||||
|
```yml
|
||||||
|
enforcement-enabled: true
|
||||||
|
log-blocked-attempts: true
|
||||||
|
kick-message: "&cBitte verbinde dich nur ueber den Proxy-Server."
|
||||||
|
|
||||||
|
allowed-proxy-ips:
|
||||||
|
- "127.0.0.1"
|
||||||
|
- "::1"
|
||||||
|
- "185.123.45.67"
|
||||||
|
|
||||||
|
allowed-proxy-cidrs:
|
||||||
|
- "10.0.0.0/24"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### StatusAPI Sync
|
||||||
|
|
||||||
|
```yml
|
||||||
|
statusapi-sync:
|
||||||
|
enabled: true
|
||||||
|
base-url: "http://127.0.0.1:9191"
|
||||||
|
endpoint-path: "/network/backendguard/config"
|
||||||
|
api-key: "DEIN_SYNC_KEY"
|
||||||
|
interval-seconds: 60
|
||||||
|
log-sync-errors: true
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Typische Szenarien
|
||||||
|
|
||||||
|
| Szenario | `allowed-proxy-ips` | `base-url` |
|
||||||
|
|---|---|---|
|
||||||
|
| Alles auf einer Maschine | `127.0.0.1`, `::1` | `http://127.0.0.1:9191` |
|
||||||
|
| Proxy auf separatem Host | `185.123.45.67` | `http://185.123.45.67:9191` |
|
||||||
|
| Internes Netz (CIDR) | `10.0.0.10` + CIDR `10.0.0.0/24` | `http://10.0.0.10:9191` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen & Installation
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
|
||||||
|
| Komponente | Pflicht | Optional |
|
||||||
|
|---|---|---|
|
||||||
|
| BungeeCord Proxy | ✅ | |
|
||||||
|
| Minecraft 1.20+ | ✅ | |
|
||||||
|
| Java 8+ | ✅ | |
|
||||||
|
| LuckPerms | | ✅ |
|
||||||
|
| Geyser-BungeeCord | | ✅ |
|
||||||
|
| Discord Webhook / Bot | | ✅ |
|
||||||
|
| Telegram Bot | | ✅ |
|
||||||
|
| WordPress / Forum-Backend | | ✅ |
|
||||||
|
|
||||||
|
### StatusAPI installieren (Proxy)
|
||||||
|
|
||||||
|
```
|
||||||
|
1. StatusAPI.jar → plugins/ auf dem Proxy
|
||||||
|
2. Proxy starten → Konfigurationsdateien werden erzeugt
|
||||||
|
3. Proxy stoppen
|
||||||
|
4. Konfigurationen anpassen:
|
||||||
|
verify.properties · chat.yml · network-guard.properties · blocked-commands.yml
|
||||||
|
5. Proxy neu starten
|
||||||
|
```
|
||||||
|
|
||||||
|
### BackendJoinGuard installieren (Backend)
|
||||||
|
|
||||||
|
```
|
||||||
|
1. BackendJoinGuard.jar → plugins/ auf jedem Backend-Server
|
||||||
|
2. Server starten → config.yml wird erzeugt
|
||||||
|
3. config.yml anpassen
|
||||||
|
4. Server neu starten oder /backendguard reload ausführen
|
||||||
|
```
|
||||||
|
|
||||||
|
### StatusPulse Companion (WordPress)
|
||||||
|
|
||||||
|
Im Repository unter `wordpress/statuspulse` liegt ein WordPress-Admin-Plugin.
|
||||||
|
Damit lassen sich StatusAPI-Verbindung, Attack-Key und Attack-Testflows direkt im WordPress-Backend bedienen.
|
||||||
|
Erfordert StatusAPI ≥ 4.1.0.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### API nicht erreichbar
|
### StatusAPI
|
||||||
|
|
||||||
- statusapi.port prüfen
|
| Problem | Mögliche Ursachen & Lösung |
|
||||||
- Firewall/Hosting-Portfreigabe prüfen
|
|---|---|
|
||||||
- Proxy-Konsole auf Startmeldung des HTTP-Servers prüfen
|
| API nicht erreichbar | `statusapi.port` prüfen · Firewall / Portfreigabe prüfen · Proxy-Konsole auf HTTP-Server-Startmeldung prüfen |
|
||||||
|
| Attack-Meldungen fehlen in Discord | `networkinfo.webhook.enabled` und `.url` prüfen · `networkinfo.attack.enabled` und `api_key`-Header prüfen |
|
||||||
|
| AntiBot zu hart / zu weich | `antibot.profile` auf `strict` oder `high-traffic` setzen · Schwellwerte in `network-guard.properties` feinjustieren · `/antibot reload` ausführen |
|
||||||
|
|
||||||
### Attack-Meldungen kommen nicht in Discord an
|
### BackendJoinGuard
|
||||||
|
|
||||||
- networkinfo.webhook.enabled prüfen
|
|
||||||
- networkinfo.webhook.url prüfen
|
|
||||||
- networkinfo.attack.enabled prüfen
|
|
||||||
- networkinfo.attack.api_key Header prüfen
|
|
||||||
|
|
||||||
### AntiBot greift zu hart oder zu weich
|
|
||||||
|
|
||||||
- antibot.profile auf strict oder high-traffic setzen
|
|
||||||
- Schwellwerte in network-guard.properties feiner einstellen
|
|
||||||
- /antibot reload ausführen
|
|
||||||
|
|
||||||
|
| Problem | Mögliche Ursachen & Lösung |
|
||||||
|
|---|---|
|
||||||
|
| Spieler werden trotz Proxy geblockt | Proxy-IP in `allowed-proxy-ips` korrekt eintragen · Bei mehreren Segmenten CIDR-Eintrag nutzen · Proxy-Konfiguration (Velocity/BungeeCord) prüfen |
|
||||||
|
| Sync mit StatusAPI funktioniert nicht | `base-url` und Port prüfen · `api-key` muss identisch zu `backendguard.sync.api_key` sein · `log-sync-errors: true` setzen und Konsole prüfen |
|
||||||
Reference in New Issue
Block a user