From c4bf054de67adfd0c43320bd928c0399c13798ef Mon Sep 17 00:00:00 2001 From: Artem Didytschuk Date: Thu, 3 Mar 2022 10:32:34 +0100 Subject: [PATCH 1/2] Hashmap implementiert --- .gitignore | 1 + WordleServer.java | 29 ++++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 7f4282f..fd2ef75 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ engine-alpha.log /git.iml /out/ /.idea/.gitignore +/.idea/libraries/sqlite_jdbc_3_36_0_3.xml diff --git a/WordleServer.java b/WordleServer.java index 1d44b67..34c7c02 100644 --- a/WordleServer.java +++ b/WordleServer.java @@ -1,3 +1,4 @@ +import java.util.HashMap; /** * Server für das WORDLE Spiel. @@ -13,7 +14,7 @@ public class WordleServer extends Server { private DatabaseConnector db; - private List userList; + private HashMapusers; private Query query; @@ -25,15 +26,16 @@ public class WordleServer extends Server { super(pPort); query = new Query(); db = new DatabaseConnector("", 0, "wordle.db", "", ""); - userList = new List(); + users = new HashMap<>(); } @Override public void processNewConnection( String pClientIP, int pClientPort ) { String connectionID= pClientIP +":"+ Integer.toString(pClientPort); User u = new User(connectionID); - userList.append(u); + users.put(connectionID,u); send(pClientIP,pClientPort,"+OK Verbindung zum Wordle Server erfolgreich aufgebaut"); + u.setState(1); } @@ -45,11 +47,28 @@ public class WordleServer extends Server { @Override public void processMessage( String pClientIP, int pClientPort, String pMessage ) { - if(pMessage.equals("QUIT")){ - send(pClientIP,pClientPort,"+OK Bye"); + String conectionID = pClientIP + ":" + Integer.toString(pClientPort); + User u = users.get(conectionID); + + if(pMessage.equals("QUIT")) { + send(pClientIP, pClientPort, "+OK Bye"); + close(); } else { send(pClientIP,pClientPort,"-ERR Command not valid in this state"); } + switch(u.getState()){ + case 1: + //Anmeldephase + break; + case 2: + //Spielphase + break; + case 3: + //Zwischenphase(Angemeldet) + break; + + } } + } From 0d06ff6771fd11503faa8020a24db80431b00482 Mon Sep 17 00:00:00 2001 From: Artem Didytschuk Date: Thu, 3 Mar 2022 10:45:40 +0100 Subject: [PATCH 2/2] State 1 weiter implementiert --- WordleServer.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/WordleServer.java b/WordleServer.java index 34c7c02..08c4cb5 100644 --- a/WordleServer.java +++ b/WordleServer.java @@ -56,9 +56,18 @@ public class WordleServer extends Server { } else { send(pClientIP,pClientPort,"-ERR Command not valid in this state"); } + switch(u.getState()){ case 1: //Anmeldephase + String m = pMessage.substring(0,3); + if(m.equalsIgnoreCase("USER")){ + m = pMessage.substring(6,pMessage.length()-1); + u.setUsername(m); + } else if(m.equalsIgnoreCase("PASS")){ + m = pMessage.substring(6,pMessage.length()-1); + u.setPassword(m); + } break; case 2: //Spielphase