(Properly) added push and pull Stats

This commit is contained in:
Maxim Derksen
2022-03-03 11:20:18 +01:00
parent e4037082bd
commit 6c863aa7fc
2 changed files with 94 additions and 77 deletions

View File

@@ -1,24 +1,41 @@
public class Query { public class Query {
DatabaseConnector db; DatabaseConnector db;
Query(){ Query() {
db = new DatabaseConnector("", 0, "wordle.db", "", ""); db = new DatabaseConnector("", 0, "wordle.db", "", "");
} }
public void pullStats(User user){
String[][] r;
db.executeStatement("SELECT * FROM user WHERE user LIKE" + user.username);
r = db.getCurrentQueryResult().getData();
}
public void pushStats(User user){ public void pullStats(User user) {
String[][] r;
db.executeStatement("SELECT * FROM user WHERE user LIKE" + user.username);
r = db.getCurrentQueryResult().getData();
user.currentStreak = Integer.parseInt(r[1][0]);
user.maxStreak = Integer.parseInt(r[2][0]);
user.wins = Integer.parseInt(r[3][0]);
user.timesPlayed = Integer.parseInt(r[4][0]);
user.wonInTurn[0] = Integer.parseInt(r[5][0]);
user.wonInTurn[1] = Integer.parseInt(r[6][0]);
user.wonInTurn[2] = Integer.parseInt(r[7][0]);
user.wonInTurn[3] = Integer.parseInt(r[8][0]);
user.wonInTurn[4] = Integer.parseInt(r[9][0]);
user.wonInTurn[5] = Integer.parseInt(r[10][0]);
user.lastDayWOTDFinished = Integer.parseInt(r[11][0]);
} }
public void checkLogin(String username, String password){ public void pushStats(User user) {
db.executeStatement("UPDATE INTO Stats (current_streak," + " max_streak, " + "wins, " + "times_played, "
+ "won_on_1, " + "won_on_2, " + "won_on_3, " + "won_on_4, " + "won_on_5, " + "won_on_6, "
+ "last_day_WOTD_finished) " + "VALUES (" + user.currentStreak + user.maxStreak + user.wins
+ user.timesPlayed + user.wonInTurn[0] + user.wonInTurn[1] + user.wonInTurn[2] + user.wonInTurn[3]
+ user.wonInTurn[4] + user.wonInTurn[5] + user.lastDayWOTDFinished + ")");
}
} public boolean checkLogin(String username, String password) {
return false;
}
public String getWord(){ public String getWord() {
return ""; return "";
} }
} }

View File

@@ -5,79 +5,79 @@ import java.util.HashMap;
*/ */
public class WordleServer extends Server { public class WordleServer extends Server {
public static final int DEFAULT_PORT = 1000; public static final int DEFAULT_PORT = 1000;
public static void main( String[] args ) { public static void main(String[] args) {
new WordleServer(); new WordleServer();
} }
private DatabaseConnector db;
private DatabaseConnector db; private HashMap<String, User> users;
private Query query;
private HashMap<String,User>users; public WordleServer() {
private Query query; this(DEFAULT_PORT);
}
public WordleServer(int pPort) {
super(pPort);
query = new Query();
db = new DatabaseConnector("", 0, "wordle.db", "", "");
users = new HashMap<>();
}
public WordleServer() { @Override
this(DEFAULT_PORT); public void processNewConnection(String pClientIP, int pClientPort) {
} String connectionID = pClientIP + ":" + Integer.toString(pClientPort);
User u = new User(connectionID);
users.put(connectionID, u);
send(pClientIP, pClientPort, "+OK Verbindung zum Wordle Server erfolgreich aufgebaut");
u.setState(1);
public WordleServer( int pPort ) { }
super(pPort);
query = new Query();
db = new DatabaseConnector("", 0, "wordle.db", "", "");
users = new HashMap<>();
}
@Override @Override
public void processNewConnection( String pClientIP, int pClientPort ) { public void processClosingConnection(String pClientIP, int pClientPort) {
String connectionID= pClientIP +":"+ Integer.toString(pClientPort);
User u = new User(connectionID);
users.put(connectionID,u);
send(pClientIP,pClientPort,"+OK Verbindung zum Wordle Server erfolgreich aufgebaut");
u.setState(1);
} }
@Override @Override
public void processClosingConnection( String pClientIP, int pClientPort ) { public void processMessage(String pClientIP, int pClientPort, String pMessage) {
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:
@Override // Anmeldephase
public void processMessage( String pClientIP, int pClientPort, String pMessage ) { String m = pMessage.substring(0, 3);
String conectionID = pClientIP + ":" + Integer.toString(pClientPort); if (m.equalsIgnoreCase("USER")) {
User u = users.get(conectionID); m = pMessage.substring(6, pMessage.length() - 1);
u.setUsername(m);
if(pMessage.equals("QUIT")) { send(pClientIP, pClientPort, "+OK Bye");
send(pClientIP, pClientPort, "+OK Bye"); } else if (m.equalsIgnoreCase("PASS")) {
close(); m = pMessage.substring(6, pMessage.length() - 1);
} else { u.setPassword(m);
send(pClientIP,pClientPort,"-ERR Command not valid in this state"); if (u.getPassword() != null && u.getUsername() != null) {
} query.checkLogin(u.getUsername(), u.getPassword());
}
switch(u.getState()){ }
case 1: break;
//Anmeldephase case 2:
String m = pMessage.substring(0,3); // Spielphase
if(m.equalsIgnoreCase("USER")){ break;
m = pMessage.substring(6,pMessage.length()-1); case 3:
u.setUsername(m); // Zwischenphase(Angemeldet)
} else if(m.equalsIgnoreCase("PASS")){ break;
m = pMessage.substring(6,pMessage.length()-1);
u.setPassword(m);
}
break;
case 2:
//Spielphase
break;
case 3:
//Zwischenphase(Angemeldet)
break;
}
}
}
}
} }