diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/highscore/OgGhostHighScore.java b/src/main/java/ch/unibas/dmi/dbis/cs108/highscore/OgGhostHighScore.java index 9e31856..fd77358 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/highscore/OgGhostHighScore.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/highscore/OgGhostHighScore.java @@ -1,6 +1,7 @@ package ch.unibas.dmi.dbis.cs108.highscore; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.multiplayer.server.ClientHandler; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -83,8 +84,8 @@ public class OgGhostHighScore { hm.remove(firstplace); } } - return sb.toString(); + } /** 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 db3bcd2..0ba20c5 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 @@ -402,6 +402,10 @@ public class Client { break; case GuiParameters.newPlayerOnServer: addNewPlayerToGui(data); + break; + case GuiParameters.updateHighScore: + chatApp.getLoungeSceneViewController().addHighScore(data); + break; default: notificationTextDisplay(data); //TODO(Sebi,Seraina): should the gameController be in the Application just like the ChatController? 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 6ede8e5..050caa0 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 @@ -29,7 +29,6 @@ public class JClientProtocolParser { header = msg.substring(0, 5); } catch (IndexOutOfBoundsException e) { System.out.println("Received unknown command"); - e.printStackTrace(); } switch (header) { case Protocol.pingFromServer: 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 bf29859..0c26a83 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 @@ -199,7 +199,7 @@ public class GameController implements Initializable { */ public void addMessageToNotificationText(String msg) { LOGGER.trace("addMessage " + msg); - Text notification = new Text(msg); + Text notification = new Text("\\R" + msg); notification.setFill(Color.BLACK); notification.setStyle("-fx-font: 50 arial;"); Platform.runLater(new Runnable() { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index 56d0622..9702821 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -40,6 +40,7 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Text; +import javafx.scene.text.TextFlow; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -48,13 +49,16 @@ public class LoungeSceneViewController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(LoungeSceneViewController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + @FXML + private TextFlow highScore; @FXML private SplitPane chatSplitPane; @FXML private AnchorPane chatAnchorPane; @FXML private AnchorPane otherNotificationAnchorPane; - + @FXML + public Button highScoreButton; @FXML private Button leaveLobbyButton; @FXML @@ -486,5 +490,26 @@ public class LoungeSceneViewController implements Initializable { public static void setClient(ClientModel client) { LoungeSceneViewController.client = client; } + + public void sendHIghScore() { + client.getClient().sendMsgToServer(Protocol.highScoreList); + } + + public void addHighScore(String data) { + String[] arguments = data.split("/n"); + LOGGER.debug(arguments.length); + Platform.runLater(new Runnable() { + @Override + public void run() { + highScore.getChildren().clear(); + for(String argument : arguments) { + LOGGER.debug("HighScore " + argument); + Text text = new Text(argument + System.lineSeparator()); + text.setFill(Color.BLACK); + highScore.getChildren().add(text); + } + } + }); + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java index 348f77f..19ffd3f 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/helpers/GuiParameters.java @@ -85,4 +85,6 @@ public class GuiParameters { * RMVLST$} */ public static final String removePlayerFromList = "RMVLST"; + + public static final String updateHighScore = "HISCR"; } 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 acfa8bd..897792b 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 @@ -652,8 +652,15 @@ public class ClientHandler implements Runnable { public void sendHighScoreList() { String list = OgGhostHighScore.formatGhostHighscoreList(); String[] listarray = list.split("\\R"); + StringBuilder forGui = new StringBuilder(); for (String s : listarray) { sendAnnouncementToClient(s); + forGui.append(s).append("/n"); } + sendMsgToClient(Protocol.printToGUI + "$" + GuiParameters.updateHighScore + "$" + forGui.toString()); } + + } + + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml index 8c6467c..2be235e 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml @@ -9,7 +9,7 @@ - + @@ -107,11 +107,11 @@ - - + diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml index 81237cc..1acc649 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml @@ -1,11 +1,13 @@ + + @@ -13,6 +15,7 @@ +