Servername aus dem Spiel und ein Schloss fuer Passwort oder Whitelist
Der Name im Panel ist der, den DU vergibst — wie der Server sich im Spiel nennt, stand nirgends. Steht jetzt darunter, aber nur wenn es etwas anderes ist als der eingetragene Name; sonst haette dieselbe Zeile zweimal dagestanden. Beim Schloss war die Frage, wie viel die Abfrage ueberhaupt hergibt. Nachgesehen statt geraten: 31 der 358 gamedig-Protokolle melden ein Passwort. valve gehoert dazu, deckt also CS2, Rust, ARK, Squad, 7DTD, Zomboid, Gmod und DayZ ab. Minecraft nicht, Farming Simulator auch nicht — im LS-XML kommt das Wort Passwort kein einziges Mal vor. Und eine Whitelist meldet grundsaetzlich kein Spiel, die steht in einer Datei auf dem Server. Also beides: automatisch, wo es geht, und eine Einstellung, die es schlaegt. Wer "Whitelist" eintraegt, bekommt sie angezeigt, auch wenn der Server schweigt. Wichtig dabei ist der dritte Zustand. "Sagt nichts" ist nicht "offen" — deshalb `null` und kein `false`. Ein Schloss, das bei jedem schweigenden Server fehlt, waere eine Aussage, die wir nicht belegen koennen; umgekehrt waere ein Schloss ohne Grundlage eine Luege. Bei unbekannt steht schlicht nichts da. Geprueft: Einstellung schlaegt Messung in allen vier Faellen, automatisch mit true/false/null, fehlender Server, unbekannter Wert faellt auf automatisch zurueck statt zu sperren, Schloss im Embed-Titel nur wenn belegt, Spielname nur bei echtem Unterschied (auch mit Leerzeichen drumherum). Panel und /server-Seite im laufenden Frontend angesehen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -931,6 +931,9 @@ db.exec(`
|
||||
// weil sonst für jeden neuen Zweck eine Spalte dazukäme — und genau so
|
||||
// sind connect_url und mods_url entstanden.
|
||||
if (!cols.includes('links')) db.exec(`ALTER TABLE gameservers ADD COLUMN links TEXT NOT NULL DEFAULT '[]'`);
|
||||
// Wer darf drauf: 'auto' nimmt, was die Abfrage sagt. Nur die wenigsten
|
||||
// Spiele melden das — und eine Whitelist meldet gar keins.
|
||||
if (!cols.includes('zugang')) db.exec(`ALTER TABLE gameservers ADD COLUMN zugang TEXT NOT NULL DEFAULT 'auto'`);
|
||||
}
|
||||
// Die Auswahl im Panel bot mal Spiel-IDs an, die es bei gamedig gar nicht gibt.
|
||||
// Wer eine davon gewählt hat, hatte einen Server, der dauerhaft offline stand,
|
||||
@@ -944,13 +947,13 @@ db.exec(`
|
||||
for (const [alt, neu] of Object.entries(echteIds)) um.run(neu, alt);
|
||||
}
|
||||
const insertGameserver = db.prepare(`
|
||||
INSERT INTO gameservers (name, type, query_url, address, host, port, connect_url, image_url, token, mods_url, links)
|
||||
VALUES (@name, @type, @query_url, @address, @host, @port, @connect_url, @image_url, @token, @mods_url, @links)
|
||||
INSERT INTO gameservers (name, type, query_url, address, host, port, connect_url, image_url, token, mods_url, links, zugang)
|
||||
VALUES (@name, @type, @query_url, @address, @host, @port, @connect_url, @image_url, @token, @mods_url, @links, @zugang)
|
||||
`);
|
||||
const updateGameserverStmt = db.prepare(`
|
||||
UPDATE gameservers SET name = @name, type = @type, query_url = @query_url, address = @address,
|
||||
host = @host, port = @port, connect_url = @connect_url, image_url = @image_url, token = @token,
|
||||
mods_url = @mods_url, links = @links
|
||||
mods_url = @mods_url, links = @links, zugang = @zugang
|
||||
WHERE id = @id
|
||||
`);
|
||||
const setGameserverMessageStmt = db.prepare('UPDATE gameservers SET message_id = ? WHERE id = ?');
|
||||
@@ -962,7 +965,7 @@ const deleteGameserverStmt = db.prepare('DELETE FROM gameservers WHERE id = ?');
|
||||
// auffüllen ist billiger, als das an jeder Aufrufstelle nachzuziehen.
|
||||
const gameserverFelder = {
|
||||
name: '', type: 'fivem', query_url: '', address: '', host: '', port: null,
|
||||
connect_url: '', image_url: '', token: '', mods_url: '', links: '[]',
|
||||
connect_url: '', image_url: '', token: '', mods_url: '', links: '[]', zugang: 'auto',
|
||||
};
|
||||
// Links dürfen als Liste hereinkommen — so gibt getGameserver sie ja auch
|
||||
// heraus. better-sqlite3 kann kein Array binden und würde sonst werfen.
|
||||
|
||||
Reference in New Issue
Block a user