From aeed9bdb0f54db4db57b49cf04082d5b0ce4e279 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 24 May 2026 19:43:39 +0000 Subject: [PATCH] Delete src/main/java/net/viper/status/stats/StatsStorage.java via Git Manager GUI --- .../net/viper/status/stats/StatsStorage.java | 46 ------------------- 1 file changed, 46 deletions(-) delete mode 100644 src/main/java/net/viper/status/stats/StatsStorage.java diff --git a/src/main/java/net/viper/status/stats/StatsStorage.java b/src/main/java/net/viper/status/stats/StatsStorage.java deleted file mode 100644 index 7913271..0000000 --- a/src/main/java/net/viper/status/stats/StatsStorage.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.viper.status.stats; - -import java.io.*; - -/** - * Fix #9: save() und load() sind jetzt synchronized um Race Conditions - * zwischen Auto-Save-Task und Shutdown-Aufruf zu verhindern. - */ -public class StatsStorage { - private final File file; - private final Object fileLock = new Object(); - - public StatsStorage(File pluginFolder) { - if (!pluginFolder.exists()) pluginFolder.mkdirs(); - this.file = new File(pluginFolder, "stats.dat"); - } - - public void save(StatsManager manager) { - synchronized (fileLock) { - try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) { - for (PlayerStats ps : manager.all()) { - bw.write(ps.toLine()); - bw.newLine(); - } - bw.flush(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - public void load(StatsManager manager) { - if (!file.exists()) return; - synchronized (fileLock) { - try (BufferedReader br = new BufferedReader(new FileReader(file))) { - String line; - while ((line = br.readLine()) != null) { - PlayerStats ps = PlayerStats.fromLine(line); - if (ps != null) manager.put(ps); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - } -}