fix: die Panel-Anbindung steht jetzt dort, wo man sie sucht
Deploy / check (push) Canceled after 0s
Deploy / deploy (push) Canceled after 0s

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 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 18:38:52 +02:00
co-authored by Claude Opus 5
parent d6124fc2cd
commit 21eab627b9
3 changed files with 56 additions and 1 deletions
+1 -1
View File
@@ -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/<server>` 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
+50
View File
@@ -3337,6 +3337,56 @@ export default function Settings({ me }) {
<button className="btn btn-save" onClick={save}>Kanäle speichern</button>
</div>
{/* 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. */}
<div className="field" data-setting="panel_url">
<label>
Panel-Anbindung
<span className="field-hint">
optional unterscheidet startet gerade" von „offline"
</span>
</label>
<p className="section-intro" style={{ marginTop: 0 }}>
Der Monitor <b>fragt</b> 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{' '}
<b>d4rk_gameserver</b>-Panel ein, <b>sieht</b> 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.
</p>
<div className="field-row">
<div style={{ flex: 1 }}>
<label>Panel-Adresse</label>
<input
type="text"
placeholder="https://panel.d4rkst3r.de"
value={form.panel_url ?? ''}
onChange={(e) => setForm({ ...form, panel_url: e.target.value })}
/>
</div>
<div style={{ flex: 1 }} data-setting="panel_zeichen">
<label>
Panel-Zeichen{' '}
<span className="field-hint">
im Panel unter Zugang für Programme" anlegen — darf nur lesen
</span>
</label>
<input
type="text"
placeholder="d4rkp_"
value={form.panel_zeichen ?? ''}
onChange={(e) => setForm({ ...form, panel_zeichen: e.target.value })}
/>
</div>
</div>
</div>
<div className="settings-actions" style={{ marginBottom: '1.4rem' }}>
<button className="btn btn-save" onClick={save}>Panel-Anbindung speichern</button>
</div>
{servers.length > 0 && (
<div className="key-list" style={{ marginBottom: '1.2rem' }}>
{servers.map((s) => (
+5
View File
@@ -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' },