diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/InputToProtocolMap.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/InputToProtocolMap.java index d2e1aa2..f93f903 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/InputToProtocolMap.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/InputToProtocolMap.java @@ -1,16 +1,16 @@ package ch.unibas.dmi.dbis.cs108.Multiplayer.Client; -import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBCommands; +import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NightTrainProtocol; import java.util.HashMap; -public class InputToProtocolMap extends HashMap { +public class InputToProtocolMap extends HashMap { public InputToProtocolMap(){ super(); - this.put("chat", NTtBCommands.CHATA); - this.put("cn", NTtBCommands.CUSRN); - this.put("list", NTtBCommands.LISTP); - this.put("exit", NTtBCommands.LEAVG); + this.put("chat", NightTrainProtocol.NTtBCommands.CHATA); + this.put("cn", NightTrainProtocol.NTtBCommands.CUSRN); + this.put("list", NightTrainProtocol.NTtBCommands.LISTP); + this.put("exit", NightTrainProtocol.NTtBCommands.LEAVG); //TODO extend according to extended function } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/NTtBProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/NTtBProtocolParser.java index 2a1fb8d..f14947c 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/NTtBProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Client/NTtBProtocolParser.java @@ -1,11 +1,6 @@ package ch.unibas.dmi.dbis.cs108.Multiplayer.Client; -import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBCommands; -import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBFormatMsg; - import java.util.ArrayList; -import java.util.HashMap; -import java.util.Locale; import java.util.Scanner; /** diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtBCommands.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtBCommands.java deleted file mode 100644 index a9f2fb4..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtBCommands.java +++ /dev/null @@ -1,44 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol; - - -import java.util.HashMap; - -public enum NTtBCommands { - /** - * Client commands: - * CRTGM: Create a new game - * CHATA: chat to all - * CHATW: whisper chat - * CHATG: ghost chat - * LEAVG: leave a game - * JOING: join a game - * VOTEG: ghost voting who to infect - * VOTEH: humans voting whos the ghost - * QUITS: quit server/ leave servr - * LISTP: list players/clients in session with the Server - */ - - - - //Client Commands - CRTGM, CHATA, CHATW, CHATG, LEAVG, JOING, VOTEG, QUITS, LISTP, CUSRN, - - /** - * MSGRS: "Message recieved": Paramaters: a string detailing to the client that and what the server recieved as command. - */ - //Server Responses - MSGRS; - - //Allowes to associate strings with the enum objects. the enum fields are easier for switch statements. - private HashMap stringNTtBCommandsHashMap = new HashMap<>(); - - private NTtBCommands(){ - for(NTtBCommands cmd : NTtBCommands.values()){ - stringNTtBCommandsHashMap.put(cmd.name(), cmd); - } - } - - public boolean isLegal(String s){ - return false; - } -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtB_Protocol_Definition.txt b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtB_Protocol_Definition.txt new file mode 100644 index 0000000..7505490 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NTtB_Protocol_Definition.txt @@ -0,0 +1,17 @@ +/** + * Client commands: + * CRTGM: Create a new game + * CHATA: chat to all + * CHATW: whisper chat + * CHATG: ghost chat + * LEAVG: leave a game + * JOING: join a game + * VOTEG: ghost voting who to infect + * VOTEH: humans voting whos the ghost + * QUITS: quit server/ leave servr + * LISTP: list players/clients in session with the Server + */ + /** + Server Commands: + * MSGRS: "Message recieved": Paramaters: a string detailing to the client that and what the server recieved as command. + */ \ No newline at end of file diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NightTrainProtocol.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NightTrainProtocol.java index 4800234..b721b85 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NightTrainProtocol.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/NightTrainProtocol.java @@ -1,9 +1,26 @@ package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol; + +import java.util.HashMap; +import java.util.HashSet; + /* The NightTrainProtocol implements the Communication-Protocol of the "Night Train to Budapest"" game. It acts as an Interface between Client and server. All Client Messages are piped through this protocol, in order for the Server to execute the correct action. It is used by the ClientHandler for this purpose. */ + public class NightTrainProtocol { + public static HashMap stringNTtBCommandsHashMap = new HashMap<>(); + public static ProtocolValidator protocolValidator; + public static HashSet legalStrings; + public enum NTtBCommands { + //Client Commands + CRTGM, CHATA, CHATW, CHATG, LEAVG, JOING, VOTEG, QUITS, LISTP, CUSRN, + //Server Responses + MSGRS; + + //Allowes to associate strings with the enum objects. the enum fields are easier for switch statements. + + } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolValidator.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolValidator.java index 534ef55..48318d0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolValidator.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolValidator.java @@ -7,11 +7,11 @@ import java.util.HashSet; public class ProtocolValidator { //TODO String or NTtBCommands HashSet? - public static HashSet legalCommands = initializeLegalCommands(); + public static HashSet legalCommands = initializeLegalCommands(); //Initialize the legalCommands set with the protocol values. - private static HashSet initializeLegalCommands(){ - EnumSet enumVals = EnumSet.allOf(NTtBCommands.class); + private static HashSet initializeLegalCommands(){ + EnumSet enumVals = EnumSet.allOf(NightTrainProtocol.NTtBCommands.class); return new HashSet<>(enumVals); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientMsgDecoder.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientMsgDecoder.java index ed0799c..1e98201 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientMsgDecoder.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/ClientMsgDecoder.java @@ -1,13 +1,12 @@ package ch.unibas.dmi.dbis.cs108.Multiplayer.Server; -import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBCommands; +import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NightTrainProtocol; import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.ProtocolDecoder; import java.util.List; -import java.util.Scanner; public class ClientMsgDecoder implements ProtocolDecoder { - private NTtBCommands protocol; + private NightTrainProtocol.NTtBCommands protocol; @Override public String decodeMsg(String msg) {