89 lines
4.6 KiB
Markdown
89 lines
4.6 KiB
Markdown
# DeskHub-Minecraft
|
|
|
|
Legt in **DeskHub** automatisch ein Ticket an, wenn dein Minecraft-Server offline geht. **Eine Jar** für **Spigot, Paper und BungeeCord**. Abteilung und Priorität stellst du in der `config.yml` ein.
|
|
|
|
## Wie der Ausfall erkannt wird
|
|
|
|
Ein Server, der abstürzt, kann nicht mehr selbst "Hilfe" rufen. Deshalb gibt es zwei Wege, die du am besten kombinierst:
|
|
|
|
| Wo das Plugin liegt | Was es tut | Wann das Ticket kommt |
|
|
|---|---|---|
|
|
| **BungeeCord-Proxy** (empfohlen) | Prüft deine Server von außen (Server-Ping, alle 30 s) | Nach 3 Fehlschlägen in Folge, also nach rund 1,5 Minuten, in Echtzeit |
|
|
| **Spigot / Paper** (jeder Server) | Schreibt regelmäßig ein Lebenszeichen und markiert es beim normalen Beenden | Beim **nächsten Start**, wenn der Server zuvor abgestürzt, hart beendet oder vom Strom getrennt wurde |
|
|
|
|
Gegen Ticket-Fluten: ein einzelner Aussetzer macht kein Ticket, pro Ausfall höchstens eines, und pro Server frühestens nach der eingestellten Wartezeit (30 Minuten) wieder eines. Server, die seit dem Start des Proxys nie online waren (z. B. absichtlich abgeschaltet), werden ignoriert.
|
|
|
|
Normales Herunterfahren (`/stop`, geplanter Neustart) erzeugt **kein** Ticket (auf Wunsch einstellbar).
|
|
|
|
## Installation
|
|
|
|
1. **API-Schlüssel in DeskHub:** Adminportal → Verwalten → **API-Schlüssel** → neuen Schlüssel mit dem Recht **„Tickets anlegen“** erzeugen (er wird nur einmal angezeigt). Trage unter „IP-Beschränkung“ die IP-Adresse deines Minecraft-Servers ein, dann ist der Schlüssel nur von dort nutzbar.
|
|
2. **Abteilung und Priorität:** Öffne im Adminportal die Abteilung bzw. Priorität. Die Zahl am Ende der Adresse (`…?id=4`) ist die ID für die config.
|
|
3. **Jar kopieren:** `DeskHub-Minecraft-1.0.0.jar` in den Ordner `plugins` deines Servers bzw. Proxys. Server einmal starten, damit `plugins/DeskHub-Minecraft/config.yml` entsteht.
|
|
4. **config.yml ausfüllen** (mindestens `url`, `api-key`, `requester-email`; optional `department-id`, `priority-id`), dann `/deskhubmc reload`.
|
|
5. **Testen:** `/deskhubmc test` legt ein Testticket an und zeigt die Ticketnummer oder den Grund für einen Fehler.
|
|
|
|
Der Absender der Tickets (`requester-email`) bekommt von DeskHub wie bei jedem Ticket eine Eingangsbestätigung. Nimm deshalb eine Adresse, die bei dir ankommt (z. B. eine Sammeladresse für Technik).
|
|
|
|
## Befehle
|
|
|
|
| Befehl | Wirkung |
|
|
|---|---|
|
|
| `/deskhubmc test` | Testticket anlegen |
|
|
| `/deskhubmc status` | Einstellungen und (auf BungeeCord) den Zustand der Server anzeigen |
|
|
| `/deskhubmc reload` | `config.yml` neu laden |
|
|
|
|
Alias: `/dhmc`. Berechtigung: `deskhubmc.admin` (Standard: nur Operatoren; in der Konsole immer erlaubt).
|
|
|
|
## Wichtige Einstellungen
|
|
|
|
```yaml
|
|
deskhub:
|
|
url: "https://support.example.de"
|
|
api-key: "dh_…"
|
|
requester-email: "minecraft@example.de"
|
|
ticket:
|
|
department-id: 4 # 0 = Standard von DeskHub
|
|
priority-id: 3
|
|
monitor: # nur BungeeCord
|
|
interval-seconds: 30
|
|
failures-before-ticket: 3
|
|
cooldown-minutes: 30
|
|
servers: [] # leer = alle Server des Proxys
|
|
backend: # nur Spigot/Paper
|
|
ticket-on-crash: true
|
|
ticket-on-shutdown: false
|
|
```
|
|
|
|
Betreff und Text der Tickets sind in der `config.yml` anpassbar (Platzhalter `{server}`, `{time}`, `{source}`, `{lastSeen}`, `{downtime}`).
|
|
|
|
## Sicherheit
|
|
|
|
- Der API-Schlüssel steht in der `config.yml`. Dateirechte so setzen, dass nur der Server-Benutzer sie lesen kann, und die Datei nie weitergeben. Bei Verdacht den Schlüssel in DeskHub löschen und einen neuen erzeugen.
|
|
- Nutze **https**. Bei `http://` warnt das Plugin, weil der Schlüssel dann unverschlüsselt übertragen würde.
|
|
- Das Plugin folgt keinen Weiterleitungen, damit der Schlüssel nie an eine andere Adresse geht.
|
|
- DeskHub begrenzt die API auf 60 Tickets pro Minute und wendet eure Ticket-Regeln an.
|
|
|
|
## Bauen
|
|
|
|
Voraussetzungen: JDK 17 oder neuer, Maven.
|
|
|
|
```bash
|
|
cd minecraft-plugin
|
|
mvn package # Tests und Jar: target/DeskHub-Minecraft-1.0.0.jar
|
|
```
|
|
|
|
Zusätzlicher Test des Spigot/Paper-Teils gegen einen simulierten Paper-Server (braucht JDK 21):
|
|
|
|
```bash
|
|
mvn install -DskipTests
|
|
cd integration-test
|
|
mvn test
|
|
```
|
|
|
|
## Grenzen
|
|
|
|
- Auf einem **einzelnen** Spigot/Paper-Server ohne Proxy kommt das Ticket erst, wenn der Server wieder startet. Wer eine Meldung in Echtzeit braucht, lässt zusätzlich das Plugin auf dem Proxy laufen oder überwacht den Server von außen.
|
|
- **Velocity** wird nicht unterstützt (eigenes Plugin-System). Auf Waterfall läuft die BungeeCord-Variante.
|
|
- Das Plugin ist kompiliert für Java 8 und die Spigot-API 1.16.5. Es sollte auf älteren und neueren Versionen laufen, geprüft sind Paper 1.21.11 (simuliert) und BungeeCord (echt).
|