From f3ec873ac24adc2676ec882cdd04cd58931cd289 Mon Sep 17 00:00:00 2001 From: Wizjany Date: Mon, 16 May 2011 16:27:17 -0400 Subject: [PATCH 1/2] Fixed some derpy fire handling. --- .../bukkit/WorldGuardBlockListener.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java index 6f0dcf66..f9aaa6a4 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardBlockListener.java @@ -293,7 +293,7 @@ public void onBlockIgnite(BlockIgniteEvent event) { return; } } - + if (wcfg.useRegions) { Vector pt = toVector(block); Player player = event.getPlayer(); @@ -316,7 +316,8 @@ public void onBlockIgnite(BlockIgniteEvent event) { } } - if (wcfg.highFreqFlags && isFireSpread && set.allows(DefaultFlag.FIRE_SPREAD)) { + if (wcfg.highFreqFlags && isFireSpread + && !set.allows(DefaultFlag.FIRE_SPREAD)) { event.setCancelled(true); return; } @@ -363,6 +364,19 @@ public void onBlockBurn(BlockBurnEvent event) { return; } } + + if (wcfg.useRegions) { + Block block = event.getBlock(); + Vector pt = toVector(block); + RegionManager mgr = plugin.getGlobalRegionManager().get(block.getWorld()); + ApplicableRegionSet set = mgr.getApplicableRegions(pt); + + if (!set.allows(DefaultFlag.FIRE_SPREAD)) { + event.setCancelled(true); + return; + } + + } } /** From 98426f6dccbbc2787917825c0d4d2e0d491842fd Mon Sep 17 00:00:00 2001 From: Wizjany Date: Mon, 16 May 2011 19:43:04 -0400 Subject: [PATCH 2/2] Added config for op permissions --- .../com/sk89q/worldguard/bukkit/WorldConfiguration.java | 3 +++ .../com/sk89q/worldguard/bukkit/WorldGuardPlugin.java | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java index 199c9f1a..d5e97ced 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldConfiguration.java @@ -57,6 +57,7 @@ public class WorldConfiguration { private SignChestProtection chestProtection = new SignChestProtection(); /* Configuration data start */ + public boolean opPermissions; public boolean fireSpreadDisableToggle; public boolean enforceOneSession; public boolean itemDurability; @@ -147,6 +148,8 @@ private void loadConfiguration() { Configuration config = new Configuration(this.configFile); config.load(); + opPermissions = config.getBoolean("op-permissions", true); + enforceOneSession = config.getBoolean("protection.enforce-single-session", true); itemDurability = config.getBoolean("protection.item-durability", true); removeInfiniteStacks = config.getBoolean("protection.remove-infinite-stacks", false); diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java index 2ddf0128..e8c28174 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java @@ -276,7 +276,14 @@ public String toName(CommandSender sender) { */ public boolean hasPermission(CommandSender sender, String perm) { if (sender.isOp()) { - return true; + if (sender instanceof Player) { + if (this.getGlobalConfiguration().get(((Player) sender). + getWorld()).opPermissions) { + return true; + } + } else { + return true; + } } // Invoke the permissions resolver