From bd8e1a35f61849aeb5d705b099a6b67728393bf3 Mon Sep 17 00:00:00 2001 From: sk89q Date: Fri, 22 Aug 2014 16:08:31 -0700 Subject: [PATCH] Add block place, block break flags. --- .../bukkit/listener/RegionProtectionListener.java | 8 ++++---- .../sk89q/worldguard/protection/flags/DefaultFlag.java | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java b/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java index 9af4c04e..44476db0 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java @@ -141,12 +141,12 @@ public boolean apply(Location target) { /* Flint and steel, fire charge, etc. */ if (type == Material.FIRE) { - canPlace = query.testBuild(target, associable, DefaultFlag.LIGHTER); + canPlace = query.testBuild(target, associable, DefaultFlag.BLOCK_PLACE, DefaultFlag.LIGHTER); what = "place fire"; /* Everything else */ } else { - canPlace = query.testBuild(target, associable); + canPlace = query.testBuild(target, associable, DefaultFlag.BLOCK_PLACE); what = "place that block"; } @@ -178,12 +178,12 @@ public boolean apply(Location target) { /* TNT */ if (event.getCause().find(EntityType.PRIMED_TNT, EntityType.PRIMED_TNT) != null) { - canBreak = query.testBuild(target, associable, DefaultFlag.TNT); + canBreak = query.testBuild(target, associable, DefaultFlag.BLOCK_BREAK, DefaultFlag.TNT); what = "dynamite blocks"; /* Everything else */ } else { - canBreak = query.testBuild(target, associable); + canBreak = query.testBuild(target, associable, DefaultFlag.BLOCK_BREAK); what = "break that block"; } diff --git a/src/main/java/com/sk89q/worldguard/protection/flags/DefaultFlag.java b/src/main/java/com/sk89q/worldguard/protection/flags/DefaultFlag.java index 092025b5..c3eaae1a 100644 --- a/src/main/java/com/sk89q/worldguard/protection/flags/DefaultFlag.java +++ b/src/main/java/com/sk89q/worldguard/protection/flags/DefaultFlag.java @@ -44,6 +44,8 @@ public final class DefaultFlag { // These flags are used in tandem with the BUILD flag - if the player can // build, then the following flags do not need to be checked (although they // are still checked for DENY), so they are false by default + public static final StateFlag BLOCK_BREAK = new StateFlag("block-break", false); + public static final StateFlag BLOCK_PLACE = new StateFlag("block-place", false); public static final StateFlag USE = new StateFlag("use", false); public static final StateFlag PVP = new StateFlag("pvp", false); public static final StateFlag SLEEP = new StateFlag("sleep", false); @@ -125,7 +127,7 @@ public final class DefaultFlag { public static final SetFlag ALLOWED_CMDS = new SetFlag("allowed-cmds", new CommandStringFlag(null)); public static final Flag[] flagsList = new Flag[] { - PASSTHROUGH, BUILD, CONSTRUCT, PVP, CHEST_ACCESS, PISTONS, + PASSTHROUGH, BUILD, CONSTRUCT, BLOCK_BREAK, BLOCK_PLACE, PVP, CHEST_ACCESS, PISTONS, TNT, LIGHTER, USE, PLACE_VEHICLE, DESTROY_VEHICLE, SLEEP, MOB_DAMAGE, MOB_SPAWNING, DENY_SPAWN, INVINCIBILITY, EXP_DROPS, CREEPER_EXPLOSION, OTHER_EXPLOSION, ENDERDRAGON_BLOCK_DAMAGE, GHAST_FIREBALL, ENDER_BUILD,