From d7b1870e7a71749f3ccd48c96f540c98b2daf86a Mon Sep 17 00:00:00 2001
From: Martin <ms618@hdm-stuttgart.de>
Date: Sun, 21 Jan 2024 21:16:08 +0100
Subject: [PATCH] Update: Minor improvements

---
 .../battlearena/Controller/LoginController.java   |  6 ++++++
 .../Model/DataStorage/Classes/Persistence.java    | 15 +++------------
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
index bb09e451..3dd94f73 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoginController.java
@@ -2,7 +2,9 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.ParserException;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities.Parser;
 import javafx.application.Platform;
 import javafx.fxml.FXML;
 import javafx.scene.control.Label;
@@ -36,11 +38,15 @@ public class LoginController {
     Thread thread = new Thread(() -> {
         try {
             persistence.login(playerName.getText(), password.getText());
+            persistence.loadPlayerStatistics();
+            Parser.playerStatsValid(persistence.getStatistics());
             Platform.runLater(() -> switchScene("MainMenu"));
         } catch (NoSuchAlgorithmException e) {
             throw new RuntimeException(e);
         } catch (DatabaseException e) {
             Platform.runLater(() -> errorMessage.setText(e.getMessage()));
+        } catch (ParserException e) {
+            throw new RuntimeException(e);
         }
     });
 
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 09485bed..9291ee84 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
@@ -465,25 +465,16 @@ public class Persistence {
         try {
             String hash = HashGenerator.hashAndHex(password);
             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);
+                account = new PlayerAccount(userName, hash, AccountType.ONLINE);
+                gsonHandler.saveAccount(account);
                 log.info("Login successful!");
             } else {
-                throw new DatabaseException();
+                throw new DatabaseException("Wrong password!");
             }
         }
         catch (GSONException | SQLException e) {
             throw new RuntimeException(e);
         }
-        catch (DatabaseException e) {
-            throw new DatabaseException("Wrong password!");
-        }
-        catch (ParserException e) {
-            throw new DatabaseException("Player statistics data corrupted!");
-        }
     }
 
 }
-- 
GitLab