From 971b1c2405acc47a1e9acb9d7d66aeb6e9c0abee Mon Sep 17 00:00:00 2001
From: Martin <ms618@hdm-stuttgart.de>
Date: Fri, 19 Jan 2024 11:38:57 +0100
Subject: [PATCH] Update: Persistence.java (added data verification to
 updatePLayerStatistics() method)

---
 .../DataStorage/Classes/Persistence.java      | 24 ++++++++++++-------
 1 file changed, 15 insertions(+), 9 deletions(-)

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 4dd659b0..d2830af9 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
@@ -238,17 +238,23 @@ public class Persistence {
     }
 
     public void updatePlayerStatistics(int kills, int deaths, int gameTime, int blocksDestroyed, boolean gameWon) throws DatabaseException{  //after game round
-        statistics.addKills(kills);
-        statistics.addDeaths(deaths);
-        statistics.addGameTime(gameTime);
-        statistics.addBlocksDestroyed(blocksDestroyed);
-        if(gameWon){
-            statistics.addGamesWon();
+        try {
+            Parser.playerStatsValid(new PlayerStatistics(0, 0, kills, deaths, blocksDestroyed, gameTime)); //temp instance of PLayerStatistics to validate new values
+            statistics.addKills(kills);
+            statistics.addDeaths(deaths);
+            statistics.addGameTime(gameTime);
+            statistics.addBlocksDestroyed(blocksDestroyed);
+            if(gameWon){
+                statistics.addGamesWon();
+            }
+            else{
+                statistics.addGamesLost();
+            }
+            log.info("Statistics successfully updated!");
         }
-        else{
-            statistics.addGamesLost();
+        catch(Exception e){
+            log.error(e);
         }
-        log.info("Statistics successfully updated!");
     }
 
     public void createAccount(String playerName, String password, AccountType type) throws DatabaseException {
-- 
GitLab