Lobby: SPIELEN des Erstellers startet den Server

Kein eigener Server-starten-Knopf mehr: playLobby schaltet beim Ersteller den Lobby-Server ein
und startet das Spiel, die anderen koennen spielen, sobald er laeuft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 19:47:47 +01:00
co-authored by Claude Opus 5.5
parent 07da29ab94
commit 884492f665
5 changed files with 18 additions and 7 deletions
+11 -4
View File
@@ -329,13 +329,20 @@ function lobbyCard() {
}
const play = h("button", { class: "btn primary play", type: "button" }, t("SPIELEN"));
play.disabled = !lobby.serverOnline;
play.addEventListener("click", () => busy(play, async () => { await call("playLobby"); toast(t("Bus-Simulator 2012 startet und verbindet mit der Lobby …")); }));
// Beim Ersteller startet SPIELEN den Lobby-Server gleich mit, die anderen koennen spielen, sobald er laeuft
play.disabled = !lobby.serverOnline && !lobby.isOwner;
play.addEventListener("click", () => busy(play, async () => {
await call("playLobby", { startServer: lobby.isOwner && !lobby.serverOnline });
toast(t("Bus-Simulator 2012 startet und verbindet mit der Lobby …"));
await loadSocial();
drawSocial();
}));
const state = h("div", { class: "server-state" },
h("span", { class: "dot " + (lobby.serverOnline ? "ok" : "bad") }),
h("span", { style: "flex:1" }, lobby.serverOnline ? t("Server läuft") : lobby.isOwner ? t("Server aus – starte ihn, dann können alle spielen") : t("Server aus – warte, bis {0} ihn startet", lobby.owner)),
lobby.isOwner ? (lobby.serverOnline ? action(t("Server stoppen"), "", "lobbyStop") : action(t("Server starten"), "primary", "lobbyStart")) : null);
h("span", { style: "flex:1" }, lobby.serverOnline ? t("Server läuft – alle können SPIELEN drücken")
: lobby.isOwner ? t("Drück SPIELEN – der Server startet dann für die ganze Lobby") : t("Warte, bis {0} SPIELEN drückt – dann startet der Server", lobby.owner)),
lobby.isOwner && lobby.serverOnline ? action(t("Server stoppen"), "", "lobbyStop") : null);
const members = h("div", { class: "people" }, ...lobby.members.map((m) => h("div", { class: "person" },
h("span", { class: "dot " + (m.online ? "ok" : "") }),