diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..5be260f --- /dev/null +++ b/Home.md @@ -0,0 +1,491 @@ +# StatusAPI Wiki + +

+ Version + Minecraft + Platform + Java +

+ +**StatusAPI** ist ein modulares BungeeCord-Plugin mit integriertem HTTP-Status-Endpunkt, globalem Chat-System, WordPress-Verifizierung und vielen weiteren Features. + +--- + +## Inhaltsverzeichnis + +- [Installation](#installation) +- [Konfiguration](#konfiguration) +- [Module](#module) + - [GlobalChat](#globalchat-modul) + - [Verify](#verify-modul) + - [Navigation](#navigation-modul) + - [Broadcast](#broadcast-modul) + - [AutoMessage](#automessage-modul) + - [CommandBlocker](#commandblocker-modul) + - [CustomCommands](#customcommands-modul) + - [Stats](#stats-modul) +- [Befehle](#befehle) +- [Permissions](#permissions) +- [API-Endpunkte](#api-endpunkte) +- [Optionale Abhängigkeiten](#optionale-abhangigkeiten) + +--- + +## Installation + +1. Lade die neueste `StatusAPI.jar` aus den [Releases](https://git.viper.ipv64.net/M_Viper/StatusAPI/releases) herunter +2. Kopiere die JAR-Datei in den `plugins/` Ordner deines BungeeCord-Servers +3. Starte den Server neu +4. Konfiguriere das Plugin in `plugins/StatusAPI/verify.properties` + +--- + +## Konfiguration + +Die Hauptkonfiguration erfolgt in der Datei `verify.properties`. Diese wird beim ersten Start automatisch erstellt. + +### verify.properties + +```properties +# =========================== +# GLOBALCHAT AKTIVIERUNG +# =========================== +chat.enabled=false + +# =========================== +# BROADCAST +# =========================== +broadcast.enabled=false +broadcast.prefix=[Broadcast] +broadcast.prefix-color=&c +broadcast.message-color=&f +broadcast.format=%prefixColored% %messageColored% + +# =========================== +# NAVIGATION / SERVER SWITCHER +# =========================== +navigation.enabled=false + +# =========================== +# WORDPRESS / VERIFY EINSTELLUNGEN +# =========================== +wp_verify_url=https://deine-wp-domain.tld + +# =========================== +# SERVER KONFIGURATION +# =========================== +# Server 1: Lobby +server.lobby=&bLobby +server.lobby.id=1 +server.lobby.secret=GeheimesWortFuerLobby123 + +# Server 2: Survival +server.survival=&aSurvival +server.survival.id=2 +server.survival.secret=GeheimesWortFuerSurvival456 + +# =========================== +# Manuelle Ränge (Overrides) +# =========================== +# Syntax: override. = +override.uuid-hier-einfuegen = Owner + +# =========================== +# Chat-Formate für Gruppen +# =========================== +# Format: Rang || Spielerfarbe || Chatfarbe +groupformat.owner=&c[Owner] || &b || &d +groupformat.admin=&4[Admin] || &9 || &c +groupformat.developer=&b[Dev] || &3 || &a +groupformat.premium=&6[Premium] || &e || &7 +groupformat.spieler=&f[Spieler] || &7 || &8 + +# =========================== +# AUTOMESSAGE +# =========================== +automessage.enabled=false +automessage.interval=300 +automessage.prefix= +automessage.file=messages.txt + +# =========================== +# COMMAND BLOCKER +# =========================== +commandblocker.enabled=true +commandblocker.bypass.permission=commandblocker.bypass + +# =========================== +# CUSTOM COMMANDS +# =========================== +customcommands.enabled=true +``` + +--- + +## Module + +### GlobalChat Modul + +Das GlobalChat-Modul ermöglicht einen netzwerkweiten Chat mit: +- **Chatfilter** (Schimpfwort-Zensur) +- **Gruppen-basierte Formatierung** (mit LuckPerms-Integration) +- **Manuelle Rang-Overrides** per UUID +- **Support-System** für Spieler-Team-Kommunikation +- **Join/Quit/Server-Switch Nachrichten** + +#### Aktivierung +```properties +chat.enabled=true +``` + +#### Chat-Format Syntax +```properties +groupformat.= || || +``` + +**Beispiel:** +```properties +groupformat.owner=&c[Owner] || &b || &d +``` +- `&c[Owner]` - Rang wird rot angezeigt +- `&b` - Spielername wird aqua/cyan angezeigt +- `&d` - Chatnachrichten werden pink angezeigt + +#### Manuelle Rang-Overrides +Überschreibe den LuckPerms-Rang für bestimmte Spieler: +```properties +override.550e8400-e29b-41d4-a716-446655440000=Owner +``` + +#### Filter-Konfiguration (filter.yml) +```yaml +badwords: + - wort1 + - wort2 + - wort3 +``` + +#### Willkommensnachrichten (welcome.yml) +```yaml +- "&aWillkommen auf dem Server, %player%!" +- "&eHallo %player%, viel Spaß!" +``` + +--- + +### Verify Modul + +Das Verify-Modul ermöglicht die Verifizierung von Spielern über eine WordPress-Webseite. + +#### Konfiguration +```properties +wp_verify_url=https://deine-wordpress-seite.de + +# Pro Server eine eigene ID und Secret +server.lobby.id=1 +server.lobby.secret=GeheimesWort123 +``` + +#### Verwendung +Spieler verifizieren sich mit: +``` +/verify +``` + +--- + +### Navigation Modul + +Erstellt automatisch Server-Wechsel-Befehle basierend auf den konfigurierten Servern. + +#### Aktivierung +```properties +navigation.enabled=true +``` + +#### Automatisch erstellte Befehle +Für jeden konfigurierten Server wird ein Befehl erstellt: +- `server.lobby=&bLobby` → `/lobby` +- `server.survival=&aSurvival` → `/survival` +- `server.skyblock=&dSkyBlock` → `/skyblock` + +--- + +### Broadcast Modul + +Ermöglicht das Senden von Broadcasts über die HTTP-API oder geplante Nachrichten. + +#### Aktivierung +```properties +broadcast.enabled=true +broadcast.prefix=[Broadcast] +broadcast.prefix-color=&c +broadcast.bracket-color=&8 +broadcast.message-color=&f +broadcast.format=%prefixColored% %messageColored% +``` + +#### Format-Platzhalter +| Platzhalter | Beschreibung | +|-------------|--------------| +| `%name%` | Name der Quelle | +| `%prefix%` | Prefix ohne Farbe | +| `%prefixColored%` | Prefix mit Farbe | +| `%message%` | Nachricht ohne Farbe | +| `%messageColored%` | Nachricht mit Farbe | +| `%type%` | Broadcast-Typ | + +#### Wiederholungsoptionen +- `none` - Einmalig +- `hourly` - Stündlich +- `daily` - Täglich +- `weekly` - Wöchentlich + +--- + +### AutoMessage Modul + +Sendet automatisch rotierende Nachrichten an alle Spieler. + +#### Aktivierung +```properties +automessage.enabled=true +automessage.interval=300 +automessage.prefix=&6[Info] +automessage.file=messages.txt +``` + +#### messages.txt +``` +&aBesuche unsere Webseite: &ehttps://example.com +&bVergiss nicht, uns auf Discord zu folgen! +&dViel Spaß auf dem Server! +``` + +--- + +### CommandBlocker Modul + +Blockiert bestimmte Befehle für Spieler ohne Bypass-Berechtigung. + +#### Befehle +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/cb add ` | Befehl blockieren | `commandblocker.admin` | +| `/cb remove ` | Blockierung aufheben | `commandblocker.admin` | +| `/cb list` | Blockierte Befehle anzeigen | `commandblocker.admin` | +| `/cb reload` | Konfiguration neu laden | `commandblocker.admin` | + +#### Konfiguration (blocked-commands.yml) +```yaml +blocked: + - plugins + - ver + - version + - about +``` + +--- + +### CustomCommands Modul + +Erstelle eigene Befehle mit Aliasen und verschiedenen Ausführungstypen. + +#### Aktivierung +```properties +customcommands.enabled=true +``` + +#### customcommands.yml +```yaml +chat-command: true + +commands: + test: + aliases: + - test2 + permission: "" + type: random # random = Zufällig, line = Sequenziell + sender: default # default, admin, console, + commands: + - "alert Das ist ein Test!" + - "glist" + + regeln: + aliases: + - rules + permission: "" + type: line + sender: default + commands: + - "alert &6=== Serverregeln ===" + - "alert &e1. Sei respektvoll" + - "alert &e2. Kein Cheating" + + sudo: + aliases: + - runasadmin + permission: "commands.sudo" + type: line + sender: admin + commands: + - "%args%" +``` + +#### Platzhalter +| Platzhalter | Beschreibung | +|-------------|--------------| +| `%args%` | Alle Argumente des Befehls | +| `%sender%` | Name des ausführenden Spielers | + +#### Sender-Typen +| Typ | Beschreibung | +|-----|--------------| +| `default` | Spieler selbst | +| `admin` | Mit Admin-Rechten | +| `console` | Als Konsole | +| `` | Als bestimmter Spieler | + +--- + +### Stats Modul + +Trackt Spielerstatistiken wie Spielzeit, Joins und letzte Aktivität. + +#### Features +- Automatisches Tracking von Join/Quit +- Gesamtspielzeit pro Spieler +- Auto-Save alle 5 Minuten +- Persistente Speicherung + +--- + +## Befehle + +### Allgemeine Befehle + +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/verify ` | Verifizierung mit Token | - | +| `/info` | Plugin-Informationen | - | + +### GlobalChat Befehle + +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/globalreload` | Chat-Filter neu laden | `globalchat.reload` | +| `/globalmute` | Globalen Chat (de)aktivieren | `globalchat.mute` | +| `/support ` | Support-Nachricht senden | - | +| `/reply ` | Auf Support antworten | - | +| `/chattoggle` | Eigenen Chat umschalten | - | +| `/clearchat` | Chat leeren | `globalchat.clearchat` | + +### CommandBlocker Befehle + +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/cb add ` | Befehl blockieren | `commandblocker.admin` | +| `/cb remove ` | Blockierung aufheben | `commandblocker.admin` | +| `/cb list` | Liste anzeigen | `commandblocker.admin` | +| `/cb reload` | Neu laden | `commandblocker.admin` | + +### CustomCommands Befehle + +| Befehl | Beschreibung | Permission | +|--------|--------------|------------| +| `/bcmds` | Config neu laden | `statusapi.bcmds` | +| `/chat ` | Chat-Nachricht senden | - | + +--- + +## Permissions + +### Allgemein + +| Permission | Beschreibung | +|------------|--------------| +| `statusapi.admin` | Admin-Benachrichtigungen (Updates) | +| `statusapi.update.notify` | Update-Benachrichtigungen erhalten | +| `statusapi.bcmds` | CustomCommands Config neu laden | + +### GlobalChat + +| Permission | Beschreibung | +|------------|--------------| +| `globalchat.reload` | Filter neu laden | +| `globalchat.mute` | Chat muten/unmuten | +| `globalchat.bypass` | Mute umgehen | +| `globalchat.clearchat` | Chat leeren | + +### CommandBlocker + +| Permission | Beschreibung | +|------------|--------------| +| `commandblocker.admin` | CommandBlocker verwalten | +| `commandblocker.bypass` | Blockierte Befehle umgehen | + +--- + +## API-Endpunkte + +StatusAPI startet einen integrierten HTTP-Server auf Port **9191**. + +### GET /status +Gibt den aktuellen Serverstatus zurück. + +### POST /broadcast +Sendet einen Broadcast an alle Spieler. + +**Request Body:** +```json +{ + "message": "Deine Nachricht", + "prefix": "[Info]", + "prefixColor": "&e", + "messageColor": "&f", + "type": "global" +} +``` + +### POST /broadcast/schedule +Plant einen Broadcast für später. + +**Request Body:** +```json +{ + "message": "Geplante Nachricht", + "timestamp": 1700000000000, + "recur": "daily", + "clientScheduleId": "unique-id" +} +``` + +### DELETE /broadcast/schedule/{id} +Bricht einen geplanten Broadcast ab. + +--- + +## Optionale Abhängigkeiten + +### LuckPerms + +StatusAPI unterstützt **LuckPerms** für erweiterte Rang-Funktionalität: +- Automatische Erkennung der Spielergruppe +- Gruppen-basierte Chat-Formate +- Prefix/Suffix-Integration + +Falls LuckPerms nicht installiert ist, werden die manuellen Overrides und Permission-basierte Gruppen verwendet. + +--- + +## Support + +Bei Problemen oder Fragen: +- Erstelle ein [Issue](https://git.viper.ipv64.net/M_Viper/StatusAPI/issues) +- Überprüfe die Logs in `plugins/StatusAPI/logs/` + +--- + +## Lizenz + +StatusAPI ist ein proprietäres Plugin von **M_Viper**.