Connect-Links im Discord anklickbar, und Mods bekommen einen eigenen Knopf
Im Kanal stand woertlich das da:
[https://cfx.re/join/4odv68](https://cfx.re/join/4odv68)
Der Link war sein eigener Linktext. Discord macht aus der nackten URL zwischen
den eckigen Klammern zuerst selbst einen Link und kommt mit der
Masked-Link-Schreibweise dann nicht mehr durch — heraus kommen die Klammern im
Klartext. Der Kommentar an der Stelle behauptete ausserdem, so seien steam://
und Konsorten klickbar. Waren sie nie.
Jetzt sind es Link-Knoepfe unter dem Embed. Die Frage nach der Schreibweise
stellt sich damit gar nicht mehr, und ein Knopf sieht auch nach einem aus.
Discord nimmt dort nur http(s) an; fivem:// und steam:// stehen deshalb weiter
im Embed, aber als Codeblock zum Kopieren statt als toter Link.
Dazu ein eigenes Feld fuer den Mod-Download. Vorher landete der beim
Connect-Link, weil es kein anderes gab — und dann fuehrte "Verbinden" zu einer
ZIP-Datei. Farming Simulator liefert die Modliste ohnehin mit, also steht die
Anzahl jetzt auch im Embed und als Chip auf der Seite.
Beim Testen aufgefallen: eine neue Spalte hat jeden Aufrufer umgebracht, der
sie noch nicht kannte — better-sqlite3 wirft bei einem fehlenden benannten
Parameter. createGameserver und updateGameserver fuellen die Felder jetzt
einmal auf, statt das an jeder Aufrufstelle nachzuziehen.
Geprueft: was in einen Knopf darf und was nicht (https, http, fivem://,
steam://, leer, null, Leerzeichen, Satz mit Link drin), beide Knoepfe in einer
Reihe, nur einer, gar keiner — eine leere Reihe weist Discord ab —, https
landet im Knopf und nicht doppelt auch im Embed, fivem:// umgekehrt, Mods bei
47/0/null, und der Aufruf ohne die neue Spalte. Seite im laufenden Frontend
angesehen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -225,11 +225,13 @@ export function registerApiRoutes(app, client) {
|
||||
image_url: s.image_url || null,
|
||||
address: s.address || null,
|
||||
connect_url: s.connect_url || null,
|
||||
mods_url: s.mods_url || null,
|
||||
online: r?.online ?? null, // null = noch nie gecheckt
|
||||
players: r?.players ?? null,
|
||||
max: r?.max ?? null,
|
||||
map: r?.map ?? null,
|
||||
version: r?.version ?? null,
|
||||
mods: r?.mods ?? null,
|
||||
ping: r?.ping ?? null,
|
||||
// Namen im Spiel, so wie sie im Discord-Embed auch stehen
|
||||
spielerNamen: r?.online ? (r.playerNames ?? []) : [],
|
||||
@@ -1576,6 +1578,11 @@ ${rssItems}
|
||||
? String(body.image_url).trim().slice(0, 300)
|
||||
: '',
|
||||
token: String(body.token ?? '').trim().slice(0, 200),
|
||||
// Nur http(s) — daraus wird ein Link-Knopf, und Discord weist
|
||||
// alles andere ab. Unbrauchbares lieber hier verwerfen.
|
||||
mods_url: /^https?:\/\/.+/i.test(String(body.mods_url ?? '').trim())
|
||||
? String(body.mods_url).trim().slice(0, 300)
|
||||
: '',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user