summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java17
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignProtection.java8
3 files changed, 30 insertions, 2 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
index a58a1e70d..1bd1d6184 100644
--- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
+++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
@@ -192,8 +192,13 @@ public class EssentialsSign
{
return true;
}
+
+ public boolean onBlockIgnite(final Block block, final IEssentials ess)
+ {
+ return true;
+ }
- public boolean onBlockPush(Block block, IEssentials ess)
+ public boolean onBlockPush(final Block block, final IEssentials ess)
{
return true;
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
index 6f07b67b2..eb6163d20 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
@@ -184,9 +184,24 @@ public class SignBlockListener extends BlockListener
return;
}
- if (protectSignsAndBlocks(event.getBlock(), event.getPlayer()))
+ final Block block = event.getBlock();
+ if (((block.getType() == Material.WALL_SIGN
+ || block.getType() == Material.SIGN_POST)
+ && EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
+ || EssentialsSign.checkIfBlockBreaksSigns(block))
{
event.setCancelled(true);
+ return;
+ }
+ for (Signs signs : Signs.values())
+ {
+ final EssentialsSign sign = signs.getSign();
+ if (sign.getBlocks().contains(block.getType())
+ && !sign.onBlockIgnite(block, ess))
+ {
+ event.setCancelled(true);
+ return;
+ }
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java
index c595d9b03..f9957e646 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java
@@ -313,6 +313,14 @@ public class SignProtection extends EssentialsSign
return state == SignProtectionState.NOSIGN;
}
+
+ @Override
+ public boolean onBlockIgnite(final Block block, final IEssentials ess)
+ {
+ final SignProtectionState state = isBlockProtected(block, null, null, false);
+
+ return state == SignProtectionState.NOSIGN;
+ }
@Override
public boolean onBlockPush(final Block block, final IEssentials ess)