diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/GsonHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/GsonHandler.java index 190cc6c4f96739a4140057250457aebb5bedf7fa..0b6bb2a2974338947bbbd2a7f299ef52077dfd59 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/GsonHandler.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/GsonHandler.java @@ -146,5 +146,4 @@ public class GsonHandler { } } - } 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 d2830af99e8f5de383a89820b049cbb75570b776..39ce263357d4e1f49fea56c8c8b1d098f1c543bd 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 @@ -195,7 +195,8 @@ public class Persistence { } } - public void saveCreatedMapLocally(MapData map) throws DatabaseException { + public void saveCreatedMap(MapData map, boolean doUpload) throws DatabaseException { + String part1 = ""; try { for(int i = 0; communityMaps.size() > i; i++){ if(communityMaps.get(i).getMapID().equals(map.getMapID())){ @@ -204,35 +205,27 @@ public class Persistence { } communityMaps.add(map); gsonHandler.saveMaps(communityMaps, MapType.COMMUNITYMAP); - //createLocalCommunityMapsList(); log.info("Newly created map stored successfully in JSON!"); } catch(Exception e){ log.error(e); - if(e.getMessage().contains("Identical map already saved") | e.getMessage().contains("ORA-01017")){ - throw new DatabaseException(e.getMessage()); - } - else{ - throw new DatabaseException("Unknown Database Error. Saving newly created Community-Map locally failed!"); - } - } - } - - public void uploadCreatedMap(MapData map) throws DatabaseException { - try { - db.uploadCommunityMap(map); - log.info("Newly created Community-Map successfully published!"); - } - catch(Exception e){ - log.error(e); - if(e.getMessage().contains("ORA-17868") | e.getMessage().contains("ORA-01017")){ - throw new DatabaseException("No connection to SQL server!"); - } - else if(e.getMessage().contains("ORA-00001")){ - throw new DatabaseException("Map already existing on communityMaps server!\n Look for mapID: " + map.getMapID()); - } - else{ - throw new DatabaseException("Unknown Database Error. Saving to SQL communityMap server failed!"); + if(e.getMessage().contains("Identical map already saved")){ + part1 = e.getMessage(); + } + } + if(doUpload) { + try { + db.uploadCommunityMap(map); + log.info("Newly created Community-Map successfully published!"); + } catch (Exception e) { + log.error(e); + if (e.getMessage().contains("ORA-17868") | e.getMessage().contains("ORA-01017")) { + throw new DatabaseException(part1 + "\nNo connection to SQL server! Saving to SQL communityMap server failed!"); + } else if (e.getMessage().contains("ORA-00001")) { + throw new DatabaseException(part1 + "\nMap already existing on communityMaps server!\n Look for mapID: " + map.getMapID()); + } else { + throw new DatabaseException(part1 + "\nUnknown Database Error. Saving to SQL communityMap server failed!"); + } } } } @@ -321,7 +314,7 @@ public class Persistence { throw new DatabaseException("Locally stored password does not match online password. Please reenter credentials!"); } } - else{ //überflüssig, da GSON schon beim laden der Daten meckern würde, wenn er den Accounttype nicht finden kann + else{ //eigentlich überflüssig, da GSON schon beim Laden der Daten meckern würde, wenn er den Accounttype nicht finden kann throw new DatabaseException("AccountType invalid - accountData corrupted! Please create new Account or login with existing!"); } log.info("Player account successfully verified!"); 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 9520b77d310781cd14484ed791e241765102cb65..5564faa20622c1380dbaaaf80e2df616cebe5c7d 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 @@ -26,11 +26,25 @@ public class RuntimeInfo { //Thread Status-Updates private ThreadStatus threadStartup1; - private String threadStartup1Message; + private String threadStartup1Msg; private ThreadStatus threadStartup2; - private String threadStartup2Message; + 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; @@ -116,12 +130,12 @@ public class RuntimeInfo { this.threadStartup1 = threadStartup1; } - public String getThreadStartup1Message() { - return threadStartup1Message; + public String getThreadStartup1Msg() { + return threadStartup1Msg; } - public void setThreadStartup1Message(String threadStartup1Message) { - this.threadStartup1Message = threadStartup1Message; + public void setThreadStartup1Msg(String threadStartup1Msg) { + this.threadStartup1Msg = threadStartup1Msg; } public ThreadStatus getThreadStartup2() { @@ -132,12 +146,12 @@ public class RuntimeInfo { this.threadStartup2 = threadStartup2; } - public String getThreadStartup2Message() { - return threadStartup2Message; + public String getThreadStartup2Msg() { + return threadStartup2Msg; } - public void setThreadStartup2Message(String threadStartup2Message) { - this.threadStartup2Message = threadStartup2Message; + public void setThreadStartup2Msg(String threadStartup2Msg) { + this.threadStartup2Msg = threadStartup2Msg; } public ThreadStatus getThreadUpdateMaps() { @@ -148,6 +162,14 @@ public class RuntimeInfo { this.threadUpdateMaps = threadUpdateMaps; } + public String getThreadUpdateMapsMsg() { + return threadUpdateMapsMsg; + } + + public void setThreadUpdateMapsMsg(String threadUpdateMapsMsg) { + this.threadUpdateMapsMsg = threadUpdateMapsMsg; + } + public ThreadStatus getThreadUpdateStats() { return threadUpdateStats; } @@ -156,6 +178,110 @@ public class RuntimeInfo { 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; } 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 new file mode 100644 index 0000000000000000000000000000000000000000..00ca1da578dcdb6cb2f62e7894b24b9d8dd828ec --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadCreateAcc.java @@ -0,0 +1,41 @@ +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 ThreadCreateAcc extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadCreateAcc.class); + private String playerName; + private String password; + private AccountType type; + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadCreateAcc(ThreadStatus.RUNNING); + persistenceInst.createAccount(playerName, password, type); + log.info("Create account thread finished successfully!"); + runtimeInfoInst.setThreadCreateAcc(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadCreateAccMsg(e.getMessage()); + log.info("Create account thread failed!"); + runtimeInfoInst.setThreadCreateAcc(ThreadStatus.FAILED); + } + } + + public void startThread(String playerName, String password, AccountType type){ + this.playerName = playerName; + this.password = password; + this.type = type; + start(); + } + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..be7d23d78b22b8ca6115a744f0596573f2ed0247 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadDLCommMap.java @@ -0,0 +1,36 @@ +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 ThreadDLCommMap extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadDLCommMap.class); + private String mapID; + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadDLCommMap(ThreadStatus.RUNNING); + persistenceInst.getCommunityMap(mapID); + log.info("Download Community-Map thread finished successfully!"); + runtimeInfoInst.setThreadDLCommMap(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadDLCommMapMsg(e.getMessage()); + log.info("Download Community-Map thread failed!"); + runtimeInfoInst.setThreadDLCommMap(ThreadStatus.FAILED); + } + } + + public void startThread(String mapID){ + this.mapID = mapID; + start(); + } + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..e550762d4d9e553693f8fd4e3abe5274757554c4 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadGetMapList.java @@ -0,0 +1,30 @@ +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 ThreadGetMapList extends Thread { + + private static final Logger log = LogManager.getLogger(ThreadGetMapList.class); + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadCommMapList(ThreadStatus.RUNNING); + persistenceInst.createRemoteCommunityMapsList(); + log.info("Retrieving Community-Map-List thread finished successfully!"); + runtimeInfoInst.setThreadCommMapList(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadCommMapListMsg(e.getMessage()); + log.info("Retrieving Community-Map-List thread failed!"); + runtimeInfoInst.setThreadCommMapList(ThreadStatus.FAILED); + } + } + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..9d3579e2bca119ba43bf96180dbaf3e8cfcbaa49 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadRstStats.java @@ -0,0 +1,30 @@ +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 ThreadRstStats extends Thread { + + private static final Logger log = LogManager.getLogger(ThreadRstStats.class); + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadRstStats(ThreadStatus.RUNNING); + persistenceInst.resetPlayerStatistics(); + log.info("Reset Player-Statistics thread finished successfully!"); + runtimeInfoInst.setThreadRstStats(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadRstStatsMsg(e.getMessage()); + log.info("Reset Player-Statistics thread failed!"); + runtimeInfoInst.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 new file mode 100644 index 0000000000000000000000000000000000000000..a7b8fe7f705b6f340581f5fa91b3222d835e94d6 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveCommMap.java @@ -0,0 +1,38 @@ +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 ThreadSaveCommMap extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadSaveCommMap.class); + private MapData map; + private boolean doUpload; + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.RUNNING); + persistenceInst.saveCreatedMap(map, doUpload); + log.info("Uploading Community-Map thread finished successfully!"); + runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadSaveCommMapMsg(e.getMessage()); + log.info("Uploading Community-Map thread failed!"); + runtimeInfoInst.setThreadSaveCommMap(ThreadStatus.FAILED); + } + } + + public void startThread(MapData map, boolean doUpload){ + this.map = map; + this.doUpload = doUpload; + start(); + } + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..d3174d6d3406dbc7a8d60536e39d73e49dcddb79 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/ThreadSaveStats.java @@ -0,0 +1,30 @@ +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 ThreadSaveStats extends Thread{ + + private static final Logger log = LogManager.getLogger(ThreadSaveStats.class); + + @Override + public void run() { + + Persistence persistenceInst = Persistence.getInstance(); + RuntimeInfo runtimeInfoInst = RuntimeInfo.getInstance(); + + try { + runtimeInfoInst.setThreadSaveStats(ThreadStatus.RUNNING); + persistenceInst.savePlayerStatistics(); + log.info("Save Player-Statistics thread finished successfully!"); + runtimeInfoInst.setThreadSaveStats(ThreadStatus.FINISHED); + } catch (Exception e) { + log.error(e); + runtimeInfoInst.setThreadSaveStatsMsg(e.getMessage()); + log.info("Save Player-Statistics thread failed!"); + runtimeInfoInst.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 a680df0d6352c668c1c36dbe953c38ce3247cb48..d224f07439612d50cd7409c4aef830fb5a81693d 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 @@ -26,7 +26,8 @@ public class ThreadStartup1 extends Thread{ runtimeInfoInst.setThreadStartup1(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadStartup1Message(e.getMessage()); + runtimeInfoInst.setThreadStartup1Msg(e.getMessage()); + log.info("Startup routine part1 failed!"); runtimeInfoInst.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 a711e529fa2f3497468da51739edd58af3abd8bf..b2d6bca949581da585d77217d446d55abcb3459a 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 @@ -21,7 +21,8 @@ public class ThreadStartup2 extends Thread{ runtimeInfoInst.setThreadStartup2(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); - runtimeInfoInst.setThreadStartup2Message(e.getMessage()); + runtimeInfoInst.setThreadStartup2Msg(e.getMessage()); + log.info("Startup routine part2 failed!"); runtimeInfoInst.setThreadStartup2(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 19d27572c5c97774ab924b8d8cc6a6032bb9fc73..d3b693ba343ecb546ac1ae1b44cec9d2bdd55e3b 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 @@ -21,6 +21,7 @@ public class ThreadUpdateMaps extends Thread{ runtimeInfoInst.setThreadUpdateMaps(ThreadStatus.FINISHED); } catch (Exception e) { log.error(e); + log.info("Update Core-Maps thread failed!"); runtimeInfoInst.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 9f0b735829e00544b930ce94dc0269e065b2699b..02475b2d47bdfe33b2096869b9cc8052daf45e46 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 @@ -17,6 +17,11 @@ public class ThreadUpdateStats extends Thread{ try { runtimeInfoInst.setThreadUpdateStats(ThreadStatus.RUNNING); persistenceInst.updatePlayerStatistics(runtimeInfoInst.getKills(), runtimeInfoInst.getDeaths(), runtimeInfoInst.getGameTime(), runtimeInfoInst.getBlocksDestroyed(), runtimeInfoInst.isGameWon()); + runtimeInfoInst.setKills(0); + runtimeInfoInst.setDeaths(0); + runtimeInfoInst.setGameTime(0); + runtimeInfoInst.setBlocksDestroyed(0); + runtimeInfoInst.setGameWon(false); log.info("Update statistics thread finished successfully!"); runtimeInfoInst.setThreadUpdateStats(ThreadStatus.FINISHED); } catch (Exception e) {