From ec661365bd06fd164081335a083c9a164db5e1e6 Mon Sep 17 00:00:00 2001 From: Seraina Date: Mon, 16 May 2022 19:47:01 +0200 Subject: [PATCH] Made sure the start button only has functionality when in a lobby --- .../unibas/dmi/dbis/cs108/multiplayer/client/Client.java | 8 ++++++-- .../dmi/dbis/cs108/multiplayer/server/ClientHandler.java | 1 + .../cs108/multiplayer/server/JServerProtocolParser.java | 1 - .../dmi/dbis/cs108/multiplayer/server/LobbyUpdater.java | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index 08b1c5b..7bf0de0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -416,8 +416,12 @@ public class Client { removeLobbyFromGui(data); break; case GuiParameters.updateLobbyString: - lobbyDisplayHandler.updateLobbies(data); - ChatApp.getListController().updateList(); + if(!data.isEmpty()) { + lobbyDisplayHandler.updateLobbies(data); + ChatApp.getListController().updateList(); + } else { + ChatApp.getListController().clearVBox(); + } break; default: notificationTextDisplay(data); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java index 860f2fe..fe0a731 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java @@ -415,6 +415,7 @@ public class ClientHandler implements Runnable { Thread t = new Thread(game); t.start(); l.addGameToRunningGames(game); + sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToGame + "$"); } else { sendAnnouncementToClient("Only the admin can start the game"); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java index e5c8416..0bbaa0a 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/JServerProtocolParser.java @@ -115,7 +115,6 @@ public class JServerProtocolParser { break; case Protocol.startANewGame: h.startNewGame(); - h.sendMsgToClientsInLobby(Protocol.printToGUI + "$" + GuiParameters.viewChangeToGame + "$"); break; case Protocol.listGames: h.listGames(); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/LobbyUpdater.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/LobbyUpdater.java index d6d4fd6..8586eb6 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/LobbyUpdater.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/LobbyUpdater.java @@ -27,6 +27,9 @@ public class LobbyUpdater implements Runnable{ if (!Lobby.lobbies.isEmpty()) { client.sendMsgToClient( Protocol.printToGUI + "$" + GuiParameters.updateLobbyString + "$" + lobbiesAsString); + } else{ + client.sendMsgToClient( + Protocol.printToGUI + "$" + GuiParameters.updateLobbyString + "$"); } } }