From 532159d46673026cc3b603ea21a2e2babc659f14 Mon Sep 17 00:00:00 2001 From: Sebastian Lenzlinger Date: Thu, 24 Mar 2022 12:53:30 +0100 Subject: [PATCH] Updates NTtBCommands, that defines the NTtB Protocol, to include which commands mean what. Added Ping/pong classes where Pinging and Ping-Handling could be implemented. Tried to define useful interfaces. Added Some Command Classes, unsure if they will be needed. --- .../Multiplayer/Protocol/NTtBCommands.java | 16 ++++++++++++- .../Multiplayer/Protocol/ProtocolDecoder.java | 5 ++++ .../Multiplayer/Protocol/ProtocolParser.java | 2 +- .../Multiplayer/Protocol/methods/Chat.java | 4 ++++ .../Multiplayer/Protocol/methods/NewGame.java | 4 ++++ .../Multiplayer/Protocol/methods/QUITS.java | 4 ++++ .../Multiplayer/Protocol/methods/VOTEG.java | 4 ++++ .../dbis/cs108/Multiplayer/Server/Chat.java | 4 ---- .../Multiplayer/helpers/PingListener.java | 8 +++++++ .../cs108/Multiplayer/helpers/PingPong.java | 24 +++++++++++++++++++ .../helpers/PingPongInterface.java | 6 +++++ .../cs108/Multiplayer/helpers/PongSender.java | 8 +++++++ 12 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolDecoder.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/Chat.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/NewGame.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/QUITS.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/VOTEG.java delete mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Chat.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java create mode 100644 src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java 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 index 8edf033..6a2ffd2 100644 --- 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 @@ -1,5 +1,19 @@ package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol; + + public enum NTtBCommands { - CRTGM, CHATL, CHATG, CHATP, LEAVG, JOING, VOTEE, + /** + * 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 + */ + CRTGM, CHATA, CHATW, CHATG, LEAVG, JOING, VOTEG, QUITS, LISTP } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolDecoder.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolDecoder.java new file mode 100644 index 0000000..9a97d59 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolDecoder.java @@ -0,0 +1,5 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol; + +public interface ProtocolDecoder { + +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolParser.java index 5249d9e..a32e8db 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/ProtocolParser.java @@ -4,5 +4,5 @@ import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBFormatMsg; public interface ProtocolParser { - public NTtBFormatMsg parseMsg(String msg); + ProtocolMessage parseMsg(String msg); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/Chat.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/Chat.java new file mode 100644 index 0000000..33de4d4 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/Chat.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.methods; + +public class Chat { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/NewGame.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/NewGame.java new file mode 100644 index 0000000..3ef9f44 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/NewGame.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.methods; + +public class NewGame { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/QUITS.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/QUITS.java new file mode 100644 index 0000000..ec2e2d8 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/QUITS.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.methods; + +public class QUITS { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/VOTEG.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/VOTEG.java new file mode 100644 index 0000000..154223f --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Protocol/methods/VOTEG.java @@ -0,0 +1,4 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.methods; + +public class VOTEG { +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Chat.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Chat.java deleted file mode 100644 index 5305f37..0000000 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/Server/Chat.java +++ /dev/null @@ -1,4 +0,0 @@ -package ch.unibas.dmi.dbis.cs108.Multiplayer.Server; - -public class Chat { -} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java new file mode 100644 index 0000000..e4b898b --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingListener.java @@ -0,0 +1,8 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; + +public class PingListener implements Runnable { + @Override + public void run() { + + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java new file mode 100644 index 0000000..be33416 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPong.java @@ -0,0 +1,24 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; + +/** + * PingPong offers services to for listening and sending + * Pings to a communication partner. + * Runs on a Thread as not to disturb other communication channels.(Is this necessary?) + */ +public class PingPong implements PingPongInterface { + @Override + public void pingListener(String ping) { + + } + + @Override + public String pongSender() { + return null; + } + + @Override + public void run() { + + } + //TODO: Impl +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java new file mode 100644 index 0000000..6327b05 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PingPongInterface.java @@ -0,0 +1,6 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; + +public interface PingPongInterface extends Runnable{ + void pingListener(String ping); + String pongSender(); +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java new file mode 100644 index 0000000..2e645bf --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/Multiplayer/helpers/PongSender.java @@ -0,0 +1,8 @@ +package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers; + +public class PongSender implements Runnable{ + @Override + public void run() { + + } +}