README.md aktualisiert
This commit is contained in:
153
README.md
153
README.md
@@ -27,7 +27,7 @@ Dieses Repository enthält zwei aufeinander abgestimmte Plugins:
|
||||
| Plugin | Plattform | Zweck |
|
||||
|---|---|---|
|
||||
| **StatusAPI** | BungeeCord (Proxy) | HTTP-API, AntiBot, Chat, Moderation, Verify, Forum, Scoreboard |
|
||||
| **StatusAPIBridge** | Paper / Spigot (Backend) | Sendet Spielerdaten (Health, Kompass, Position, etc.) an StatusAPI |
|
||||
| **StatusAPIBridge** | Paper / Spigot (Backend) | Sendet Spielerdaten (Health, Kompass, Position, Ticket-Daten etc.) an StatusAPI |
|
||||
| **BackendJoinGuard** | Paper / Spigot (Backend) | Verhindert Direktjoins am Proxy vorbei |
|
||||
|
||||
BackendJoinGuard kann eigenständig betrieben werden oder seine Schutzregeln automatisch per Sync von StatusAPI beziehen.
|
||||
@@ -52,6 +52,7 @@ BackendJoinGuard kann eigenständig betrieben werden oder seine Schutzregeln aut
|
||||
- [Betriebsarten](#betriebsarten)
|
||||
- [Commands & Permissions](#commands--permissions-backendjoinguard)
|
||||
- [Konfiguration](#konfiguration-backendjoinguard)
|
||||
- [TicketSystem-Integration](#ticketsystem-integration)
|
||||
- [Voraussetzungen & Installation](#voraussetzungen--installation)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
|
||||
@@ -78,8 +79,8 @@ BackendJoinGuard kann eigenständig betrieben werden oder seine Schutzregeln aut
|
||||
- Gradient-Placeholder für farbige Zeilen
|
||||
- News-Ticker mit konfigurierbarem Text, Breite und Geschwindigkeit
|
||||
- Zeilenrotation – bis zu 20 Varianten pro Zeile
|
||||
- Separates Admin-Scoreboard mit eigenen Zeilen
|
||||
- `/sb`-Command zum Ein-/Ausblenden und Umschalten zwischen Player/Admin-Board
|
||||
- Separates Admin-Scoreboard und Supporter-Scoreboard mit eigenen Zeilen und Permissions
|
||||
- `/sb`-Command zum Ein-/Ausblenden und Umschalten zwischen Player/Supporter/Admin-Board
|
||||
|
||||
</details>
|
||||
|
||||
@@ -154,6 +155,7 @@ Basis-URL: `http://<proxy-ip>:9191` – Port konfigurierbar über `statusapi.por
|
||||
| `POST` | `/scoreboard/tps` | Server-TPS aktualisieren | intern |
|
||||
| `POST` | `/player/world` | Spieler-Welt aktualisieren | intern |
|
||||
| `POST` | `/player/data` | Koordinaten, Gamemode, Exp, Food, Speed | intern |
|
||||
| `POST` | `/ticket/update` | TicketSystem-Daten aktualisieren (von StatusAPIBridge) | intern |
|
||||
|
||||
---
|
||||
|
||||
@@ -306,13 +308,25 @@ backendguard.sync.api_key=<sync_key>
|
||||
|
||||
Das ScoreboardModule zeigt ein vollständig konfigurierbares Sidebar-Scoreboard auf BungeeCord-Ebene. Spielerdaten werden über **StatusAPIBridge** vom Backend-Server in Echtzeit geliefert.
|
||||
|
||||
Es gibt drei separate Scoreboards, die automatisch anhand der Spieler-Permission zugewiesen werden:
|
||||
|
||||
| Board | Permission | Beschreibung |
|
||||
|---|---|---|
|
||||
| Spieler-Board | *(keine)* | Standard-Scoreboard für alle Spieler |
|
||||
| Supporter-Board | `statusapi.scoreboard.supporter` | Zeigt Ticket-Übersicht und Support-relevante Infos |
|
||||
| Admin-Board | `statusapi.scoreboard.admin` | Vollständige Server- und Ticket-Statistiken |
|
||||
|
||||
> Admin hat Vorrang vor Supporter – hat ein Spieler beide Permissions, sieht er das Admin-Board.
|
||||
|
||||
---
|
||||
|
||||
### Features (Scoreboard)
|
||||
|
||||
- **Wave-Titel-Animation** – flüssige HSB-Farbwelle (10 fps), Farben frei konfigurierbar
|
||||
- **Gradient-Placeholder** – `%gradient:FARBE1:FARBE2:TEXT%` für farbige Zeilen
|
||||
- **News-Ticker** – konfigurierbarer Lauftext von rechts nach links (10 fps)
|
||||
- **News-Ticker** – konfigurierbarer Lauftext von rechts nach links (10 fps), nur im Spieler-Board
|
||||
- **Zeilenrotation** – pro Zeile bis zu 20 Varianten, wechseln automatisch
|
||||
- **Admin-Scoreboard** – eigenes Objective mit eigenen Zeilen, automatisch für Spieler mit Permission
|
||||
- **Drei Scoreboards** – Spieler, Supporter, Admin – je eigenes Objective, Titel und Zeilen
|
||||
- **Kompass** – Himmelsrichtungs-Anzeige mit farbigen Buchstaben, zentriert
|
||||
- **Herzen & Hunger** – `♥♥♥♥♥♡♡♡♡♡` / `◆◆◆◆◆◇◇◇◇◇`
|
||||
- **Separator-Styles** – frei wählbar (Striche, Wellen, Gradient, leer, …)
|
||||
@@ -346,7 +360,7 @@ Das ScoreboardModule zeigt ein vollständig konfigurierbares Sidebar-Scoreboard
|
||||
| `%gamemode%` | Spielmodus (SURVIVAL, CREATIVE, …) |
|
||||
| `%exp%` | XP-Level |
|
||||
| `%speed%` | Laufgeschwindigkeit |
|
||||
| `%news%` | News-Ticker |
|
||||
| `%news%` | News-Ticker (nur Spieler-Board) |
|
||||
| `%line%` | Trennlinie (konfigurierbar) |
|
||||
|
||||
#### Admin-Placeholders (BungeeCord-seitig)
|
||||
@@ -359,6 +373,19 @@ Das ScoreboardModule zeigt ein vollständig konfigurierbares Sidebar-Scoreboard
|
||||
| `%uptime%` | Proxy-Laufzeit `HH:MM:SS` |
|
||||
| `%servers%` | Anzahl verbundener Backend-Server |
|
||||
|
||||
#### TicketSystem-Placeholders
|
||||
|
||||
Werden alle 5 Sekunden von **StatusAPIBridge** über `POST /ticket/update` an StatusAPI gesendet. Voraussetzung: **TicketSystem** läuft auf demselben Backend-Server wie StatusAPIBridge.
|
||||
|
||||
| Placeholder | Verfügbar für | Beschreibung |
|
||||
|---|---|---|
|
||||
| `%ticket_my_open%` | Spieler, Supporter, Admin | Eigene aktive Tickets (OPEN + CLAIMED + FORWARDED) |
|
||||
| `%ticket_open%` | Supporter, Admin | Alle unbearbeiteten Tickets (Status: OPEN) |
|
||||
| `%ticket_claimed%` | Admin | Alle Tickets in Bearbeitung (Status: CLAIMED) |
|
||||
| `%ticket_rating_good%` | Admin | Positive Bewertungen gesamt |
|
||||
| `%ticket_rating_bad%` | Admin | Negative Bewertungen gesamt |
|
||||
| `%ticket_rating_pct%` | Admin | Prozentsatz positiver Bewertungen (oder `-` wenn keine) |
|
||||
|
||||
#### Spezial-Placeholders
|
||||
|
||||
| Placeholder | Beschreibung |
|
||||
@@ -380,7 +407,9 @@ scoreboard.enabled=true
|
||||
scoreboard.update_interval=500 # Millisekunden, min. 250
|
||||
scoreboard.title=&lViper Network # Kein Farbcode → Wave übernimmt Farbe
|
||||
scoreboard.admin_title=&l[Admin] Panel
|
||||
scoreboard.supporter_title=&l[Support] Panel
|
||||
scoreboard.admin_permission=statusapi.scoreboard.admin
|
||||
scoreboard.supporter_permission=statusapi.scoreboard.supporter
|
||||
|
||||
# Wave-Animation
|
||||
scoreboard.rainbow.enabled=true
|
||||
@@ -388,9 +417,9 @@ scoreboard.rainbow.mode=wave # wave | chars | line
|
||||
scoreboard.rainbow.speed=10 # 1=sehr langsam, 10=normal, 50=schnell
|
||||
scoreboard.rainbow.colors=#FF0000,#FF6600,#FFFF00,#00FF00,#00FFFF,#0000FF,#FF00FF
|
||||
|
||||
# News-Ticker
|
||||
# News-Ticker (nur Spieler-Board)
|
||||
scoreboard.news.text=Willkommen auf Viper Network!
|
||||
scoreboard.news.prefix=&8[&6News&8] &r # Leer lassen zum Deaktivieren
|
||||
scoreboard.news.prefix=&8[&6News&8] &r
|
||||
scoreboard.news.width=20
|
||||
scoreboard.news.speed=1
|
||||
|
||||
@@ -400,10 +429,11 @@ scoreboard.rotation_interval=4
|
||||
# Separator für %line%
|
||||
scoreboard.separator=&8&m--------------------
|
||||
|
||||
# Zeilen (max. 15 sichtbar, bis zu 20 definierbar)
|
||||
# ===================================================
|
||||
# SPIELER-ZEILEN (max. 15 sichtbar)
|
||||
# scoreboard.lines.N = Variante 1 (dauerhaft)
|
||||
# scoreboard.lines.N.2 = Variante 2 (rotiert nach rotation_interval Sekunden)
|
||||
# scoreboard.lines.N.3 = Variante 3 usw.
|
||||
# ===================================================
|
||||
scoreboard.lines.1=%line%
|
||||
scoreboard.lines.2=%gradient:&b:&f:&b:&l> Player Info:%
|
||||
scoreboard.lines.3=&7%rank% &f%player%
|
||||
@@ -423,7 +453,28 @@ scoreboard.lines.13=%news%
|
||||
scoreboard.lines.14=%line%
|
||||
scoreboard.lines.15=&7%compass%
|
||||
|
||||
# Admin-Zeilen (eigenes Objective, automatisch für Spieler mit Admin-Permission)
|
||||
# ===================================================
|
||||
# SUPPORTER-ZEILEN
|
||||
# ===================================================
|
||||
scoreboard.supporter_lines.1=%line%
|
||||
scoreboard.supporter_lines.2=%gradient:&6:&f:&6:&l> Support Panel:%
|
||||
scoreboard.supporter_lines.3=&7%rank% &f%player%
|
||||
scoreboard.supporter_lines.4=&7Ping: &f%ping%ms &8| &7%server%
|
||||
scoreboard.supporter_lines.5=
|
||||
scoreboard.supporter_lines.6=%gradient:&6:&f:&6:&l> Tickets:%
|
||||
scoreboard.supporter_lines.7=&7Offen: &c%ticket_open%
|
||||
scoreboard.supporter_lines.8=&7Meine Tickets: &e%ticket_my_open%
|
||||
scoreboard.supporter_lines.9=
|
||||
scoreboard.supporter_lines.10=%gradient:&6:&f:&6:&l> Server Info:%
|
||||
scoreboard.supporter_lines.11=&7Online: &f%online% &8/ &7%maxplayers%
|
||||
scoreboard.supporter_lines.12=&7Zeit: &f%time%
|
||||
scoreboard.supporter_lines.13=
|
||||
scoreboard.supporter_lines.14=%line%
|
||||
scoreboard.supporter_lines.15=&7%compass%
|
||||
|
||||
# ===================================================
|
||||
# ADMIN-ZEILEN
|
||||
# ===================================================
|
||||
scoreboard.admin_lines.1=%line%
|
||||
scoreboard.admin_lines.2=%gradient:&b:&f:&b:&l> Player Info:%
|
||||
scoreboard.admin_lines.3=&7%rank% &f%player%
|
||||
@@ -437,11 +488,11 @@ scoreboard.admin_lines.8.2=&7Proxy: &f%uptime%
|
||||
scoreboard.admin_lines.9=
|
||||
scoreboard.admin_lines.10=&7TPS: &a%tps%
|
||||
scoreboard.admin_lines.11=
|
||||
scoreboard.admin_lines.12=&7Spieler: &f%online% &8| &7%maxplayers%
|
||||
scoreboard.admin_lines.13=%news%
|
||||
scoreboard.admin_lines.14=%line%
|
||||
scoreboard.admin_lines.15=&7%compass%
|
||||
scoreboard.admin_lines.15.2=&7Pos: X:&f%x% &7Y:&f%y% &7Z:&f%z%
|
||||
scoreboard.admin_lines.12=%gradient:&b:&f:&b:&l> Tickets:%
|
||||
scoreboard.admin_lines.13=&7Offen: &c%ticket_open% &8| &7Aktiv: &e%ticket_claimed%
|
||||
scoreboard.admin_lines.14=&7Bewertung: &a%ticket_rating_good%&8/&c%ticket_rating_bad% &7(&f%ticket_rating_pct%&7%&7)
|
||||
scoreboard.admin_lines.15=%line%
|
||||
scoreboard.admin_lines.15.2=&7%compass%
|
||||
```
|
||||
|
||||
#### Separator-Stile
|
||||
@@ -466,10 +517,15 @@ scoreboard.admin_lines.15.2=&7Pos: X:&f%x% &7Y:&f%y% &7Z:&f%z%
|
||||
| `/scoreboard` | `/sb`, `/togglesb` | Scoreboard ein-/ausblenden (Toggle) |
|
||||
| `/sb hide` | | Scoreboard ausblenden |
|
||||
| `/sb show` | | Scoreboard einblenden |
|
||||
| `/sb player` | | Player-Scoreboard anzeigen |
|
||||
| `/sb player` | | Spieler-Scoreboard anzeigen |
|
||||
| `/sb admin` | | Admin-Scoreboard anzeigen (Permission erforderlich) |
|
||||
|
||||
**Permission:** `statusapi.scoreboard.admin` – Admin-Scoreboard + `/sb admin`
|
||||
**Permissions:**
|
||||
|
||||
| Permission | Beschreibung |
|
||||
|---|---|
|
||||
| `statusapi.scoreboard.admin` | Admin-Scoreboard + `/sb admin` |
|
||||
| `statusapi.scoreboard.supporter` | Supporter-Scoreboard (automatisch, kein Command nötig) |
|
||||
|
||||
---
|
||||
|
||||
@@ -486,6 +542,16 @@ StatusAPIBridge läuft auf jedem **Backend-Server** (Spigot/Paper) und sendet Sp
|
||||
| TPS | `POST /scoreboard/tps` | Server-TPS |
|
||||
| Welt | `POST /player/world` | Welt-Name |
|
||||
| Position, Gamemode, Exp, Food, Speed | `POST /player/data` | Erweiterte Spielerdaten |
|
||||
| TicketSystem-Daten | `POST /ticket/update` | Ticket-Statistiken (alle 5 Sekunden, falls TicketSystem installiert) |
|
||||
|
||||
### TicketSystem-Daten (automatisch)
|
||||
|
||||
Ist das **TicketSystem**-Plugin auf demselben Backend-Server installiert, liest StatusAPIBridge die Daten per Reflection und sendet sie alle 5 Sekunden:
|
||||
|
||||
- Globale Werte (Anzahl offener Tickets, Tickets in Bearbeitung, Bewertungen) – nur bei Änderung
|
||||
- Pro Spieler: Anzahl eigener aktiver Tickets (OPEN + CLAIMED + FORWARDED)
|
||||
|
||||
Es wird keine harte Abhängigkeit zum TicketSystem benötigt – fehlt es, passiert nichts.
|
||||
|
||||
### Konfiguration (StatusAPIBridge)
|
||||
|
||||
@@ -566,6 +632,52 @@ statusapi-sync:
|
||||
|
||||
---
|
||||
|
||||
## TicketSystem-Integration
|
||||
|
||||
StatusAPI und StatusAPIBridge unterstützen eine optionale Integration mit dem **TicketSystem**-Plugin. Die Verbindung ist vollständig Reflection-basiert – es sind keine harten Abhängigkeiten nötig.
|
||||
|
||||
### Architektur
|
||||
|
||||
```
|
||||
TicketSystem (Bukkit)
|
||||
↓ Reflection (alle 5s)
|
||||
StatusAPIBridge → POST /ticket/update → StatusAPI (BungeeCord) → Scoreboard
|
||||
```
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
- TicketSystem ist auf demselben Backend-Server installiert wie StatusAPIBridge
|
||||
- StatusAPIBridge sendet die Daten automatisch – keine zusätzliche Konfiguration nötig
|
||||
|
||||
### Verfügbare Placeholder im Scoreboard
|
||||
|
||||
| Placeholder | Für wen | Beschreibung |
|
||||
|---|---|---|
|
||||
| `%ticket_my_open%` | Spieler, Supporter, Admin | Eigene aktive Tickets (OPEN + CLAIMED + FORWARDED) |
|
||||
| `%ticket_open%` | Supporter, Admin | Alle offenen Tickets (noch unbearbeitet) |
|
||||
| `%ticket_claimed%` | Admin | Alle Tickets in Bearbeitung |
|
||||
| `%ticket_rating_good%` | Admin | Positive Bewertungen gesamt |
|
||||
| `%ticket_rating_bad%` | Admin | Negative Bewertungen gesamt |
|
||||
| `%ticket_rating_pct%` | Admin | Prozentsatz positiver Bewertungen |
|
||||
|
||||
### PlaceholderAPI (PAPI)
|
||||
|
||||
Das TicketSystem selbst stellt über die Klasse `TicketPlaceholderExpansion` ebenfalls PAPI-Placeholder bereit (Prefix: `ticketsystem`):
|
||||
|
||||
| PAPI-Placeholder | Beschreibung |
|
||||
|---|---|
|
||||
| `%ticketsystem_my_open%` | Eigene aktive Tickets des Spielers |
|
||||
| `%ticketsystem_admin_open%` | Alle offenen Tickets (Status: OPEN) |
|
||||
| `%ticketsystem_admin_claimed%` | Alle Tickets in Bearbeitung (Status: CLAIMED) |
|
||||
| `%ticketsystem_admin_rating_good%` | Positive Bewertungen gesamt |
|
||||
| `%ticketsystem_admin_rating_bad%` | Negative Bewertungen gesamt |
|
||||
| `%ticketsystem_admin_rating_total%` | Alle Bewertungen gesamt |
|
||||
| `%ticketsystem_admin_rating_percent%` | Prozentsatz positiver Bewertungen |
|
||||
|
||||
> Diese PAPI-Placeholder sind unabhängig von StatusAPI und können in jedem PAPI-kompatiblen Plugin genutzt werden (z.B. andere Scoreboard-Plugins, Chat-Plugins).
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen & Installation
|
||||
|
||||
### Voraussetzungen
|
||||
@@ -580,6 +692,8 @@ statusapi-sync:
|
||||
| Discord Webhook / Bot | | ✅ |
|
||||
| Telegram Bot | | ✅ |
|
||||
| WordPress / Forum-Backend | | ✅ |
|
||||
| TicketSystem (Bukkit) | | ✅ |
|
||||
| PlaceholderAPI (Bukkit) | | ✅ |
|
||||
|
||||
### StatusAPI installieren (Proxy)
|
||||
|
||||
@@ -638,6 +752,8 @@ Erfordert StatusAPI ≥ 4.1.0.
|
||||
| News-Ticker stoppt kurz | Normal – 4-Zeichen-Pause zwischen Durchläufen · `scoreboard.news.speed` erhöhen |
|
||||
| Kompass nicht mittig | `COMPASS_WIN` in der Quellcode-Konstante anpassen (Standard: 19) |
|
||||
| `too many queued packets` | `update_interval` zu niedrig – auf mind. 500ms erhöhen |
|
||||
| Supporter-Board wird nicht angezeigt | Permission `statusapi.scoreboard.supporter` prüfen · `scoreboard.supporter_permission` in `scoreboard.properties` prüfen |
|
||||
| Supporter sieht Admin-Board | Normal – Admin-Permission hat Vorrang über Supporter-Permission |
|
||||
|
||||
### StatusAPIBridge
|
||||
|
||||
@@ -645,6 +761,7 @@ Erfordert StatusAPI ≥ 4.1.0.
|
||||
|---|---|
|
||||
| Herzen zeigen immer voll | StatusAPIBridge nicht installiert oder `statusapi-url` falsch konfiguriert |
|
||||
| Kompass bewegt sich nicht | Bridge läuft, aber Spieler steht still – PlayerMoveEvent sendet nur bei Bewegung |
|
||||
| Ticket-Placeholder zeigen immer 0 | TicketSystem nicht auf demselben Server wie StatusAPIBridge · Konsole auf `[TicketPush]`-Fehler prüfen |
|
||||
|
||||
### BackendJoinGuard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user