forked from IF-LK-2020/wordle
(Properly) added push and pull Stats
This commit is contained in:
49
Query.java
49
Query.java
@@ -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 "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user