From 1247bc2035c600de75eb6092caf5abd01a78ae22 Mon Sep 17 00:00:00 2001 From: Jonas Date: Mon, 18 Apr 2022 22:39:10 +0200 Subject: [PATCH] closing lobby during game adds game to finished games list. --- .../ch/unibas/dmi/dbis/cs108/BudaLogConfig.java | 2 +- .../ch/unibas/dmi/dbis/cs108/gamelogic/Game.java | 2 +- .../multiplayer/client/gui/chat/ChatApp.java | 2 +- .../cs108/multiplayer/server/ClientHandler.java | 16 ++++++++++++++-- .../server/JServerProtocolParser.java | 2 +- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/BudaLogConfig.java b/src/main/java/ch/unibas/dmi/dbis/cs108/BudaLogConfig.java index 0d809eb..11e8ce0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/BudaLogConfig.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/BudaLogConfig.java @@ -19,7 +19,7 @@ public class BudaLogConfig { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); - loggerConfig.setLevel(Level.INFO); // change level here + loggerConfig.setLevel(Level.ERROR); // change level here ctx.updateLoggers(); // This causes all Loggers to refetch information from their LoggerConfig. } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java index ea1db1c..31e8bca 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/gamelogic/Game.java @@ -109,7 +109,7 @@ public class Game implements Runnable { LOGGER.info(gameState.toString()); i = 0; - while (isOngoing == true) { + while (isOngoing) { if (!isDay) { LOGGER.info("NIGHT"); gameOverCheck = voteHandler.ghostVote(gameState.getPassengerTrain(), this); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatApp.java index 5386a24..39e5980 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/chat/ChatApp.java @@ -83,7 +83,7 @@ public class ChatApp extends Application { Objects.requireNonNull(ChatApp.class.getResource( "splitPaneChatView.fxml"))); LOGGER.info("2"); - // TODO bin chatController.getChatPaneRoot() border to root border for rezising + // TODO bin chatController.getChatPaneRoot() border to root border for resizing Scene scene = new Scene(root); LOGGER.info("3"); scene.setRoot(root); 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 5cf6e7d..071d248 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 @@ -217,9 +217,13 @@ public class ClientHandler implements Runnable { */ public void broadcastChatMessageToAll(String msg) { for (ClientHandler client : connectedClients) { + + // we can un-comment this if we want broadcast to only send to everyone else, excluding the person who sent it. + /* if (client.getClientUserName().equals(this.getClientUserName())) { continue; } + */ client.sendMsgToClient(Protocol.printToClientChat + "$" + clientUserName + ": " + msg); } } @@ -459,6 +463,8 @@ public class ClientHandler implements Runnable { Game game = l.getGame(); if (game != null) { l.getGame().getGameState().handleClientDisconnect(this); + l.removeGameFromRunningGames(game); + l.addGameToFinishedGames(game); } } } @@ -523,13 +529,19 @@ public class ClientHandler implements Runnable { } /** - * Lists all Games currenty running and already finished and displays it to the client handled by + * Lists all Games currently running and already finished and displays it to the client handled by * this */ public void listGames() { - if (Lobby.runningGames.isEmpty() && Lobby.finishedGames.isEmpty()) { + if (Lobby.runningGames.isEmpty() && Lobby.finishedGames.isEmpty() && Lobby.lobbies.isEmpty()) { sendAnnouncementToClient("No Games"); } else { + sendAnnouncementToClient("Open Games (i.e. open Lobbies):"); + for (Lobby l : Lobby.lobbies) { + if (l.getLobbyIsOpen()) { + sendAnnouncementToClient(" - Lobby Nr. " + l.getLobbyID()); + } + } sendAnnouncementToClient("Running Games:"); try { for (Game runningGame : Lobby.runningGames) { 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 b5bb04b..c131f08 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 @@ -31,7 +31,7 @@ public class JServerProtocolParser { try { header = msg.substring(0, 5); if (!header.equals(Protocol.pingBack) && !header.equals( - Protocol.pingFromClient)) { //for debuging without constant pings + Protocol.pingFromClient)) { //for debugging without constant pings LOGGER.debug("got message: " + msg + "."); } } catch (IndexOutOfBoundsException e) {