From 838f59b9aaff1893ca5351c94862b41b246a9d84 Mon Sep 17 00:00:00 2001 From: Daniel Grigencha Date: Mon, 2 Dec 2024 23:22:45 +0100 Subject: [PATCH] Updated 'ServerState' class. Updated the 'ServerState' class by filling the 'received(LeaveGameMessage msg, int from)' in it. --- .../java/pp/mdga/server/automaton/ServerState.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java index da9ebc44..0a718927 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java @@ -1,6 +1,8 @@ package pp.mdga.server.automaton; import pp.mdga.message.client.*; +import pp.mdga.message.server.LobbyPlayerLeaveMessage; +import pp.mdga.message.server.ShutdownMessage; import pp.mdga.server.ServerGameLogic; /** @@ -75,7 +77,15 @@ public void received(JoinedLobbyMessage msg, int from) {} * @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. */ - public void received(LeaveGameMessage msg, int from) {} + public void received(LeaveGameMessage msg, int from) { + if (from == this.logic.getGame().getHost()) { + this.logic.getServerSender().broadcast(new ShutdownMessage()); + this.logic.getServerSender().shutdown(); + } + this.logic.getGame().removePlayer(from); + this.logic.getServerSender().broadcast(new LobbyPlayerLeaveMessage(from)); + this.logic.getServerSender().disconnectClient(from); + } /** * This method will be called whenever the server received a LobbyReadyMessage message.