diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java index 03e8df67..510b1180 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -303,6 +303,12 @@ public void onPlayerMove(PlayerMoveEvent event) { return; } + //Flush states in multiworld scenario + 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 +331,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(