فهرست منبع

Teleport players to fallback spawn at server stop

RedstoneFuture 3 سال پیش
والد
کامیت
4a09d4fe57

+ 10 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -294,6 +294,16 @@ public class Game {
         restart = true;
     }
 
+    public void sendPlayerToFallbackSpawn() {
+
+        for (Player player : Bukkit.getOnlinePlayers()) {
+            if (!isIn(player.getLocation())) continue;
+            player.teleport(Config.getFallbackSpawn());
+            player.setHealth(player.getMaxHealth());
+            player.getInventory().clear();
+        }
+    }
+
     public void disable() {
         if (state == GameState.INGAME) stopGame();
 

+ 5 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -24,13 +24,14 @@ import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.util.serialization.Serializer;
 import de.butzlabben.missilewars.wrapper.abstracts.Lobby;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
 import lombok.Getter;
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
 @Getter
 public class GameManager {
 
@@ -40,6 +41,7 @@ public class GameManager {
 
 
     public void disableAll() {
+        games.values().forEach(Game::sendPlayerToFallbackSpawn);
         games.values().forEach(Game::disable);
         games.clear();
     }