Forráskód Böngészése

Fixing error on server stop

RedstoneFuture 3 éve
szülő
commit
28df9f271f

+ 11 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -294,17 +294,25 @@ public class Game {
         restart = true;
     }
 
-    public void sendPlayerToFallbackSpawn() {
+    public void disableGameOnServerStop() {
+        sendPlayerToFallbackSpawn();
+        gameWorld.unload();
+    }
+
+    private void sendPlayerToFallbackSpawn() {
 
         for (Player player : Bukkit.getOnlinePlayers()) {
             if (!isIn(player.getLocation())) continue;
+
             player.teleport(Config.getFallbackSpawn());
-            player.setHealth(player.getMaxHealth());
+
             player.getInventory().clear();
+            player.setFoodLevel(20);
+            player.setHealth(player.getMaxHealth());
         }
     }
 
-    public void disable() {
+    public void resetGame() {
         if (state == GameState.INGAME) stopGame();
 
         HandlerList.unregisterAll(listener);

+ 2 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -41,8 +41,7 @@ public class GameManager {
 
 
     public void disableAll() {
-        games.values().forEach(Game::sendPlayerToFallbackSpawn);
-        games.values().forEach(Game::disable);
+        games.values().forEach(Game::disableGameOnServerStop);
         games.clear();
     }
 
@@ -78,7 +77,6 @@ public class GameManager {
     }
 
     private void loadGames(File[] files) {
-        disableAll();
 
         for (File game : files) {
             if (game == null)
@@ -112,7 +110,7 @@ public class GameManager {
         Game game = getGame(name);
         if (game == null)
             return;
-        game.disable();
+        game.resetGame();
         games.remove(name);
     }