diff --git a/src/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/src/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java index a2f17ce5..e0c2f6d8 100644 --- a/src/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java +++ b/src/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java @@ -18,11 +18,11 @@ */ package com.sk89q.worldguard.bukkit; -import java.util.logging.*; import org.bukkit.plugin.java.JavaPlugin; import com.sk89q.worldguard.bukkit.commands.CommandHandler; -import com.sk89q.worldguard.protection.*; +import com.sk89q.worldguard.protection.TimedFlagsTimer; import com.sk89q.worldguard.protection.regionmanager.GlobalRegionManager; +import java.util.logging.Logger; /** * Plugin for Bukkit. diff --git a/src/com/sk89q/worldguard/protection/ApplicableRegionSet.java b/src/com/sk89q/worldguard/protection/ApplicableRegionSet.java index 4b5f2866..02539bb1 100644 --- a/src/com/sk89q/worldguard/protection/ApplicableRegionSet.java +++ b/src/com/sk89q/worldguard/protection/ApplicableRegionSet.java @@ -60,7 +60,7 @@ public ApplicableRegionSet(List applicable, GlobalFlags global * @return */ public boolean canBuild(LocalPlayer player) { - return isStateFlagAllowed(FlagType.BUILD, global.canBuild) || this.isMember(player); + return isStateFlagAllowed(FlagType.BUILD, global.canBuild, player); } /** diff --git a/src/com/sk89q/worldguard/protection/GlobalFlags.java b/src/com/sk89q/worldguard/protection/GlobalFlags.java index 1121b0e0..e1a5e3c4 100644 --- a/src/com/sk89q/worldguard/protection/GlobalFlags.java +++ b/src/com/sk89q/worldguard/protection/GlobalFlags.java @@ -64,7 +64,7 @@ public boolean getDefaultValue(FlagType type) case WATER_FLOW: return this.allowWaterflow; default: - return false; + return true; } } } diff --git a/src/com/sk89q/worldguard/protection/TimedFlagsTimer.java b/src/com/sk89q/worldguard/protection/TimedFlagsTimer.java index 3c4a4a9d..04d06ece 100644 --- a/src/com/sk89q/worldguard/protection/TimedFlagsTimer.java +++ b/src/com/sk89q/worldguard/protection/TimedFlagsTimer.java @@ -20,6 +20,9 @@ package com.sk89q.worldguard.protection; +import org.bukkit.Location; +import com.sk89q.worldguard.LocalPlayer; +import com.sk89q.worldguard.bukkit.BukkitPlayer; import com.sk89q.worldguard.protection.regions.flags.FlagDatabase.FlagType; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.protection.regionmanager.RegionManager; @@ -122,6 +125,15 @@ public void run() { } } + //check passthrough flag + LocalPlayer lplayer = BukkitPlayer.wrapPlayer(wg.getWgConfiguration(), player); + if(!regions.isStateFlagAllowed(FlagType.PASSTHROUGH, lplayer)) + { + Location newLoc = player.getLocation().clone(); + newLoc.setX(newLoc.getBlockX() - 30); + newLoc.setY(newLoc.getWorld().getHighestBlockYAt(newLoc) + 1); + player.teleportTo(newLoc); + } } }