From 191251b0a8e866e00805de026d3ea484608de2c6 Mon Sep 17 00:00:00 2001 From: sebaschi <74497638+sebaschi@users.noreply.github.com> Date: Mon, 4 Apr 2022 13:42:01 +0200 Subject: [PATCH 1/2] Extended CentralServerData & GameSessionData with Sets & Maps that might be usefull. --- .../cs108/sebaschi/CentralServerData.java | 21 ++++++++++++++++++- .../dbis/cs108/sebaschi/GameSessionData.java | 21 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java index 3293e61..04c2d08 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java @@ -1,10 +1,29 @@ package ch.unibas.dmi.dbis.cs108.sebaschi; +import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.gamelogic.Game; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.Client; +import java.net.Socket; +import java.util.Map; +import java.util.Set; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + /** * This Class Represents an Object containing different Maps, Lists and Sets wherein a server object * can find all needed data. An instance of this object can also be passed to other class-objects uf - * they need the same data. + * they need the same data. This Class is used to query for information in collections. */ public class CentralServerData { + public static final Logger LOGGER = LogManager.getLogger(); + public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + + private Set clientsOnServer; + private Set activeGames; + private Set gamesOpenToJoin; + + private Map clientSocketMap; + private Map socketClientMap; + private Map gameClientMap; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java index 621dbfe..e219a81 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java @@ -1,5 +1,26 @@ package ch.unibas.dmi.dbis.cs108.sebaschi; +import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Ghost; +import ch.unibas.dmi.dbis.cs108.gamelogic.klassenstruktur.Passenger; +import java.io.BufferedOutputStream; +import java.util.Set; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * Class that shall contain all non-game logik information + * relevant to a game session needed for client-server and client-client + * communication. + */ public class GameSessionData { + public static final Logger LOGGER = LogManager.getLogger(); + public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + + CentralServerData globalData; + + Set passengers; + Set clientOutputStreams; + Set ghosts; } From 35f6bd48ab0f2f1bc57cc15ddf437b53c7903fde Mon Sep 17 00:00:00 2001 From: sebaschi <74497638+sebaschi@users.noreply.github.com> Date: Mon, 4 Apr 2022 13:46:02 +0200 Subject: [PATCH 2/2] Formatted according to google-style and added a ServerLobby class meant to represent the context of the game when not in a lobby or in a running game. --- .../dmi/dbis/cs108/sebaschi/CentralServerData.java | 2 +- .../dmi/dbis/cs108/sebaschi/GameSessionData.java | 5 ++--- .../ch/unibas/dmi/dbis/cs108/sebaschi/ServerLobby.java | 10 ++++++++++ 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/ServerLobby.java diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java index 04c2d08..2c8d7b1 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/CentralServerData.java @@ -25,5 +25,5 @@ public class CentralServerData { private Map clientSocketMap; private Map socketClientMap; - private Map gameClientMap; + private Map gameClientMap; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java index e219a81..fe2b850 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/GameSessionData.java @@ -9,9 +9,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** - * Class that shall contain all non-game logik information - * relevant to a game session needed for client-server and client-client - * communication. + * Class that shall contain all non-game logik information relevant to a game session needed for + * client-server and client-client communication. */ public class GameSessionData { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/ServerLobby.java b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/ServerLobby.java new file mode 100644 index 0000000..f0bbedf --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/sebaschi/ServerLobby.java @@ -0,0 +1,10 @@ +package ch.unibas.dmi.dbis.cs108.sebaschi; + +/** + * This class is just everyone on the server, which games are open to join, who is in session. I.E. + * the context of the game just after joining the server, before starting a game and entering into a + * lobby. + */ +public class ServerLobby { + +}