From efc7a2f09d4159f2c7fc08cd123a40cf42a64eb5 Mon Sep 17 00:00:00 2001 From: Daniel Grigencha Date: Sun, 1 Dec 2024 16:49:05 +0100 Subject: [PATCH] added logic to the 'LobbyState' class - for leaving the lobby --- .../pp/mdga/server/automaton/LobbyState.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java index d265592c..cbc2af1b 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java @@ -3,10 +3,7 @@ import pp.mdga.game.Color; import pp.mdga.game.Player; import pp.mdga.message.client.*; -import pp.mdga.message.server.LobbyPlayerJoinedMessage; -import pp.mdga.message.server.ServerStartGameMessage; -import pp.mdga.message.server.UpdateReadyMessage; -import pp.mdga.message.server.UpdateTSKMessage; +import pp.mdga.message.server.*; import pp.mdga.server.ServerGameLogic; import java.util.Map; @@ -105,6 +102,18 @@ public void received(LobbyNotReadyMessage msg, int from) { this.logic.getServerSender().broadcast(new UpdateReadyMessage(from, false)); } + /** + * + * @param msg as the message which was sent by the player as a LeaveGameMessage object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(LeaveGameMessage msg, int from) { + this.logic.getGame().removePlayer(from); + this.logic.getServerSender().broadcast(new LobbyPlayerLeaveMessage(from)); + this.logic.getServerSender().disconnectClient(from); + } + /** * @param msg as the message which was sent by the player as a ForceStartGame object. * @param from as the client id of the player as an Integer.