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 0ba19f9..99b0873 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 @@ -326,8 +326,15 @@ public class Client { break; case GuiParameters.updateGameState: gameStateModel.setGSFromString(data); + gameController.updateRoomLabels(); break; case GuiParameters.noiseHeardAtPosition: + try { + int position = Integer.parseInt(data); + determineNoiseDisplay(position); + } catch (Exception e) { + LOGGER.warn("Not a position given for noise"); + } break; case GuiParameters.listOfLobbies: break; @@ -339,7 +346,23 @@ public class Client { } + } + public void determineNoiseDisplay(int position) { + switch (position) { + case 0: + gameController.noiseDisplay0(); + case 1: + gameController.noiseDisplay1(); + case 2: + gameController.noiseDisplay2(); + case 3: + gameController.noiseDisplay3(); + case 4: + gameController.noiseDisplay4(); + case 5: + gameController.noiseDisplay5(); + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java index a91a555..2ad6979 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/JClientProtocolParser.java @@ -70,7 +70,7 @@ public class JClientProtocolParser { } catch (Exception e) { LOGGER.warn("No parameter in PTGUI"); } - + c.sendToGUI(parameter,data); break; default: System.out.println("Received unknown command"); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java index f1845b5..7de6464 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java @@ -1,6 +1,7 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.GameStateModel; +import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters; import javafx.event.EventHandler; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; @@ -150,7 +151,9 @@ public class GameController { * Sends a noise message, to the server, should be a gui message? */ public void noise() { - client.getClient().sendMsgToServer("noise"); //TODO: Add message that server understands + client.getClient().sendMsgToServer( + Protocol.sendMessageToAllClients + "$" + Protocol.printToGUI + GuiParameters.noiseHeardAtPosition + "$" + + client.getClient().getPosition()); //TODO: Test!! } /** diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java index 2e8b596..b9e3ae1 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/Protocol.java @@ -143,6 +143,12 @@ public class Protocol { */ public static final String highScoreList = "HSCOR"; + /** + * The client requests that a message in {@code STACL$msg} is sent to all clients but only the message + * without a specific Server message to be added. + */ + public static final String sendMessageToAllClients = "STACL"; + 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 c9029ba..54081a6 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 @@ -112,6 +112,9 @@ public class JServerProtocolParser { case Protocol.highScoreList: h.sendHighScoreList(); break; + case Protocol.sendMessageToAllClients: + msg = msg.substring(6); + h.sendMsgToClient(msg); default: System.out.println("Received unknown command"); }