From 9dce553f2a969a3f12465090930f955477488bdc Mon Sep 17 00:00:00 2001 From: M_Viper Date: Mon, 30 Mar 2026 18:45:09 +0000 Subject: [PATCH] Delete src/main/java/net/viper/status/stats/StatsModule.java via Git Manager GUI --- .../net/viper/status/stats/StatsModule.java | 100 ------------------ 1 file changed, 100 deletions(-) delete mode 100644 src/main/java/net/viper/status/stats/StatsModule.java diff --git a/src/main/java/net/viper/status/stats/StatsModule.java b/src/main/java/net/viper/status/stats/StatsModule.java deleted file mode 100644 index 3744f67..0000000 --- a/src/main/java/net/viper/status/stats/StatsModule.java +++ /dev/null @@ -1,100 +0,0 @@ -package net.viper.status.stats; - -import net.md_5.bungee.api.event.PlayerDisconnectEvent; -import net.md_5.bungee.api.event.PostLoginEvent; -import net.md_5.bungee.api.plugin.Plugin; -import net.md_5.bungee.api.plugin.Listener; -import net.md_5.bungee.event.EventHandler; -import net.viper.status.module.Module; - -import java.util.concurrent.TimeUnit; - -/** - * StatsModule: Kümmert sich eigenständig um das Tracking der Spielerdaten. - * Implementiert Module (für das Lifecycle) und Listener (für die Events). - */ -public class StatsModule implements Module, Listener { - - private StatsManager manager; - private StatsStorage storage; - - @Override - public String getName() { - return "StatsModule"; - } - - @Override - public void onEnable(Plugin plugin) { - // Initialisierung - manager = new StatsManager(); - storage = new StatsStorage(plugin.getDataFolder()); - - // Laden - try { - storage.load(manager); - plugin.getLogger().info("Player-Stats wurden erfolgreich geladen."); - } catch (Exception e) { - plugin.getLogger().warning("Fehler beim Laden der Stats: " + e.getMessage()); - } - - // Event Listener registrieren - plugin.getProxy().getPluginManager().registerListener(plugin, this); - - // Auto-Save Task (alle 5 Minuten) - plugin.getProxy().getScheduler().schedule(plugin, () -> { - try { - storage.save(manager); - plugin.getLogger().info("Auto-Save: Player-Stats gespeichert."); - } catch (Exception e) { - plugin.getLogger().warning("Fehler beim Auto-Save: " + e.getMessage()); - } - }, 5, 5, TimeUnit.MINUTES); - } - - @Override - public void onDisable(Plugin plugin) { - if (manager != null && storage != null) { - // Laufende Sessions beenden vor dem Speichern - long now = System.currentTimeMillis() / 1000L; - for (PlayerStats ps : manager.all()) { - synchronized (ps) { - if (ps.currentSessionStart > 0) { - long delta = now - ps.currentSessionStart; - if (delta > 0) { - ps.totalPlaytime += delta; - } - ps.currentSessionStart = 0; // Session beenden - } - } - } - try { - storage.save(manager); - plugin.getLogger().info("Player-Stats beim Shutdown gespeichert."); - } catch (Exception e) { - plugin.getLogger().warning("Fehler beim Speichern (Shutdown): " + e.getMessage()); - } - } - } - - // Öffentlicher Zugriff für den WebServer - public StatsManager getManager() { - return manager; - } - - // --- Events --- - - @EventHandler - public void onJoin(PostLoginEvent e) { - try { - manager.get(e.getPlayer().getUniqueId(), e.getPlayer().getName()).onJoin(); - } catch (Exception ignored) {} - } - - @EventHandler - public void onQuit(PlayerDisconnectEvent e) { - try { - PlayerStats ps = manager.getIfPresent(e.getPlayer().getUniqueId()); - if (ps != null) ps.onQuit(); - } catch (Exception ignored) {} - } -} \ No newline at end of file