From 21eab627b96a2ddb5773032e009885b34f0b9e17 Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Thu, 13 Aug 2026 18:38:52 +0200 Subject: [PATCH] fix: die Panel-Anbindung steht jetzt dort, wo man sie sucht Der Betreiber hat sie nicht gefunden, und das zu Recht: die zwei Felder gab es nur auf der Modul-Detailseite unter Module -> Game-Server-Monitor. Der Reiter "Game-Server" hat aber einen eigenen, handgeschriebenen Block mit Status- und Alarm-Kanal -- und genau dort schaut nach, wer den Monitor einrichtet. Also stehen sie jetzt auch dort, direkt unter den Kanaelen, mit dem Absatz, der erklaert wofuer das gut ist. Die Modulseite behaelt sie; es sind dieselben Formularwerte, keine zweite Wahrheit -- genauso wie status_channel_id schon an beiden Stellen steht. Und ins Suchregister (setting-index.js), sonst findet die Suche in der Seitenleiste das Feld nicht und man sucht es mit den Augen. Das Register traegt selbst den Kommentar, dass ein vergessener Eintrag genau so endet. Geprueft, indem die Frontend-Stufe des Images gebaut und im Ergebnis nachgesehen wurde -- "Panel-Adresse", "Panel-Zeichen" und "Panel-Anbindung speichern" stehen im ausgelieferten Bundle. Co-Authored-By: Claude Opus 5 --- README.md | 2 +- frontend/src/pages/Settings.jsx | 50 +++++++++++++++++++++++++++++++++ frontend/src/setting-index.js | 5 ++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index af3a0f8..8f03c87 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ auf nichts mehr: keine Posts, keine Hintergrund-Prüfungen. | Funktion | Was sie macht | |---|---| | 🎮 **Game-Server-Monitor** | DiscordGSM-Stil: pro Server ein Live-Embed (🟢/🔴, Name im Spiel, 🔒 bei Passwort oder Whitelist, Spieler-Balken, Map, Version, Mod-Anzahl, Spieler-Liste, Knöpfe für Verbinden, Mod-Download und frei eintragbare Links wie Regeln oder TeamSpeak, Ping); **alle Spiele, die gamedig kennt** — die Auswahl im Panel kommt aus der Bibliothek selbst, inklusive Standard-Port und Hinweis auf nötige Zugangs-Codes (Farming Simulator, Terraria) — plus FiveM + HTTP-Check; Down/Up-Alerts mit Ausfalldauer | -| 🖥️ **Panel-Anbindung** *(optional)* | Trägt der Betreiber unter „Server" die Adresse des [d4rk_gameserver](https://git.d4rkst3r.de/D4rkst3r/d4rk_media)-Panels und ein Lese-Zeichen ein, weiß der Monitor mehr als eine Abfrage hergibt. gamedig **fragt** einen Server — ein startendes Modpack antwortet nicht und sieht dadurch aus wie ein Ausfall (am ATM10 gemessen: 306 Sekunden bis zum ersten Spieler). Das Panel **sieht** den Container: 🟡 „Startet gerade" statt 🔴 „Offline", kein Fehlalarm während des Hochfahrens, kein Alarm für einen im Panel gestoppten Server — aber sehr wohl einer für Absturz, OOM-Kill oder fehlenden Container. Dazu RAM und CPU im Embed. Ohne Eintrag ändert sich nichts, und antwortet das Panel nicht, ebenfalls nicht | +| 🖥️ **Panel-Anbindung** *(optional)* | Trägt der Betreiber unter **Config → Game-Server** die Adresse des [d4rk_gameserver](https://git.d4rkst3r.de/D4rkst3r/d4rk_media)-Panels und ein Lese-Zeichen ein, weiß der Monitor mehr als eine Abfrage hergibt. gamedig **fragt** einen Server — ein startendes Modpack antwortet nicht und sieht dadurch aus wie ein Ausfall (am ATM10 gemessen: 306 Sekunden bis zum ersten Spieler). Das Panel **sieht** den Container: 🟡 „Startet gerade" statt 🔴 „Offline", kein Fehlalarm während des Hochfahrens, kein Alarm für einen im Panel gestoppten Server — aber sehr wohl einer für Absturz, OOM-Kill oder fehlenden Container. Dazu RAM und CPU im Embed. Ohne Eintrag ändert sich nichts, und antwortet das Panel nicht, ebenfalls nicht | | 🚜 **LS — Höfe & Preise** | Für Farming-Simulator-Server: Besitzkarte auf dem Luftbild des Servers (Parzellen nach Hof eingefärbt, Fläche = Hektar, Fahrzeuge und Spieler live), die Preiskurven übers Jahr mit „jetzt verkaufen oder warten", dazu **je Hof ein Embed**, das sich selbst aktualisiert: Land, Fuhrpark mit Wert und Betriebsstunden, was in die Werkstatt muss, was gewaschen gehört und was geladen ist. Dazu die **Modliste**: der Bot meldet, was neu, aktualisiert oder entfernt wurde, und auf `/mods/` steht jeder Mod einzeln zum Laden — durch den Bot hindurch, damit der Zugangs-Code des Spielservers nicht in einem Link landet. **Nicht möglich:** welche Frucht auf welchem Feld steht, und Tierställe — beides gibt der Feed nicht her (siehe [docs/ls-feed.md](docs/ls-feed.md)) | ### Server & Technik diff --git a/frontend/src/pages/Settings.jsx b/frontend/src/pages/Settings.jsx index 7ddb4ea..66a35df 100644 --- a/frontend/src/pages/Settings.jsx +++ b/frontend/src/pages/Settings.jsx @@ -3337,6 +3337,56 @@ export default function Settings({ me }) { + {/* Die Panel-Anbindung steht HIER und nicht nur auf der + Modul-Seite. Wer sie einrichten will, sucht sie bei den + Game-Servern -- dort, wo auch die Kanäle stehen. */} +
+ +

+ Der Monitor fragt einen Server ab. Ein startendes Modpack antwortet + nicht und sieht dadurch aus wie ein Ausfall — am ATM10 sind das 306 Sekunden + Fehlalarm bei jedem Neustart. Trägst du hier dein{' '} + d4rk_gameserver-Panel ein, sieht der Bot den Container: 🟡 + „Startet gerade" statt 🔴 „Offline", kein Alarm während des Hochfahrens und + keiner für einen im Panel gestoppten Server — aber sehr wohl einer für + Absturz, vollen Speicher oder fehlenden Container. Dazu RAM und CPU im + Embed. Leer lassen heißt: alles bleibt wie bisher. +

+
+
+ + setForm({ ...form, panel_url: e.target.value })} + /> +
+
+ + setForm({ ...form, panel_zeichen: e.target.value })} + /> +
+
+
+
+ +
+ {servers.length > 0 && (
{servers.map((s) => ( diff --git a/frontend/src/setting-index.js b/frontend/src/setting-index.js index 925845c..2114212 100644 --- a/frontend/src/setting-index.js +++ b/frontend/src/setting-index.js @@ -33,6 +33,11 @@ export const SETTING_INDEX = [ { id: 'backup_channel_id', tab: 'system', label: 'Backup-Kanal', find: 'sicherung upload' }, { id: 'status_channel_id', tab: 'server', label: 'Server-Status-Kanal', find: 'monitor game embed' }, { id: 'server_alert_channel_id', target: 'status_channel_id', tab: 'server', label: 'Alarm-Kanal', find: 'down ausfall alert' }, + // Ohne diese zwei Zeilen findet die Suche das Feld nicht, und dann sucht + // man es im Reiter "Game-Server" mit den Augen -- genau so ist es dem + // Betreiber ergangen. + { id: 'panel_url', tab: 'server', label: 'Panel-Adresse', find: 'gameserver panel d4rk_gameserver startet gerade container docker' }, + { id: 'panel_zeichen', tab: 'server', label: 'Panel-Zeichen', find: 'panel token bearer zugang programme schluessel' }, /* ── Rollen ─────────────────────────────────────── */ { id: 'devlog_ping_role_id', tab: 'feeds', label: 'Devlog-Ping-Rolle', find: 'benachrichtigung abo erwähnen' },