소스 검색

add players to game if they join in lobby area

Daniel Nägele 1 년 전
부모
커밋
828237d773

+ 2 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java

@@ -57,6 +57,7 @@ import org.bukkit.plugin.java.JavaPlugin;
 @Getter
 public class MissileWars extends JavaPlugin {
 
+    @Getter
     private static MissileWars instance;
     public final String version = getDescription().getVersion();
     private SignRepository signRepository;
@@ -71,13 +72,6 @@ public class MissileWars extends JavaPlugin {
         instance = this;
     }
 
-    /**
-     * @return the instance of the plugin
-     */
-    public static MissileWars getInstance() {
-        return instance;
-    }
-
     @Override
     public void onEnable() {
         long startTime;
@@ -116,7 +110,7 @@ public class MissileWars extends JavaPlugin {
         GameManager.getInstance().getGames().values().forEach(game -> {
             for (Player player : Bukkit.getOnlinePlayers()) {
                 if (!game.isIn(player.getLocation())) continue;
-                game.teleportToLobbySpawn(player);
+                game.playerJoinInGame(player, false);
             }
         });
 

+ 9 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/PlayerListener.java

@@ -34,7 +34,12 @@ import org.bukkit.event.EventHandler;
 import org.bukkit.event.Listener;
 import org.bukkit.event.block.BlockPlaceEvent;
 import org.bukkit.event.entity.FoodLevelChangeEvent;
-import org.bukkit.event.player.*;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerMoveEvent;
+import org.bukkit.event.player.PlayerPickupItemEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.event.player.PlayerTeleportEvent;
 import org.bukkit.event.server.ServerListPingEvent;
 import org.bukkit.scheduler.BukkitRunnable;
 
@@ -89,7 +94,9 @@ public class PlayerListener implements Listener {
         if (game == null) return;
 
         Player player = event.getPlayer();
-        game.teleportToFallbackSpawn(player);
+
+        PlayerArenaJoinEvent joinEvent = registerPlayerArenaJoinEvent(player, game);
+        if (joinEvent.isCancelled()) game.teleportToFallbackSpawn(player);
     }
 
     @EventHandler