diff --git a/Query.java b/Query.java index 8d0c2dc..30c2cf6 100644 --- a/Query.java +++ b/Query.java @@ -5,9 +5,17 @@ public class Query { 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 - * + * * @param user */ public void pullStats(User user) { @@ -38,7 +46,7 @@ public class Query { * @param 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, " + "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()) @@ -46,24 +54,34 @@ public class Query { + Integer.toString(user.getTimesPlayed()) + Integer.toString(user.getWonInTurnIndex(0)) + Integer.toString(user.getWonInTurnIndex(1)) + Integer.toString(user.getWonInTurnIndex(2)) + 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 - * den Erfolg als Boolean zurück + * �berpr�ft ob es den Username und das Passwort in der Datenbank gibt und gibt + * den Erfolg als Boolean zur�ck * * @param username * @param password - * @return Ein Boolean + * @return Boolean true = login erfolgreich false = login fehlgeschlagen */ public boolean checkLogin(String username, String password) { -// TODO: Methode fertigstellen - return true; +// TODO: testen und vllt korrigieren + 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�lliges Wort aus der Datenbank zur�ck * * @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�ck. Ergibt * pro Tag immer das gleiche Wordle. * * @return Das Wort als String @@ -84,7 +102,7 @@ public class Query { } /** - * Prüft ob das Wort in der Datenbank vorhanden ist + * Pr�ft ob das Wort in der Datenbank vorhanden ist * * @param word ,ein String mit dem Wort * @return Boolean diff --git a/WordleServer.java b/WordleServer.java index 9fa072a..024f36f 100644 --- a/WordleServer.java +++ b/WordleServer.java @@ -65,11 +65,11 @@ public class WordleServer extends Server { case 1: // Anmeldephase if (m.equalsIgnoreCase("USER")) { - m = pMessage.substring(5, pMessage.length() - 1); + m = pMessage.substring(5, pMessage.length()); u.setUsername(m); send(pClientIP, pClientPort, "+OK"); } else if (m.equalsIgnoreCase("PASS")) { - m = pMessage.substring(5, pMessage.length() - 1); + m = pMessage.substring(5, pMessage.length()); u.setPassword(m); if (u.getPassword() != null && u.getUsername() != null) { if (query.checkLogin(u.getUsername(), u.getPassword())) {