push & pullStats und checkLogin

This commit is contained in:
2022-03-24 11:36:02 +01:00
parent 2c14b051df
commit d3a55e5278
2 changed files with 31 additions and 13 deletions

View File

@@ -5,6 +5,14 @@ public class Query {
db = new DatabaseConnector("", 0, "wordle.db", "", ""); db = new DatabaseConnector("", 0, "wordle.db", "", "");
} }
//TODO:
public Game pullRunngingGame(){
return null;
}
//TODO:
public void pushRunningGame(){}
/** /**
* Speichert die Daten des Users aus der Datenbank auf dem User-Objekt * Speichert die Daten des Users aus der Datenbank auf dem User-Objekt
* *
@@ -38,7 +46,7 @@ public class Query {
* @param user * @param user
*/ */
public void pushStats(User user) { public void pushStats(User user) {
// TODO: Methode korrigieren (Update ist nicht auf den User beschränkt) und neue Tabelle lastGuesses berücksichtigen // TODO: Testen und vllt korrigieren
db.executeStatement("UPDATE INTO Stats (current_streak," + " max_streak, " + "wins, " + "times_played, " 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, " + "won_on_1, " + "won_on_2, " + "won_on_3, " + "won_on_4, " + "won_on_5, " + "won_on_6, "
+ "last_day_WOTD_finished) " + "VALUES (" + Integer.toString(user.getCurrentStreak()) + "last_day_WOTD_finished) " + "VALUES (" + Integer.toString(user.getCurrentStreak())
@@ -46,24 +54,34 @@ public class Query {
+ Integer.toString(user.getTimesPlayed()) + Integer.toString(user.getWonInTurnIndex(0)) + Integer.toString(user.getTimesPlayed()) + Integer.toString(user.getWonInTurnIndex(0))
+ Integer.toString(user.getWonInTurnIndex(1)) + Integer.toString(user.getWonInTurnIndex(2)) + Integer.toString(user.getWonInTurnIndex(1)) + Integer.toString(user.getWonInTurnIndex(2))
+ Integer.toString(user.getWonInTurnIndex(3)) + Integer.toString(user.getWonInTurnIndex(4)) + Integer.toString(user.getWonInTurnIndex(3)) + Integer.toString(user.getWonInTurnIndex(4))
+ Integer.toString(user.getWonInTurnIndex(5)) + Integer.toString(user.getLastDayWOTDPlayed()) + ")"); + Integer.toString(user.getWonInTurnIndex(5)) + Integer.toString(user.getLastDayWOTDPlayed()) + ")" +
"WHERE user_username LIKE \"" + user.getUsername()+"\"");
} }
/** /**
* Überprüft ob es den Username und das Passwort in der Datenbank gibt und gibt * <EFBFBD>berpr<EFBFBD>ft ob es den Username und das Passwort in der Datenbank gibt und gibt
* den Erfolg als Boolean zurück * den Erfolg als Boolean zur<EFBFBD>ck
* *
* @param username * @param username
* @param password * @param password
* @return Ein Boolean * @return Boolean true = login erfolgreich false = login fehlgeschlagen
*/ */
public boolean checkLogin(String username, String password) { public boolean checkLogin(String username, String password) {
// TODO: Methode fertigstellen // TODO: testen und vllt korrigieren
return true; db.executeStatement("SELECT username, passwort FROM user " +
"WHERE username LIKE \""+username+"\" " +
"AND passwort LIKE \""+password+"\"");
QueryResult r = db.getCurrentQueryResult();
System.out.println(r.getRowCount());
if(r.getRowCount()== 1){
return true;
} else {
return false;
}
} }
/** /**
* Gibt ein Zufälliges Wort aus der Datenbank zurück * Gibt ein Zuf<EFBFBD>lliges Wort aus der Datenbank zur<EFBFBD>ck
* *
* @return Ein Word als String * @return Ein Word als String
*/ */
@@ -73,7 +91,7 @@ public class Query {
} }
/** /**
* Gibt das Wordle des Tages, welches aus der Datenbank stammt, zurück. Ergibt * Gibt das Wordle des Tages, welches aus der Datenbank stammt, zur<EFBFBD>ck. Ergibt
* pro Tag immer das gleiche Wordle. * pro Tag immer das gleiche Wordle.
* *
* @return Das Wort als String * @return Das Wort als String
@@ -84,7 +102,7 @@ public class Query {
} }
/** /**
* Prüft ob das Wort in der Datenbank vorhanden ist * Pr<EFBFBD>ft ob das Wort in der Datenbank vorhanden ist
* *
* @param word ,ein String mit dem Wort * @param word ,ein String mit dem Wort
* @return Boolean * @return Boolean

View File

@@ -65,11 +65,11 @@ public class WordleServer extends Server {
case 1: case 1:
// Anmeldephase // Anmeldephase
if (m.equalsIgnoreCase("USER")) { if (m.equalsIgnoreCase("USER")) {
m = pMessage.substring(5, pMessage.length() - 1); m = pMessage.substring(5, pMessage.length());
u.setUsername(m); u.setUsername(m);
send(pClientIP, pClientPort, "+OK"); send(pClientIP, pClientPort, "+OK");
} else if (m.equalsIgnoreCase("PASS")) { } else if (m.equalsIgnoreCase("PASS")) {
m = pMessage.substring(5, pMessage.length() - 1); m = pMessage.substring(5, pMessage.length());
u.setPassword(m); u.setPassword(m);
if (u.getPassword() != null && u.getUsername() != null) { if (u.getPassword() != null && u.getUsername() != null) {
if (query.checkLogin(u.getUsername(), u.getPassword())) { if (query.checkLogin(u.getUsername(), u.getPassword())) {