StatusAPI
Modulares BungeeCord-Plugin für Netzwerkbetrieb, Moderation und Integrationen.
Live-Status · Chat & Support · Verifizierung · Forum-Bridge · Broadcasts · AntiBot · BackendJoinGuard
Rechtlicher Hinweis 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.
Übersicht
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
Module
Core & HTTP-API
- Eigener HTTP-Server über konfigurierbaren Port (
statusapi.port, Standard:9191) - JSON-Statusausgabe mit Spieler-, Prefix-, Bedrock-, Netzwerk- und Systemdaten
- POST-Endpunkte für Broadcast, Broadcast-Abbruch, Forum-Notify und Attack-Events
NetworkInfo
- Live-Snapshot für Proxy, Uptime, RAM, CPU, Backends und Ping
- Ingame-Befehl
/netinfofür Statusprüfung - Discord-Webhook-Meldungen bei: Server-Start/-Stop, hoher RAM-/Spieler-Auslastung, Attack Detected/Stopped
- Embed-Modus konfigurierbar:
compactoderdetailed
AntiBot
- CPS-basierte Attack-Erkennung mit konfigurierbaren Start- und Stop-Schwellen
- Pro-IP Rate-Limit mit temporären IP-Blocks
- Optionaler VPN/Proxy/Hosting-Check via ip-api
- Profile:
strictundhigh-traffic - Laufzeitverwaltung über
/antibot(Status, Blocks leeren, IP entblocken, Profil wechseln, Reload)
Chat & Moderation
- Mehrere Chat-Kanäle, PM-System mit Reply, Ignore-System
- Mute/Unmute, Mentions, Emoji-Unterstützung, SocialSpy
- Chat-History und Admin-Infos
- Report-System inkl. Close-Flow
- Weiterleitung an Discord und Telegram (konfigurierbar)
Verify, Forum & CommandBlocker
- Spieler-Verifizierung über Token
- Forum-Linking und Forum-Benachrichtigungen ingame
- Command-Blocker mit
/cb-Verwaltung
AutoMessage & CustomCommands
- Rotierende Auto-Nachrichten aus
messages.txt(intervallgesteuert) - Eigene Command-Mappings über
customcommands.yml - Optionaler
/chat-Command (steuerbar per Konfiguration) - Reload via
/bcmds
HTTP API
Basis-URL: http://<proxy-ip>:9191 – Port konfigurierbar über statusapi.port.
| Methode | Pfad | Beschreibung | Auth |
|---|---|---|---|
GET |
/ |
Voller Netzwerk-Status als JSON | – |
POST |
/broadcast |
Broadcast senden oder planen | x-api-key |
POST |
/broadcast/cancel |
Geplanten Broadcast abbrechen | x-api-key |
POST |
/cancel |
Alias für /broadcast/cancel |
x-api-key |
POST |
/forum/notify |
Forum-Notification an Proxy | x-api-key / Forum-Secret |
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 (StatusAPI)
Netzwerk & Schutz
| Command | Beschreibung |
|---|---|
/netinfo |
Netzwerk- und Systemstatus anzeigen |
/antibot status |
AntiBot-Status anzeigen |
/antibot clearblocks |
Alle aktiven IP-Blocks entfernen |
/antibot unblock <ip> |
Einzelne IP entblocken |
/antibot profile <strict|high-traffic> |
Profil wechseln und speichern |
/antibot reload |
AntiBot-Konfiguration neu laden |
Verify & Forum
| Command | Beschreibung |
|---|---|
/verify <token> |
Account verifizieren |
/forumlink <token> |
Account mit Forum verknüpfen |
/forum |
Forum-Benachrichtigungen anzeigen |
Chat, Support & Moderation
| Command | Beschreibung |
|---|---|
/channel [kanal] |
Kanal wechseln oder Liste anzeigen |
/helpop <text> |
Support-Anfrage an Team |
/msg <spieler> <text> |
Private Nachricht senden |
/r <text> |
Auf letzte PM antworten |
/ignore <spieler> |
Spieler ignorieren |
/unignore <spieler> |
Ignore entfernen |
/chatmute <spieler> [minuten] |
Spieler muten |
/chatunmute <spieler> |
Mute aufheben |
/chataus |
Chat-Empfang toggeln |
/broadcast <text> |
Broadcast an alle senden |
/emoji |
Emoji-Liste anzeigen |
/socialspy |
PMs mitlesen toggeln |
/chatreload |
Chat-Konfiguration neu laden |
/chatinfo <spieler> |
Admin-Infos zu einem Spieler |
/chathist [spieler] [anzahl] |
Chat-History anzeigen |
/mentions |
Mention-Benachrichtigungen toggeln |
/chatbypass |
Nächste Nachricht am Plugin vorbei senden |
/discordlink, /dlink |
Discord-Linktoken erstellen |
/telegramlink, /tlink |
Telegram-Linktoken erstellen |
/unlink <discord|telegram|all> |
Verknüpfung aufheben |
/report <spieler> <grund> |
Spieler melden |
/reports [all] |
Reports ansehen |
/reportclose <id> |
Report schließen |
CommandBlocker
| Command | Beschreibung |
|---|---|
/cb add <command> |
Command blockieren |
/cb remove <command> |
Blockierung aufheben |
/cb list |
Alle blockierten Commands anzeigen |
/cb reload |
CommandBlocker neu laden |
CustomCommands
| Command | Beschreibung |
|---|---|
/bcmds |
customcommands.yml neu laden |
/chat <text> |
Text als Chat senden oder Slash-Command ausführen |
Permissions (StatusAPI)
| 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) |
Konfiguration (StatusAPI)
verify.properties – Core, Verify, Broadcast, Forum, Port
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]
network-guard.properties – NetworkInfo, Webhook, AntiBot, BackendJoinGuard
networkinfo.enabled=true
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
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>
Weitere Konfigurationsdateien
| 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) |
BackendJoinGuard
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.
Wichtig: BackendJoinGuard kommt auf jeden Backend-Server, nicht auf den Proxy.
Betriebsarten
| Modus | Beschreibung |
|---|---|
| Standalone | Nutzt ausschließlich die lokale config.yml |
| StatusAPI Sync | Lädt Schutzregeln regelmäßig von StatusAPI; lokale Werte bleiben als Fallback erhalten |
Commands & Permissions (BackendJoinGuard)
| 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
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
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
StatusAPI
| Problem | Mögliche Ursachen & Lösung |
|---|---|
| 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 |
BackendJoinGuard
| 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 |