From a6e412f5525c49c377ddb0d2aa09689d20267fb1 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sat, 30 Apr 2022 13:16:05 +0200 Subject: [PATCH] Wrapped printToGUI method contents in try-catch block, in case the fx components haven't been initialized yet --- .../dbis/cs108/multiplayer/client/Client.java | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 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 99b0873..1a97f7f 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 @@ -317,32 +317,36 @@ public class Client { *TODO(Seraina&Sebi): evtl. auslagern? */ public void sendToGUI(String parameter, String data) { - switch (parameter) { - case ClientGameInfoHandler.itsNightTime: //ClientGameInfoHandler - gameStateModel.setDayClone(false); - break; - case ClientGameInfoHandler.itsDayTime: //ClientGameInfoHandler - gameStateModel.setDayClone(true); - 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; - case GuiParameters.listOfPLayers: - break; - default: - gameController.addMessageToNotificationText(data); //TODO(Sebi,Seraina): should the gameController be in the Application just like the ChatController? - + try { + switch (parameter) { + case ClientGameInfoHandler.itsNightTime: //ClientGameInfoHandler + gameStateModel.setDayClone(false); + break; + case ClientGameInfoHandler.itsDayTime: //ClientGameInfoHandler + gameStateModel.setDayClone(true); + 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; + case GuiParameters.listOfPLayers: + break; + default: + gameController.addMessageToNotificationText( + data); //TODO(Sebi,Seraina): should the gameController be in the Application just like the ChatController? + } + } catch (Exception e) { + LOGGER.warn("Communication with GUI currently not possible: " + e.getMessage()); }