login angefangen

This commit is contained in:
Tim Tersch
2022-03-03 11:31:11 +01:00
parent a5ffccc596
commit de0133d1b1

View File

@@ -3,33 +3,43 @@ public class Game {
WordleServer wordleServer; WordleServer wordleServer;
User user; User user;
static DatabaseConnector databaseConnector;// Datenbankverbindung aufstellen static DatabaseConnector databaseConnector;// Datenbankverbindung aufstellen
private String ip; private String ip;
private int port; private int port;
private String wordle; private String wordle;
private String[] words; private String[] words;
private int count; private int count;
private int phase; private int phase;
public Game(WordleServer wordleServer, String pClientIP, int pClientPort) { static {
databaseConnector = new DatabaseConnector(null, 0, "wordle.db", null, null);
System.err.println(databaseConnector.getErrorMessage());
}
public Game(WordleServer wordleServer, String pClientIP, int pClientPort) {
this.wordleServer = wordleServer; this.wordleServer = wordleServer;
this.ip = pClientIP; this.ip = pClientIP;
this.port = pClientPort; this.port = pClientPort;
send("+OK Hello there"); send("+OK Hello there");
} }
public void processMessage(String msg) { public void processMessage(String msg) {
msg = msg.toLowerCase().trim(); msg = msg.toLowerCase().trim();
if (msg.equals("quit")) { if (msg.equals("quit")) {
send("+OK bye"); send("+OK bye");
wordleServer.closeConnection(ip, port); wordleServer.closeConnection(ip, port);
System.exit(0);
} }
switch (phase) { switch (phase) {
case 0: case 0:
loginPhase(msg); loginPhase(msg);
@@ -42,41 +52,66 @@ public class Game {
break; break;
} }
} }
private void loginPhase(String msg) { private void loginPhase(String msg) {
if (msg.startsWith("user")) {
if (msg.length() <= 5) {
} else if (msg.startsWith("pass")) { sendUniversalError();
return;
} else if (msg.startsWith("wotd")) { }
} else if (msg.startsWith("play")) { String args = msg.substring(5);
if (msg.startsWith("user ")) {
databaseConnector.executeStatement("SELECT * FROM User WHERE name = '" + args + "'");
System.err.println(databaseConnector.getErrorMessage());
QueryResult result = databaseConnector.getCurrentQueryResult();
if (result != null) {
String name = result.getData()[0][0];
System.out.println(name);
user = new User(name);
} else {
send("-ERR User not found.");
}
} else if (msg.startsWith("pass ")) {
} else if (msg.startsWith("wotd ")) {
} else if (msg.startsWith("play ")) {
} else {
sendUniversalError();
} }
} }
private void gamePhase(String msg) { private void gamePhase(String msg) {
if (msg.startsWith("send")) { if (msg.startsWith("send")) {
} else if (msg.startsWith("info")) { } else if (msg.startsWith("info")) {
} else if (msg.startsWith("exit")) { } else if (msg.startsWith("exit")) {
} }
} }
private void endPhase(String msg) { private void endPhase(String msg) {
if (msg.startsWith("stat")) { if (msg.startsWith("stat")) {
} else if (msg.startsWith("play")) { } else if (msg.startsWith("play")) {
} }
} }
private void send(String msg) { private void send(String msg) {
wordleServer.send(ip, port, msg); wordleServer.send(ip, port, msg);
} }
private void sendUniversalError() {
send("-ERR command not valid in this state");
}
public String getIp() { public String getIp() {
return ip; return ip;
} }