Browse Source

Merge pull request #43 from RedstoneFuture/Fixes/EventListenerRework

Fixing Area Join, Typo
Daniel 2 years ago
parent
commit
7f0c04fbeb

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/EndListener.java

@@ -70,7 +70,7 @@ public class EndListener extends GameBoundListener {
 
 
     @EventHandler
     @EventHandler
     public void onPlayerArenaJoin(PlayerArenaJoinEvent event) {
     public void onPlayerArenaJoin(PlayerArenaJoinEvent event) {
-        if (!isInGameWorld(event.getPlayer().getLocation())) return;
+        if (!getGame().isIn(event.getPlayer().getLocation())) return;
 
 
         if (getGame().isSpectatorsMax()) {
         if (getGame().isSpectatorsMax()) {
             event.setCancelled(true);
             event.setCancelled(true);

+ 2 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/GameListener.java

@@ -39,11 +39,7 @@ import org.bukkit.event.EventHandler;
 import org.bukkit.event.EventPriority;
 import org.bukkit.event.EventPriority;
 import org.bukkit.event.block.Action;
 import org.bukkit.event.block.Action;
 import org.bukkit.event.block.BlockPhysicsEvent;
 import org.bukkit.event.block.BlockPhysicsEvent;
-import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.event.entity.EntityDamageEvent;
-import org.bukkit.event.entity.EntityExplodeEvent;
-import org.bukkit.event.entity.PlayerDeathEvent;
-import org.bukkit.event.entity.ProjectileLaunchEvent;
+import org.bukkit.event.entity.*;
 import org.bukkit.event.inventory.InventoryClickEvent;
 import org.bukkit.event.inventory.InventoryClickEvent;
 import org.bukkit.event.inventory.InventoryType;
 import org.bukkit.event.inventory.InventoryType;
 import org.bukkit.event.player.PlayerInteractEvent;
 import org.bukkit.event.player.PlayerInteractEvent;
@@ -269,7 +265,7 @@ public class GameListener extends GameBoundListener {
 
 
     @EventHandler
     @EventHandler
     public void onPlayerArenaJoin(PlayerArenaJoinEvent event) {
     public void onPlayerArenaJoin(PlayerArenaJoinEvent event) {
-        if (!isInGameWorld(event.getPlayer().getLocation())) return;
+        if (!getGame().isIn(event.getPlayer().getLocation())) return;
 
 
         Player player = event.getPlayer();
         Player player = event.getPlayer();
 
 

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

@@ -120,11 +120,10 @@ public class PlayerListener implements Listener {
         // old game handling:
         // old game handling:
         if (gameFrom != null) registerPlayerArenaLeaveEvent(player, gameFrom);
         if (gameFrom != null) registerPlayerArenaLeaveEvent(player, gameFrom);
 
 
-        // teleport after a delay between the arena leave and the next area join
+        // new game handling (after a delay):
         if (gameTo == null) return;
         if (gameTo == null) return;
         new BukkitRunnable() {
         new BukkitRunnable() {
             public void run() {
             public void run() {
-                // new game handling:
                 PlayerArenaJoinEvent joinEvent = registerPlayerArenaJoinEvent(player, gameTo);
                 PlayerArenaJoinEvent joinEvent = registerPlayerArenaJoinEvent(player, gameTo);
                 if (joinEvent.isCancelled()) gameTo.teleportToFallbackSpawn(player);
                 if (joinEvent.isCancelled()) gameTo.teleportToFallbackSpawn(player);
             }
             }
@@ -146,12 +145,14 @@ public class PlayerListener implements Listener {
         // old game handling:
         // old game handling:
         if (gameFrom != null) registerPlayerArenaLeaveEvent(player, gameFrom);
         if (gameFrom != null) registerPlayerArenaLeaveEvent(player, gameFrom);
 
 
-        // new game handling:
-        if (gameTo != null) {
-            PlayerArenaJoinEvent joinEvent = registerPlayerArenaJoinEvent(player, gameTo);
-            if (!joinEvent.isCancelled()) return;
-            if (to != null) Game.knockbackEffect(player, from, to);
-        }
+        // new game handling (after a delay):
+        if (gameTo == null) return;
+        new BukkitRunnable() {
+            public void run() {
+                PlayerArenaJoinEvent joinEvent = registerPlayerArenaJoinEvent(player, gameTo);
+                if (joinEvent.isCancelled()) Game.knockbackEffect(player, from, to);
+            }
+        }.runTaskLater(MissileWars.getInstance(), 2);
     }
     }
 
 
     private PlayerArenaJoinEvent registerPlayerArenaJoinEvent(Player player, Game game) {
     private PlayerArenaJoinEvent registerPlayerArenaJoinEvent(Player player, Game game) {