From 26946feecc437b645fb1df47bcd494369b83b45d Mon Sep 17 00:00:00 2001 From: Wizjany Date: Fri, 27 May 2011 19:05:27 -0400 Subject: [PATCH 1/4] Merge leafdecay flag from zml2008 --- .../worldguard/bukkit/WorldGuardBlockListener.java | 12 ++++++++++++ .../worldguard/protection/flags/DefaultFlag.java | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java index f9aaa6a4..050f876f 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java @@ -67,6 +67,7 @@ public void registerEvents() { pm.registerEvent(Event.Type.SIGN_CHANGE, this, Priority.High, plugin); pm.registerEvent(Event.Type.REDSTONE_CHANGE, this, Priority.High, plugin); pm.registerEvent(Event.Type.SNOW_FORM, this, Priority.High, plugin); + pm.registerEvent(Event.Type.LEAVES_DECAY, this, Priority.High, plugin); } protected WorldConfiguration getWorldConfig(World world) { @@ -554,6 +555,17 @@ public void onSnowForm(SnowFormEvent event) { event.setCancelled(true); } } + + @Override + public void onLeavesDecay(LeavesDecayEvent event) { + if (event.isCancelled()) { + return; + } + + if (!plugin.getGlobalRegionManager().allows(DefaultFlag.LEAF_DECAY, event.getBlock().getLocation())) { + event.setCancelled(true); + } + } /** * Drops a sign item and removes a sign. * 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 494f5ca2..54d4c683 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,7 @@ public final class DefaultFlag { public static final StateFlag USE = new StateFlag("use", false); public static final StateFlag PLACE_VEHICLE = new StateFlag("vehicle-place", false); public static final StateFlag SNOW_FALL = new StateFlag("snow-fall", true); + public static final StateFlag LEAF_DECAY = new StateFlag("leaf-decay", true); public static final StringFlag GREET_MESSAGE = new StringFlag("greeting"); public static final StringFlag FAREWELL_MESSAGE = new StringFlag("farewell"); public static final BooleanFlag NOTIFY_GREET = new BooleanFlag("notify-greet"); @@ -63,7 +64,7 @@ public final class DefaultFlag { TNT, LIGHTER, FIRE_SPREAD, LAVA_FIRE, CHEST_ACCESS, WATER_FLOW, LAVA_FLOW, USE, PLACE_VEHICLE, GREET_MESSAGE, FAREWELL_MESSAGE, NOTIFY_GREET, NOTIFY_FAREWELL, DENY_SPAWN, HEAL_DELAY, HEAL_AMOUNT, TELE_LOC, - TELE_PERM, SPAWN_LOC, SPAWN_PERM, BUYABLE, PRICE, SNOW_FALL, + TELE_PERM, SPAWN_LOC, SPAWN_PERM, BUYABLE, PRICE, SNOW_FALL, LEAF_DECAY, GHAST_FIREBALL }; From 4591fc603f80d180b1c78b025c1a769a6cf7f376 Mon Sep 17 00:00:00 2001 From: Wizjany Date: Tue, 31 May 2011 19:58:12 -0400 Subject: [PATCH 2/4] Added permission nodes as an alternative to wg-invincible and -amphibious groups. --- .../sk89q/worldguard/bukkit/WorldGuardPlayerListener.java | 6 ++++-- 1 file changed, 4 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 9ed829a0..8cc48542 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -441,11 +441,13 @@ public void onPlayerJoin(PlayerJoinEvent event) { + "Fire spread is currently globally disabled for this world."); } - if (plugin.inGroup(player, "wg-invincible")) { + if (plugin.inGroup(player, "wg-invincible") + || plugin.hasPermission(player, "worldguard.login.god")) { cfg.enableGodMode(player); } - if (plugin.inGroup(player, "wg-amphibious")) { + if (plugin.inGroup(player, "wg-amphibious") + || plugin.hasPermission(player, "worldguard.login.amphibious")) { cfg.enableAmphibiousMode(player); } } From 548dd0365c767cc3628871d2cb21af3e4a48b933 Mon Sep 17 00:00:00 2001 From: Wizjany Date: Thu, 2 Jun 2011 19:34:29 -0400 Subject: [PATCH 3/4] Fixed another infinite sign... --- .../com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java index 050f876f..a845f722 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java @@ -574,7 +574,7 @@ public void onLeavesDecay(LeavesDecayEvent event) { private void dropSign(Block block) { block.setTypeId(0); block.getWorld().dropItemNaturally(block.getLocation(), - new ItemStack(Material.SIGN)); + new ItemStack(Material.SIGN, 1)); } /** From 3c5bc507a54bd56bf22801390ddae8ec948adbb8 Mon Sep 17 00:00:00 2001 From: Wizjany Date: Fri, 3 Jun 2011 18:05:28 -0400 Subject: [PATCH 4/4] Added trap doors to USE flag --- .../com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java index 8cc48542..64d15949 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlayerListener.java @@ -135,6 +135,7 @@ public void handleBlockLeftClick(PlayerInteractEvent event) { if (type == Material.STONE_BUTTON || type == Material.LEVER || type == Material.WOODEN_DOOR + || type == Material.TRAP_DOOR || type == Material.NOTE_BLOCK) { if (!plugin.getGlobalRegionManager().hasBypass(player, world) && !set.allows(DefaultFlag.USE) @@ -258,6 +259,7 @@ public void handleBlockRightClick(PlayerInteractEvent event) { || type == Material.DIODE_BLOCK_OFF || type == Material.DIODE_BLOCK_ON || type == Material.WOODEN_DOOR + || type == Material.TRAP_DOOR || type == Material.WORKBENCH) { if (!plugin.getGlobalRegionManager().hasBypass(player, world) && !set.allows(DefaultFlag.USE)