From 1ffa4b48b8448e216cf0ffc7f5c499c1710ba287 Mon Sep 17 00:00:00 2001 From: isokissa3 Date: Wed, 8 May 2019 13:44:44 +0300 Subject: [PATCH] Enderpearl & chorus-teleport flags should be checked before handlers Before every handler would have been called, making them believe that the entry was successful --- .../listener/WorldGuardPlayerListener.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardPlayerListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardPlayerListener.java index 2e43086d..fd853285 100644 --- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardPlayerListener.java +++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardPlayerListener.java @@ -379,21 +379,12 @@ public void onPlayerTeleport(PlayerTeleportEvent event) { ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager(); WorldConfiguration wcfg = cfg.get(localPlayer.getWorld()); - if (wcfg.useRegions) { + if (wcfg.useRegions && cfg.usePlayerTeleports) { ApplicableRegionSet set = WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().getApplicableRegions(BukkitAdapter.adapt(event.getTo())); ApplicableRegionSet setFrom = WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().getApplicableRegions(BukkitAdapter.adapt(event.getFrom())); - if (cfg.usePlayerTeleports) { - if (null != WorldGuard.getInstance().getPlatform().getSessionManager().get(localPlayer).testMoveTo(localPlayer, - BukkitAdapter.adapt(event.getTo()), - MoveType.TELEPORT)) { - event.setCancelled(true); - return; - } - } - if (event.getCause() == TeleportCause.ENDER_PEARL) { if (!WorldGuard.getInstance().getPlatform().getSessionManager().hasBypass(localPlayer, localPlayer.getWorld())) { boolean cancel = false; @@ -430,6 +421,12 @@ public void onPlayerTeleport(PlayerTeleportEvent event) { } } } + if (null != WorldGuard.getInstance().getPlatform().getSessionManager().get(localPlayer).testMoveTo(localPlayer, + BukkitAdapter.adapt(event.getTo()), + MoveType.TELEPORT)) { + event.setCancelled(true); + return; + } } }