diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java index ed590c689081da1173a70e2c12f920f7e9489148..09485bed5dce623ca33d4866542a4db7b498ecf9 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java @@ -74,8 +74,10 @@ public class Persistence { try { if (account.getAccountType() == AccountType.LOCAL) { statistics = gsonHandler.loadStats(); + Parser.playerStatsValid(statistics); } else { statistics = db.getStatistics(account.getPlayerName()); + Parser.playerStatsValid(statistics); } log.info("Player statistics successfully loaded!"); } @@ -92,6 +94,9 @@ public class Persistence { log.error(e); throw new DatabaseException(e.getMessage()); } + catch (ParserException e) { + throw new RuntimeException("Player statistics data corrupted!"); + } } public void loadCoreMaps() throws DatabaseException { @@ -184,6 +189,7 @@ public class Persistence { public void savePlayerStatistics() throws DatabaseException{ //on shutdown of game try { + Parser.playerStatsValid(statistics); if (account.getAccountType() == AccountType.LOCAL) { gsonHandler.saveStats(statistics); } else if (account.getAccountType() == AccountType.ONLINE) { @@ -232,7 +238,7 @@ public class Persistence { } } - public void updatePlayerStatistics(int kills, int deaths, int gameTime, int blocksDestroyed, boolean gameWon) throws DatabaseException{ //after game round + public void updatePlayerStatistics(int kills, int deaths, int gameTime, int blocksDestroyed, boolean gameWon) throws DatabaseException{ //after game round; only update stats in RAM, not in persistence (run savePlayerStatistics() method at end of program to save stats to persistence) try { Parser.playerStatsValid(new PlayerStatistics(0, 0, kills, deaths, blocksDestroyed, gameTime)); //temp instance of PLayerStatistics to validate new values statistics.addKills(kills); @@ -461,14 +467,23 @@ public class Persistence { if (hash.equals(db.checkCredentials(userName))) { PlayerAccount playerAccount = new PlayerAccount(userName, hash, AccountType.ONLINE); gsonHandler.saveAccount(playerAccount); + gsonHandler.loadAccount(); db.getStatistics(userName); + Parser.playerStatsValid(statistics); + log.info("Login successful!"); } else { throw new DatabaseException(); } - } catch (GSONException | SQLException e) { + } + catch (GSONException | SQLException e) { throw new RuntimeException(e); - } catch (DatabaseException e) { - throw new DatabaseException("Wrong password"); + } + catch (DatabaseException e) { + throw new DatabaseException("Wrong password!"); + } + catch (ParserException e) { + throw new DatabaseException("Player statistics data corrupted!"); } } + } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java index 5564faa20622c1380dbaaaf80e2df616cebe5c7d..38ae10a6052607adc5c2279eb8058f1da8107551 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java @@ -24,28 +24,6 @@ public class RuntimeInfo { private EntityClass playerOneClass = EntityClass.HUMAN; private EntityClass playerTwoClass = EntityClass.HUMAN; - //Thread Status-Updates - private ThreadStatus threadStartup1; - private String threadStartup1Msg; - private ThreadStatus threadStartup2; - private String threadStartup2Msg; - private ThreadStatus threadUpdateMaps; - private String threadUpdateMapsMsg; - private ThreadStatus threadUpdateStats; - private String threadUpdateStatsMsg; - private ThreadStatus threadDLCommMap; - private String threadDLCommMapMsg; - private ThreadStatus threadSaveCommMap; - private String threadSaveCommMapMsg; - private ThreadStatus threadCommMapList; - private String threadCommMapListMsg; - private ThreadStatus threadRstStats; - private String threadRstStatsMsg; - private ThreadStatus threadSaveStats; - private String threadSaveStatsMsg; - private ThreadStatus threadCreateAcc; - private String threadCreateAccMsg; - //Stats Tracking during Gameplay private int kills; private int deaths; @@ -122,166 +100,6 @@ public class RuntimeInfo { return mapDataGame; } - public ThreadStatus getThreadStartup1() { - return threadStartup1; - } - - public void setThreadStartup1(ThreadStatus threadStartup1) { - this.threadStartup1 = threadStartup1; - } - - public String getThreadStartup1Msg() { - return threadStartup1Msg; - } - - public void setThreadStartup1Msg(String threadStartup1Msg) { - this.threadStartup1Msg = threadStartup1Msg; - } - - public ThreadStatus getThreadStartup2() { - return threadStartup2; - } - - public void setThreadStartup2(ThreadStatus threadStartup2) { - this.threadStartup2 = threadStartup2; - } - - public String getThreadStartup2Msg() { - return threadStartup2Msg; - } - - public void setThreadStartup2Msg(String threadStartup2Msg) { - this.threadStartup2Msg = threadStartup2Msg; - } - - public ThreadStatus getThreadUpdateMaps() { - return threadUpdateMaps; - } - - public void setThreadUpdateMaps(ThreadStatus threadUpdateMaps) { - this.threadUpdateMaps = threadUpdateMaps; - } - - public String getThreadUpdateMapsMsg() { - return threadUpdateMapsMsg; - } - - public void setThreadUpdateMapsMsg(String threadUpdateMapsMsg) { - this.threadUpdateMapsMsg = threadUpdateMapsMsg; - } - - public ThreadStatus getThreadUpdateStats() { - return threadUpdateStats; - } - - public void setThreadUpdateStats(ThreadStatus threadUpdateStats) { - this.threadUpdateStats = threadUpdateStats; - } - - public String getThreadUpdateStatsMsg() { - return threadUpdateStatsMsg; - } - - public void setThreadUpdateStatsMsg(String threadUpdateStatsMsg) { - this.threadUpdateStatsMsg = threadUpdateStatsMsg; - } - - public ThreadStatus getThreadDLCommMap() { - return threadDLCommMap; - } - - public void setThreadDLCommMap(ThreadStatus threadDLCommMap) { - this.threadDLCommMap = threadDLCommMap; - } - - public String getThreadDLCommMapMsg() { - return threadDLCommMapMsg; - } - - public void setThreadDLCommMapMsg(String threadDLCommMapMsg) { - this.threadDLCommMapMsg = threadDLCommMapMsg; - } - - public ThreadStatus getThreadSaveCommMap() { - return threadSaveCommMap; - } - - public void setThreadSaveCommMap(ThreadStatus threadSaveCommMap) { - this.threadSaveCommMap = threadSaveCommMap; - } - - public String getThreadSaveCommMapMsg() { - return threadSaveCommMapMsg; - } - - public void setThreadSaveCommMapMsg(String threadSaveCommMapMsg) { - this.threadSaveCommMapMsg = threadSaveCommMapMsg; - } - - public ThreadStatus getThreadCommMapList() { - return threadCommMapList; - } - - public void setThreadCommMapList(ThreadStatus threadCommMapList) { - this.threadCommMapList = threadCommMapList; - } - - public String getThreadCommMapListMsg() { - return threadCommMapListMsg; - } - - public void setThreadCommMapListMsg(String threadCommMapListMsg) { - this.threadCommMapListMsg = threadCommMapListMsg; - } - - public ThreadStatus getThreadRstStats() { - return threadRstStats; - } - - public void setThreadRstStats(ThreadStatus threadRstStats) { - this.threadRstStats = threadRstStats; - } - - public String getThreadRstStatsMsg() { - return threadRstStatsMsg; - } - - public void setThreadRstStatsMsg(String threadRstStatsMsg) { - this.threadRstStatsMsg = threadRstStatsMsg; - } - - public ThreadStatus getThreadSaveStats() { - return threadSaveStats; - } - - public void setThreadSaveStats(ThreadStatus threadSaveStats) { - this.threadSaveStats = threadSaveStats; - } - - public String getThreadSaveStatsMsg() { - return threadSaveStatsMsg; - } - - public void setThreadSaveStatsMsg(String threadSaveStatsMsg) { - this.threadSaveStatsMsg = threadSaveStatsMsg; - } - - public ThreadStatus getThreadCreateAcc() { - return threadCreateAcc; - } - - public void setThreadCreateAcc(ThreadStatus threadCreateAcc) { - this.threadCreateAcc = threadCreateAcc; - } - - public String getThreadCreateAccMsg() { - return threadCreateAccMsg; - } - - public void setThreadCreateAccMsg(String threadCreateAccMsg) { - this.threadCreateAccMsg = threadCreateAccMsg; - } - public int getKills() { return kills; } @@ -290,6 +108,10 @@ public class RuntimeInfo { this.kills = kills; } + public void addKill() { + kills = kills + 1; + } + public int getDeaths() { return deaths; } @@ -298,6 +120,10 @@ public class RuntimeInfo { this.deaths = deaths; } + public void addDeath() { + deaths = deaths + 1; + } + public int getBlocksDestroyed() { return blocksDestroyed; } @@ -306,6 +132,10 @@ public class RuntimeInfo { this.blocksDestroyed = blocksDestroyed; } + public void addBlockDestroyed() { + blocksDestroyed = blocksDestroyed + 1; + } + public int getGameTime() { return gameTime; } @@ -314,6 +144,10 @@ public class RuntimeInfo { this.gameTime = gameTime; } + public void addGameTime() { + gameTime = gameTime + 1; + } + public boolean isGameWon() { return gameWon; } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadCreateAcc.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadCreateAcc.java index e89ddac66104f2cb0603cf82060beab366839d3a..e7f37c6deec9db193b2f3ac8410cf28cbf44b202 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadCreateAcc.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadCreateAcc.java @@ -16,19 +16,19 @@ public class ThreadCreateAcc extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadCreateAccMsg(""); - runtimeInfoInst.setThreadCreateAcc(ThreadStatus.RUNNING); + threadsInstance.setThreadCreateAccMsg(""); + threadsInstance.setThreadCreateAcc(ThreadStatus.RUNNING); persistenceInst.createAccount(playerName, password, type); log.info("Create account thread finished successfully!"); - runtimeInfoInst.setThreadCreateAcc(ThreadStatus.FINISHED); + threadsInstance.setThreadCreateAcc(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadCreateAccMsg(e.getMessage()); + threadsInstance.setThreadCreateAccMsg(e.getMessage()); log.info("Create account thread failed!"); - runtimeInfoInst.setThreadCreateAcc(ThreadStatus.FAILED); + threadsInstance.setThreadCreateAcc(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadDLCommMap.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadDLCommMap.java index 8f83215abbb4dfe4f45b64f7ae6f8fb445158311..76bf3c0ebcc16150b3e34d907faaf0b5c33794e7 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadDLCommMap.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadDLCommMap.java @@ -13,19 +13,19 @@ public class ThreadDLCommMap extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadDLCommMapMsg(""); - runtimeInfoInst.setThreadDLCommMap(ThreadStatus.RUNNING); + threadsInstance.setThreadDLCommMapMsg(""); + threadsInstance.setThreadDLCommMap(ThreadStatus.RUNNING); persistenceInst.getCommunityMap(mapID); log.info("Download Community-Map thread finished successfully!"); - runtimeInfoInst.setThreadDLCommMap(ThreadStatus.FINISHED); + threadsInstance.setThreadDLCommMap(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadDLCommMapMsg(e.getMessage()); + threadsInstance.setThreadDLCommMapMsg(e.getMessage()); log.info("Download Community-Map thread failed!"); - runtimeInfoInst.setThreadDLCommMap(ThreadStatus.FAILED); + threadsInstance.setThreadDLCommMap(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadGetMapList.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadGetMapList.java index 49478417c2fcdc7268a18d6f78589858bc2d8d8c..0062eaf71c227ed5aa6614307e6024357f691560 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadGetMapList.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadGetMapList.java @@ -12,19 +12,19 @@ public class ThreadGetMapList extends Thread { public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadCommMapListMsg(""); - runtimeInfoInst.setThreadCommMapList(ThreadStatus.RUNNING); + threadsInstance.setThreadCommMapListMsg(""); + threadsInstance.setThreadCommMapList(ThreadStatus.RUNNING); persistenceInst.createRemoteCommunityMapsList(); log.info("Retrieving Community-Map-List thread finished successfully!"); - runtimeInfoInst.setThreadCommMapList(ThreadStatus.FINISHED); + threadsInstance.setThreadCommMapList(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadCommMapListMsg(e.getMessage()); + threadsInstance.setThreadCommMapListMsg(e.getMessage()); log.info("Retrieving Community-Map-List thread failed!"); - runtimeInfoInst.setThreadCommMapList(ThreadStatus.FAILED); + threadsInstance.setThreadCommMapList(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadLogin.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadLogin.java new file mode 100644 index 0000000000000000000000000000000000000000..b6bb5e6c7c647dfe372702933672eead65c56b02 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadLogin.java @@ -0,0 +1,39 @@ +package de.hdm_stuttgart.battlearena.Model.DataStorage.Classes; + +import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.ENUMs.ThreadStatus; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class ThreadLogin extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadLogin.class); + private String userName; + private String password; + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + Threads threadsInstance = Threads.getInstance(); + + try { + threadsInstance.setThreadLoginMsg(""); + threadsInstance.setThreadLogin(ThreadStatus.RUNNING); + persistenceInst.login(userName, password); + log.info("Login thread finished successfully!"); + threadsInstance.setThreadLogin(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + threadsInstance.setThreadLoginMsg(e.getMessage()); + log.info("Login thread failed!"); + threadsInstance.setThreadLogin(ThreadStatus.FAILED); + } + } + + public void startThread(String userName, String password){ + this.userName = userName; + this.password = password; + start(); + } + +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadRstStats.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadRstStats.java index 117fd08d7655da86f083dd6774342db8a97dee64..c815c70fc73043c305ddad9e575ac662207a50ac 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadRstStats.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadRstStats.java @@ -12,19 +12,19 @@ public class ThreadRstStats extends Thread { public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadRstStatsMsg(""); - runtimeInfoInst.setThreadRstStats(ThreadStatus.RUNNING); + threadsInstance.setThreadRstStatsMsg(""); + threadsInstance.setThreadRstStats(ThreadStatus.RUNNING); persistenceInst.resetPlayerStatistics(); log.info("Reset Player-Statistics thread finished successfully!"); - runtimeInfoInst.setThreadRstStats(ThreadStatus.FINISHED); + threadsInstance.setThreadRstStats(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadRstStatsMsg(e.getMessage()); + threadsInstance.setThreadRstStatsMsg(e.getMessage()); log.info("Reset Player-Statistics thread failed!"); - runtimeInfoInst.setThreadRstStats(ThreadStatus.FAILED); + threadsInstance.setThreadRstStats(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveCommMap.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveCommMap.java index 984c6654c9a0acbea0c7601ab3b9edea8a18ff7e..47877f48acc768333279887fd1a899bdb046ac65 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveCommMap.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveCommMap.java @@ -14,19 +14,19 @@ public class ThreadSaveCommMap extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadSaveCommMapMsg(""); - runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.RUNNING); + threadsInstance.setThreadSaveCommMapMsg(""); + threadsInstance.setThreadSaveCommMap(ThreadStatus.RUNNING); persistenceInst.saveCreatedMap(map, doUpload); log.info("Uploading Community-Map thread finished successfully!"); - runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.FINISHED); + threadsInstance.setThreadSaveCommMap(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadSaveCommMapMsg(e.getMessage()); + threadsInstance.setThreadSaveCommMapMsg(e.getMessage()); log.info("Uploading Community-Map thread failed!"); - runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.FAILED); + threadsInstance.setThreadSaveCommMap(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveStats.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveStats.java index ce753f13a26da1dbfd9976de6ac633a04ff968af..3b6c425300db7c7790908c47e36e2282e788b33e 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveStats.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveStats.java @@ -12,19 +12,19 @@ public class ThreadSaveStats extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadSaveStatsMsg(""); - runtimeInfoInst.setThreadSaveStats(ThreadStatus.RUNNING); + threadsInstance.setThreadSaveStatsMsg(""); + threadsInstance.setThreadSaveStats(ThreadStatus.RUNNING); persistenceInst.savePlayerStatistics(); log.info("Save Player-Statistics thread finished successfully!"); - runtimeInfoInst.setThreadSaveStats(ThreadStatus.FINISHED); + threadsInstance.setThreadSaveStats(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadSaveStatsMsg(e.getMessage()); + threadsInstance.setThreadSaveStatsMsg(e.getMessage()); log.info("Save Player-Statistics thread failed!"); - runtimeInfoInst.setThreadSaveStats(ThreadStatus.FAILED); + threadsInstance.setThreadSaveStats(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup1.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup1.java index d7b273ce47aa67bf2c9d1a9326cb7ac5be732cee..3b8016b8ed5629b16ef2d949f6fc9a0376f51ad1 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup1.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup1.java @@ -12,11 +12,11 @@ public class ThreadStartup1 extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadStartup1Msg(""); - runtimeInfoInst.setThreadStartup1(ThreadStatus.RUNNING); + threadsInstance.setThreadStartup1Msg(""); + threadsInstance.setThreadStartup1(ThreadStatus.RUNNING); persistenceInst.loadSettings(); persistenceInst.loadCoreMaps(); persistenceInst.loadCommunityMaps(); @@ -24,12 +24,12 @@ public class ThreadStartup1 extends Thread{ persistenceInst.verifyCoreMaps(); persistenceInst.verifyCommunityMaps(); log.info("Startup routine part1 complete!"); - runtimeInfoInst.setThreadStartup1(ThreadStatus.FINISHED); + threadsInstance.setThreadStartup1(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadStartup1Msg(e.getMessage()); + threadsInstance.setThreadStartup1Msg(e.getMessage()); log.info("Startup routine part1 failed!"); - runtimeInfoInst.setThreadStartup1(ThreadStatus.FAILED); + threadsInstance.setThreadStartup1(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup2.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup2.java index 4fc52e8654ba4827ef5bf22993ade103e6f44eb8..50ba60bf4edc9c10f56ed27e7833a65ae3e808d6 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup2.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup2.java @@ -13,22 +13,22 @@ public class ThreadStartup2 extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadStartup2Msg(""); - runtimeInfoInst.setThreadStartup2(ThreadStatus.RUNNING); + threadsInstance.setThreadStartup2Msg(""); + threadsInstance.setThreadStartup2(ThreadStatus.RUNNING); persistenceInst.loadPlayerAccount(); - if (persistenceInst.getAccount().getAccountType() != AccountType.NONE) { + if(persistenceInst.getAccount().getAccountType() != AccountType.NONE){ persistenceInst.verifyPlayerAccount(); } log.info("Startup routine part2 complete!"); - runtimeInfoInst.setThreadStartup2(ThreadStatus.FINISHED); + threadsInstance.setThreadStartup2(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadStartup2Msg(e.getMessage()); + threadsInstance.setThreadStartup2Msg(e.getMessage()); log.info("Startup routine part2 failed!"); - runtimeInfoInst.setThreadStartup2(ThreadStatus.FAILED); + threadsInstance.setThreadStartup2(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup3.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup3.java new file mode 100644 index 0000000000000000000000000000000000000000..738c4add7276cc2706a23204b0b7daef94e51975 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadStartup3.java @@ -0,0 +1,35 @@ +package de.hdm_stuttgart.battlearena.Model.DataStorage.Classes; + +import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.ENUMs.AccountType; +import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.ENUMs.ThreadStatus; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class ThreadStartup3 extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadStartup3.class); + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + Threads threadsInstance = Threads.getInstance(); + + try { + threadsInstance.setThreadStartup3Msg(""); + threadsInstance.setThreadStartup3(ThreadStatus.RUNNING); + persistenceInst.loadPlayerStatistics(); + if(persistenceInst.getAccount().getAccountType() != AccountType.NONE){ + persistenceInst.verifyPlayerAccount(); + } + log.info("Startup routine part3 complete!"); + threadsInstance.setThreadStartup3(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + threadsInstance.setThreadStartup3Msg(e.getMessage()); + log.info("Startup routine part3 failed!"); + threadsInstance.setThreadStartup3(ThreadStatus.FAILED); + } + } + +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateMaps.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateMaps.java index 793298791e2bda9e8da1af2a9796165878863eb7..f0bc303975da0e08d54330a3331e9dca7bee1577 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateMaps.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateMaps.java @@ -12,19 +12,19 @@ public class ThreadUpdateMaps extends Thread{ public void run() { Persistence persistenceInst = Persistence.getInstance(); - RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadUpdateMapsMsg(""); - runtimeInfoInst.setThreadUpdateMaps(ThreadStatus.RUNNING); + threadsInstance.setThreadUpdateMapsMsg(""); + threadsInstance.setThreadUpdateMaps(ThreadStatus.RUNNING); persistenceInst.updateCoreMaps(); log.info("Update Core-Maps thread finished successfully!"); - runtimeInfoInst.setThreadUpdateMaps(ThreadStatus.FINISHED); + threadsInstance.setThreadUpdateMaps(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadUpdateMapsMsg(e.getMessage()); + threadsInstance.setThreadUpdateMapsMsg(e.getMessage()); log.info("Update Core-Maps thread failed!"); - runtimeInfoInst.setThreadUpdateMaps(ThreadStatus.FAILED); + threadsInstance.setThreadUpdateMaps(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateStats.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateStats.java index f8869a397009d5b29511440ea4843ae5a7382567..44ae6fe13e20f599800784e95dc6b0bd9a8ca9b7 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateStats.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadUpdateStats.java @@ -13,10 +13,11 @@ public class ThreadUpdateStats extends Thread{ Persistence persistenceInst = Persistence.getInstance(); RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + Threads threadsInstance = Threads.getInstance(); try { - runtimeInfoInst.setThreadUpdateStatsMsg(""); - runtimeInfoInst.setThreadUpdateStats(ThreadStatus.RUNNING); + threadsInstance.setThreadUpdateStatsMsg(""); + threadsInstance.setThreadUpdateStats(ThreadStatus.RUNNING); persistenceInst.updatePlayerStatistics(runtimeInfoInst.getKills(), runtimeInfoInst.getDeaths(), runtimeInfoInst.getGameTime(), runtimeInfoInst.getBlocksDestroyed(), runtimeInfoInst.isGameWon()); runtimeInfoInst.setKills(0); runtimeInfoInst.setDeaths(0); @@ -24,12 +25,12 @@ public class ThreadUpdateStats extends Thread{ runtimeInfoInst.setBlocksDestroyed(0); runtimeInfoInst.setGameWon(false); log.info("Update statistics thread finished successfully!"); - runtimeInfoInst.setThreadUpdateStats(ThreadStatus.FINISHED); + threadsInstance.setThreadUpdateStats(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadUpdateStatsMsg(e.getMessage()); + threadsInstance.setThreadUpdateStatsMsg(e.getMessage()); log.info("Update statistics thread failed!"); - runtimeInfoInst.setThreadUpdateStats(ThreadStatus.FAILED); + threadsInstance.setThreadUpdateStats(ThreadStatus.FAILED); } } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Threads.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Threads.java new file mode 100644 index 0000000000000000000000000000000000000000..ebf4876b70d047545985366e5983fdd7438a97ec --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Threads.java @@ -0,0 +1,237 @@ +package de.hdm_stuttgart.battlearena.Model.DataStorage.Classes; + +import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.ENUMs.ThreadStatus; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class Threads { + + private static final Logger log = LogManager.getLogger(Threads.class); + private static final Threads threadsSingleton = new Threads(); + + //Thread Status-Updates + private ThreadStatus threadStartup1; + private String threadStartup1Msg; + private ThreadStatus threadStartup2; + private String threadStartup2Msg; + private ThreadStatus threadStartup3; + private String threadStartup3Msg; + private ThreadStatus threadUpdateMaps; + private String threadUpdateMapsMsg; + private ThreadStatus threadUpdateStats; + private String threadUpdateStatsMsg; + private ThreadStatus threadDLCommMap; + private String threadDLCommMapMsg; + private ThreadStatus threadSaveCommMap; + private String threadSaveCommMapMsg; + private ThreadStatus threadCommMapList; + private String threadCommMapListMsg; + private ThreadStatus threadRstStats; + private String threadRstStatsMsg; + private ThreadStatus threadSaveStats; + private String threadSaveStatsMsg; + private ThreadStatus threadCreateAcc; + private String threadCreateAccMsg; + private ThreadStatus threadLogin; + private String threadLoginMsg; + + + + private Threads(){}; + public static Threads getInstance(){ + return threadsSingleton; + } + + public ThreadStatus getThreadStartup1() { + return threadStartup1; + } + + public void setThreadStartup1(ThreadStatus threadStartup1) { + this.threadStartup1 = threadStartup1; + } + + public String getThreadStartup1Msg() { + return threadStartup1Msg; + } + + public void setThreadStartup1Msg(String threadStartup1Msg) { + this.threadStartup1Msg = threadStartup1Msg; + } + + public ThreadStatus getThreadStartup2() { + return threadStartup2; + } + + public void setThreadStartup2(ThreadStatus threadStartup2) { + this.threadStartup2 = threadStartup2; + } + + public String getThreadStartup2Msg() { + return threadStartup2Msg; + } + + public void setThreadStartup2Msg(String threadStartup2Msg) { + this.threadStartup2Msg = threadStartup2Msg; + } + + public ThreadStatus getThreadUpdateMaps() { + return threadUpdateMaps; + } + + public ThreadStatus getThreadStartup3() { + return threadStartup3; + } + + public void setThreadStartup3(ThreadStatus threadStartup3) { + this.threadStartup3 = threadStartup3; + } + + public String getThreadStartup3Msg() { + return threadStartup3Msg; + } + + public void setThreadStartup3Msg(String threadStartup3Msg) { + this.threadStartup3Msg = threadStartup3Msg; + } + + public void setThreadUpdateMaps(ThreadStatus threadUpdateMaps) { + this.threadUpdateMaps = threadUpdateMaps; + } + + public String getThreadUpdateMapsMsg() { + return threadUpdateMapsMsg; + } + + public void setThreadUpdateMapsMsg(String threadUpdateMapsMsg) { + this.threadUpdateMapsMsg = threadUpdateMapsMsg; + } + + public ThreadStatus getThreadUpdateStats() { + return threadUpdateStats; + } + + public void setThreadUpdateStats(ThreadStatus threadUpdateStats) { + this.threadUpdateStats = threadUpdateStats; + } + + public String getThreadUpdateStatsMsg() { + return threadUpdateStatsMsg; + } + + public void setThreadUpdateStatsMsg(String threadUpdateStatsMsg) { + this.threadUpdateStatsMsg = threadUpdateStatsMsg; + } + + public ThreadStatus getThreadDLCommMap() { + return threadDLCommMap; + } + + public void setThreadDLCommMap(ThreadStatus threadDLCommMap) { + this.threadDLCommMap = threadDLCommMap; + } + + public String getThreadDLCommMapMsg() { + return threadDLCommMapMsg; + } + + public void setThreadDLCommMapMsg(String threadDLCommMapMsg) { + this.threadDLCommMapMsg = threadDLCommMapMsg; + } + + public ThreadStatus getThreadSaveCommMap() { + return threadSaveCommMap; + } + + public void setThreadSaveCommMap(ThreadStatus threadSaveCommMap) { + this.threadSaveCommMap = threadSaveCommMap; + } + + public String getThreadSaveCommMapMsg() { + return threadSaveCommMapMsg; + } + + public void setThreadSaveCommMapMsg(String threadSaveCommMapMsg) { + this.threadSaveCommMapMsg = threadSaveCommMapMsg; + } + + public ThreadStatus getThreadCommMapList() { + return threadCommMapList; + } + + public void setThreadCommMapList(ThreadStatus threadCommMapList) { + this.threadCommMapList = threadCommMapList; + } + + public String getThreadCommMapListMsg() { + return threadCommMapListMsg; + } + + public void setThreadCommMapListMsg(String threadCommMapListMsg) { + this.threadCommMapListMsg = threadCommMapListMsg; + } + + public ThreadStatus getThreadRstStats() { + return threadRstStats; + } + + public void setThreadRstStats(ThreadStatus threadRstStats) { + this.threadRstStats = threadRstStats; + } + + public String getThreadRstStatsMsg() { + return threadRstStatsMsg; + } + + public void setThreadRstStatsMsg(String threadRstStatsMsg) { + this.threadRstStatsMsg = threadRstStatsMsg; + } + + public ThreadStatus getThreadSaveStats() { + return threadSaveStats; + } + + public void setThreadSaveStats(ThreadStatus threadSaveStats) { + this.threadSaveStats = threadSaveStats; + } + + public String getThreadSaveStatsMsg() { + return threadSaveStatsMsg; + } + + public void setThreadSaveStatsMsg(String threadSaveStatsMsg) { + this.threadSaveStatsMsg = threadSaveStatsMsg; + } + + public ThreadStatus getThreadCreateAcc() { + return threadCreateAcc; + } + + public void setThreadCreateAcc(ThreadStatus threadCreateAcc) { + this.threadCreateAcc = threadCreateAcc; + } + + public String getThreadCreateAccMsg() { + return threadCreateAccMsg; + } + + public void setThreadCreateAccMsg(String threadCreateAccMsg) { + this.threadCreateAccMsg = threadCreateAccMsg; + } + + public ThreadStatus getThreadLogin() { + return threadLogin; + } + + public void setThreadLogin(ThreadStatus threadLogin) { + this.threadLogin = threadLogin; + } + + public String getThreadLoginMsg() { + return threadLoginMsg; + } + + public void setThreadLoginMsg(String threadLoginMsg) { + this.threadLoginMsg = threadLoginMsg; + } + +}