فهرست منبع

Updating `MissileWars` class

RedstoneFuture 5 ماه پیش
والد
کامیت
37c5aa9dc3
1فایلهای تغییر یافته به همراه14 افزوده شده و 57 حذف شده
  1. 14 57
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java

+ 14 - 57
missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java

@@ -21,32 +21,25 @@ package de.butzlabben.missilewars;
 import co.aikar.commands.PaperCommandManager;
 import de.butzlabben.missilewars.commands.*;
 import de.butzlabben.missilewars.configuration.Config;
-import de.butzlabben.missilewars.configuration.PluginMessages;
-import de.butzlabben.missilewars.game.Arenas;
 import de.butzlabben.missilewars.game.GameManager;
 import de.butzlabben.missilewars.game.misc.MissileWarsPlaceholder;
 import de.butzlabben.missilewars.game.schematics.paste.FawePasteProvider;
 import de.butzlabben.missilewars.game.schematics.paste.Paster;
-import de.butzlabben.missilewars.game.signs.SignUpdateRunnable;
 import de.butzlabben.missilewars.game.signs.SignRepository;
 import de.butzlabben.missilewars.game.stats.StatsFetcher;
+import de.butzlabben.missilewars.initialization.FileManager;
+import de.butzlabben.missilewars.initialization.GamesInitialization;
 import de.butzlabben.missilewars.listener.PlayerListener;
 import de.butzlabben.missilewars.listener.SignListener;
-import de.butzlabben.missilewars.player.PlayerData;
 import de.butzlabben.missilewars.util.ConnectionHolder;
 import de.butzlabben.missilewars.util.MoneyUtil;
-import de.butzlabben.missilewars.util.SetupUtil;
 import de.butzlabben.missilewars.util.stats.PreFetcher;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import lombok.Getter;
-import org.apache.commons.io.FileUtils;
 import org.bstats.bukkit.Metrics;
 import org.bukkit.Bukkit;
-import org.bukkit.configuration.serialization.ConfigurationSerialization;
-import org.bukkit.entity.Player;
 import org.bukkit.plugin.java.JavaPlugin;
 
-import java.io.File;
 import java.util.Date;
 
 /**
@@ -82,57 +75,38 @@ public class MissileWars extends JavaPlugin {
         sendPluginInfo();
 
         Logger.BOOT.log("Loading properties...");
-
-        // delete the old MissileWars (temporary) arena world from the last server session, if still exists
-        deleteTempWorlds();
-
-        Config.load();
-        PluginMessages.load();
         
-        new File(Config.getGamesFolder()).mkdirs();
+        FileManager.setupRoutine();
         
-        SetupUtil.saveDefaultFiles(Config.getMissilesFolder(), "missiles.zip", this);
-        SetupUtil.saveDefaultFiles(Config.getShieldsFolder(), "shields.zip", this);
+        signRepository = SignRepository.load();
         
-        this.signRepository = SignRepository.load();
-
         registerEvents();
         registerCommands();
 
-        Arenas.load();
-
-        GameManager.getInstance().loadGamesOnStartup();
-
+        // special Dependency-Management:
         new Metrics(this, 3749);
         
-        GameManager.getInstance().getGames().values().forEach(game -> {
-            for (Player player : Bukkit.getOnlinePlayers()) {
-                if (!game.isIn(player.getLocation())) continue;
-                game.teleportToLobbySpawn(player);
-            }
-        });
+        initialWeSupport();
+        initialPapiSupport();
+        MoneyUtil.giveMoney(null, -1);
+        
+        GamesInitialization.initialize();
         
-        Bukkit.getScheduler().runTaskTimerAsynchronously(this, new SignUpdateRunnable(), 20, 20 * 10);
-
+        // Warm-up for Stats:
         if (Config.isPrefetchPlayers()) {
             PreFetcher.preFetchPlayers(new StatsFetcher(new Date(0L), ""));
         }
         
-        initialWeSupport();
-        initialPapiSupport();
-        MoneyUtil.giveMoney(null, -1);
-        
-        ConfigurationSerialization.registerClass(PlayerData.class);
-
         endTime = System.currentTimeMillis();
         Logger.SUCCESS.log("MissileWars was enabled in " + (endTime - startTime) + "ms");
+        
     }
 
     @Override
     public void onDisable() {
+        
         GameManager.getInstance().disableAll();
-        deleteTempWorlds();
-
+        FileManager.shotDownRoutine();
         ConnectionHolder.close();
     }
     
@@ -191,23 +165,6 @@ public class MissileWars extends JavaPlugin {
         commandManager.registerCommand(new SetupCommands());
     }
     
-    /**
-     * This methode deletes the temp arena worlds of the MW game.
-     */
-    private void deleteTempWorlds() {
-        File[] dirs = Bukkit.getWorldContainer().listFiles();
-        if (dirs == null) return;
-
-        for (File dir : dirs) {
-            if (dir.getName().startsWith("mw-")) {
-                try {
-                    FileUtils.deleteDirectory(dir);
-                } catch (Exception ignored) {
-                }
-            }
-        }
-    }
-
     /**
      * This method sends information about the version, version
      * warnings (if necessary) and authors in the console.