diff --git a/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java b/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java index e9a6d14..f8bcf1e 100644 --- a/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java +++ b/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java @@ -52,7 +52,19 @@ public class GameWebSocketHandler { // Connection geschlossen ws.onClose(ctx -> { String gameId = ctx.pathParam("gameId"); + String username = ctx.queryParam("username"); service.removeSession(gameId, ctx); + + // Spieler aus der Spielerliste entfernen + var game = service.getOrCreateGame(gameId); + if (username != null && game.players().contains(username)) { + game.players().remove(username); + game.scores().remove(username); + // Optional: auch die Tracks entfernen + game.playerTracks().remove(username); + } + service.broadcastPlayers(gameId); + }); // Eingehende Nachrichten (Guesses & Player-Requests)