1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-07-29 02:40:34 +02:00

Protect Rails and other signs from pistons

This commit is contained in:
snowleo
2011-07-18 01:39:41 +02:00
parent d2e1b2435f
commit f5f04b032a

View File

@@ -336,6 +336,38 @@ public class EssentialsProtectBlockListener extends BlockListener
event.setCancelled(true);
return;
}
if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
|| block.getType() == Material.RAILS)
&& prot.getSettingBool(ProtectConfig.protect_rails))
{
event.setCancelled(true);
return;
}
if (prot.getSettingBool(ProtectConfig.protect_signs))
{
for (BlockFace blockFace : faces)
{
if (blockFace == BlockFace.DOWN)
{
continue;
}
final Block sign = block.getRelative(blockFace);
if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF)
&& sign.getType() == Material.SIGN_POST)
{
event.setCancelled(true);
return;
}
if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST
|| blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST
|| blockFace == BlockFace.SELF)
&& sign.getType() == Material.WALL_SIGN)
{
event.setCancelled(true);
return;
}
}
}
}
}
@@ -346,10 +378,43 @@ public class EssentialsProtectBlockListener extends BlockListener
{
return;
}
if (prot.checkProtectionItems(ProtectConfig.blacklist_piston, event.getRetractLocation().getBlock().getTypeId()))
final Block block = event.getRetractLocation().getBlock();
if (prot.checkProtectionItems(ProtectConfig.blacklist_piston, block.getTypeId()))
{
event.setCancelled(true);
return;
}
if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
|| block.getType() == Material.RAILS)
&& prot.getSettingBool(ProtectConfig.protect_rails))
{
event.setCancelled(true);
return;
}
if (prot.getSettingBool(ProtectConfig.protect_signs))
{
for (BlockFace blockFace : faces)
{
if (blockFace == BlockFace.DOWN)
{
continue;
}
final Block sign = block.getRelative(blockFace);
if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF)
&& sign.getType() == Material.SIGN_POST)
{
event.setCancelled(true);
return;
}
if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST
|| blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST
|| blockFace == BlockFace.SELF)
&& sign.getType() == Material.WALL_SIGN)
{
event.setCancelled(true);
return;
}
}
}
}
}