mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-14 16:46:06 +00:00
Close private lobby when host leaves 🚪 (#3503)
## Description: When the host of a private lobby disconnects before the game starts, the lobby is now closed: - **Server:** Detects host disconnection via `creatorPersistentID` match, kicks all remaining clients with a `host_left` reason, and marks the game as ended so it's cleaned up by the game manager and can no longer be joined. - **Client:** Participants receive an `alert()` saying "The host has left the lobby." and their JoinLobbyModal is closed automatically via the `leave-lobby` event. - **Phase logic:** `phase()` now returns `Finished` for ended private lobbies that haven't started, preventing the game from lingering in `Lobby` state. ## Please complete the following: - [X] I have added screenshots for all UI updates - [X] I process any text displayed to the user through translateText() and I've added it to the en.json file - [X] I have added relevant tests to the test directory - [X] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin
This commit is contained in:
@@ -172,6 +172,15 @@ export function joinLobby(
|
||||
composed: true,
|
||||
}),
|
||||
);
|
||||
} else if (message.error === "kick_reason.host_left") {
|
||||
alert(translateText("kick_reason.host_left"));
|
||||
document.dispatchEvent(
|
||||
new CustomEvent("leave-lobby", {
|
||||
detail: { lobby: lobbyConfig.gameID, cause: "host-left" },
|
||||
bubbles: true,
|
||||
composed: true,
|
||||
}),
|
||||
);
|
||||
} else {
|
||||
showErrorModal(
|
||||
message.error,
|
||||
|
||||
Reference in New Issue
Block a user