Upload via GUI (26 Dateien)

This commit is contained in:
2026-11-05 21:23:14 +00:00
parent 2e783e018b
commit 871bfbd8a2
10 changed files with 466 additions and 7 deletions
+13 -3
View File
@@ -8,9 +8,16 @@ Ein Server, der abstürzt, kann nicht mehr selbst "Hilfe" rufen. Deshalb gibt es
| 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 |
| **BungeeCord-Proxy** (empfohlen) | Prüft deine Server von außen (Server-Ping, alle 30 s) | Nach 3 Fehlschlägen in Folge **und** erst, wenn der Server mindestens die Schonfrist (5 Minuten) nicht erreichbar war |
| **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 |
**Geplante Neustarts:** Der Proxy kann von außen nicht erkennen, ob ein Server neu startet oder abgestürzt ist. Deshalb gibt es die **Neustart-Schonfrist** (`monitor.restart-grace-minutes`, Standard 5 Minuten): Ist der Server vorher wieder erreichbar, entsteht kein Ticket. Stelle sie etwas höher ein, als dein Neustart dauert. Die Einstellung `backend.ticket-on-shutdown` gilt nur für das Plugin auf dem Spigot/Paper-Server, nicht für den Proxy.
**Geplante Neustarts melden (ab 1.2.0):** Der Server kann dem Proxy beim Herunterfahren selbst sagen, dass der Neustart geplant ist. Der Proxy wartet dann die längere Frist `monitor.planned-restart-grace-minutes` (Standard 15 Minuten), bevor er ein Ticket anlegt; bleibt der Server länger weg, kommt das Ticket trotzdem. Einrichten:
1. Auf dem **Proxy** in der `config.yml`: `monitor.notify-port` (zum Beispiel `25590`) und `monitor.notify-secret` (mindestens 16 zufällige Zeichen) eintragen, `/deskhubmc reload`. Der Anschluss sollte nur aus dem Netz deiner Server erreichbar sein (Firewall); ohne richtige Signatur nimmt der Proxy nichts an.
2. Auf jedem **Server** (Spigot/Paper): `backend.proxy-notify` (`Adresse-des-Proxys:25590`), `backend.proxy-secret` (dasselbe Geheimnis) und `backend.proxy-server-name` (der Name dieses Servers in der Proxy-Konfiguration, zum Beispiel `lobby`) eintragen, `/deskhubmc reload`.
Die Meldung ist mit HMAC-SHA256 signiert und muss frisch sein (höchstens eine Minute alt), alte Meldungen lassen sich nicht nachspielen. Stürzt der Server ab, meldet er nichts: Dann gilt die normale Schonfrist.
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.
**Automatisch lösen:** Das Plugin setzt das Ausfall-Ticket in DeskHub auf „Gelöst“ und hinterlässt eine Notiz mit der Ausfalldauer. Die Ticketnummer merkt es sich in `offene-tickets.properties`, auch ein Neustart währenddessen schadet nicht. Abschalten mit `ticket.resolve-on-recovery: false`. Voraussetzung: DeskHub **1.0.48 oder neuer** (API-Aktion „resolve“) und der API-Schlüssel mit dem Recht „Tickets anlegen“; gelöst werden nur Tickets, die dieser Schlüssel über die API angelegt hat.
@@ -24,7 +31,7 @@ Normales Herunterfahren (`/stop`, geplanter Neustart) erzeugt **kein** Ticket (a
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.1.0.jar` in den Ordner `plugins` deines Servers bzw. Proxys. Server einmal starten, damit `plugins/DeskHub-Minecraft/config.yml` entsteht.
3. **Jar kopieren:** `DeskHub-Minecraft-1.2.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.
@@ -53,6 +60,9 @@ ticket:
monitor: # nur BungeeCord
interval-seconds: 30
failures-before-ticket: 3
restart-grace-minutes: 5 # Ticket erst, wenn der Server so lange weg ist (Neustarts)
planned-restart-grace-minutes: 15 # wenn der Server den Neustart selbst gemeldet hat
notify-port: 0 # Meldungen der Server annehmen (0 = aus), dazu notify-secret
cooldown-minutes: 30
servers: [] # leer = alle Server des Proxys
backend: # nur Spigot/Paper
@@ -75,7 +85,7 @@ Voraussetzungen: JDK 17 oder neuer, Maven.
```bash
cd minecraft-plugin
mvn package # Tests und Jar: target/DeskHub-Minecraft-1.1.0.jar
mvn package # Tests und Jar: target/DeskHub-Minecraft-1.2.0.jar
```
Zusätzlicher Test des Spigot/Paper-Teils gegen einen simulierten Paper-Server (braucht JDK 21):