From 2eea5c7bf7e837abb62b64a1ba8ec1471d0c3142 Mon Sep 17 00:00:00 2001 From: skeight Date: Fri, 10 Feb 2012 09:06:05 -0800 Subject: [PATCH 1/3] Fix for bug #728. Multiverse + WorldGuard region exit flag. --- .../worldguard/bukkit/WorldGuardPlayerListener.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java index 03e8df67..d7781a23 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -283,8 +283,9 @@ public void onPlayerMove(PlayerMoveEvent event) { if (event.getFrom().getBlockX() != event.getTo().getBlockX() || event.getFrom().getBlockY() != event.getTo().getBlockY() || event.getFrom().getBlockZ() != event.getTo().getBlockZ()) { + PlayerFlagState state = plugin.getFlagStateManager().getState(player); - LocalPlayer localPlayer = plugin.wrapPlayer(player); + LocalPlayer localPlayer = plugin.wrapPlayer(player); boolean hasBypass = plugin.getGlobalRegionManager().hasBypass(player, world); RegionManager mgr = plugin.getGlobalRegionManager().get(world); @@ -303,6 +304,12 @@ public void onPlayerMove(PlayerMoveEvent event) { return; } + //Fix for bug #728 + if (state.lastWorld != null && !state.lastWorld.equals(world)) { + plugin.getFlagStateManager().forget(player); + return; + } + // Have to set this state if (state.lastExitAllowed == null) { state.lastExitAllowed = mgr.getApplicableRegions(toVector(event.getFrom())) @@ -325,7 +332,7 @@ public void onPlayerMove(PlayerMoveEvent event) { String farewell = set.getFlag(DefaultFlag.FAREWELL_MESSAGE); Boolean notifyEnter = set.getFlag(DefaultFlag.NOTIFY_ENTER); Boolean notifyLeave = set.getFlag(DefaultFlag.NOTIFY_LEAVE); - + if (state.lastFarewell != null && (farewell == null || !state.lastFarewell.equals(farewell))) { String replacedFarewell = plugin.replaceMacros( From ed696848435f76665f0c4c7be14dbaeb71ccaac9 Mon Sep 17 00:00:00 2001 From: skeight Date: Fri, 10 Feb 2012 11:29:48 -0800 Subject: [PATCH 2/3] Fixing up whitespace --- .../worldguard/bukkit/WorldGuardPlayerListener.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java index d7781a23..e5b0d637 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -285,7 +285,7 @@ public void onPlayerMove(PlayerMoveEvent event) { || event.getFrom().getBlockZ() != event.getTo().getBlockZ()) { PlayerFlagState state = plugin.getFlagStateManager().getState(player); - LocalPlayer localPlayer = plugin.wrapPlayer(player); + LocalPlayer localPlayer = plugin.wrapPlayer(player); boolean hasBypass = plugin.getGlobalRegionManager().hasBypass(player, world); RegionManager mgr = plugin.getGlobalRegionManager().get(world); @@ -304,10 +304,10 @@ public void onPlayerMove(PlayerMoveEvent event) { return; } - //Fix for bug #728 - if (state.lastWorld != null && !state.lastWorld.equals(world)) { - plugin.getFlagStateManager().forget(player); - return; + //Flush states in multiworld scenario + if (state.lastWorld != null && !state.lastWorld.equals(world)) { + plugin.getFlagStateManager().forget(player); + return; } // Have to set this state From 1e3032bdced85619ac9bda3f408539643919bce9 Mon Sep 17 00:00:00 2001 From: skeight Date: Fri, 10 Feb 2012 11:30:43 -0800 Subject: [PATCH 3/3] More whitespace fixes... --- .../com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java index e5b0d637..510b1180 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -283,7 +283,6 @@ public void onPlayerMove(PlayerMoveEvent event) { if (event.getFrom().getBlockX() != event.getTo().getBlockX() || event.getFrom().getBlockY() != event.getTo().getBlockY() || event.getFrom().getBlockZ() != event.getTo().getBlockZ()) { - PlayerFlagState state = plugin.getFlagStateManager().getState(player); LocalPlayer localPlayer = plugin.wrapPlayer(player); boolean hasBypass = plugin.getGlobalRegionManager().hasBypass(player, world);