summaryrefslogtreecommitdiffstats
path: root/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java')
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java324
1 files changed, 4 insertions, 320 deletions
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
index cca7cbef9..246d9a583 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
@@ -1,10 +1,6 @@
package com.earth2me.essentials.protect;
import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.User;
-import com.earth2me.essentials.protect.data.IProtectedBlock;
-import java.util.ArrayList;
-import java.util.List;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@@ -24,68 +20,10 @@ public class EssentialsProtectBlockListener implements Listener
this.prot = parent;
this.ess = prot.getEssentialsConnect().getEssentials();
}
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPlace(final BlockPlaceEvent event)
- {
- final User user = ess.getUser(event.getPlayer());
- final Block blockPlaced = event.getBlockPlaced();
- final Block below = blockPlaced.getRelative(BlockFace.DOWN);
- if ((below.getType() == Material.RAILS || below.getType() == Material.POWERED_RAIL || below.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.prevent_block_on_rail)
- && isProtected(below, user))
- {
- event.setCancelled(true);
- return;
- }
-
- final List<Block> protect = new ArrayList<Block>();
- if ((blockPlaced.getType() == Material.RAILS || blockPlaced.getType() == Material.POWERED_RAIL || blockPlaced.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails)
- && user.isAuthorized("essentials.protect"))
- {
- protect.add(blockPlaced);
- if (prot.getSettingBool(ProtectConfig.protect_below_rails)
- && !isProtected(blockPlaced.getRelative(BlockFace.DOWN), user))
- {
- protect.add(blockPlaced.getRelative(BlockFace.DOWN));
- }
- }
- if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN)
- && prot.getSettingBool(ProtectConfig.protect_signs)
- && user.isAuthorized("essentials.protect"))
- {
- protect.add(blockPlaced);
- if (prot.getSettingBool(ProtectConfig.protect_against_signs)
- && event.getBlockAgainst().getType() != Material.SIGN_POST
- && event.getBlockAgainst().getType() != Material.WALL_SIGN
- && !isProtected(event.getBlockAgainst(), user))
- {
- protect.add(event.getBlockAgainst());
- }
- }
- for (Block block : protect)
- {
- prot.getStorage().protectBlock(block, user.getName());
- }
- }
-
+
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockIgnite(BlockIgniteEvent event)
{
- final Block block = event.getBlock();
- if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
if (event.getBlock().getType() == Material.OBSIDIAN
|| event.getBlock().getRelative(BlockFace.DOWN).getType() == Material.OBSIDIAN)
{
@@ -119,21 +57,8 @@ public class EssentialsProtectBlockListener implements Listener
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockFromTo(final BlockFromToEvent event)
{
- final Block toBlock = event.getToBlock();
- if ((toBlock.getType() == Material.RAILS || toBlock.getType() == Material.POWERED_RAIL || toBlock.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((toBlock.getType() == Material.WALL_SIGN || toBlock.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
-
final Block block = event.getBlock();
+
if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER)
{
event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_water_flow));
@@ -154,252 +79,11 @@ public class EssentialsProtectBlockListener implements Listener
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBurn(final BlockBurnEvent event)
- {
- final Block block = event.getBlock();
- if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL) && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
+ {
if (prot.getSettingBool(ProtectConfig.prevent_fire_spread))
{
event.setCancelled(true);
}
}
- private final static BlockFace[] faces = new BlockFace[]
- {
- BlockFace.NORTH,
- BlockFace.EAST,
- BlockFace.SOUTH,
- BlockFace.WEST,
- BlockFace.UP,
- BlockFace.DOWN,
- BlockFace.SELF
- };
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockBreak(final BlockBreakEvent event)
- {
- final User user = ess.getUser(event.getPlayer());
- final Block block = event.getBlock();
- final Material type = block.getType();
- final IProtectedBlock storage = prot.getStorage();
-
- if (user.isAuthorized("essentials.protect.admin"))
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- storage.unprotectBlock(block);
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST)
- {
- final Block below = block.getRelative(BlockFace.DOWN);
- storage.unprotectBlock(below);
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
-
- final boolean isProtected = isProtected(block, user);
- if (isProtected)
- {
- event.setCancelled(true);
- }
- else
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- storage.unprotectBlock(block);
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST)
- {
- final Block below = block.getRelative(BlockFace.DOWN);
- storage.unprotectBlock(below);
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPistonExtend(BlockPistonExtendEvent event)
- {
- for (Block block : event.getBlocks())
- {
- if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
- || block.getType() == Material.RAILS
- || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL
- || block.getType() == Material.POWERED_RAIL
- || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL
- || block.getType() == Material.DETECTOR_RAIL)
- && 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;
- }
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPistonRetract(BlockPistonRetractEvent event)
- {
- if (!event.isSticky())
- {
- return;
- }
- final Block block = event.getRetractLocation().getBlock();
- if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
- || block.getType() == Material.RAILS
- || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL
- || block.getType() == Material.POWERED_RAIL
- || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL
- || block.getType() == Material.DETECTOR_RAIL)
- && 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;
- }
- }
- }
- }
-
- private boolean isProtected(final Block block, final User user)
- {
- final Material type = block.getType();
- if (prot.getSettingBool(ProtectConfig.protect_signs))
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- if (prot.getSettingBool(ProtectConfig.protect_against_signs))
- {
- final Block up = block.getRelative(BlockFace.UP);
- if (up != null && up.getType() == Material.SIGN_POST)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- final BlockFace[] directions = new BlockFace[]
- {
- BlockFace.NORTH,
- BlockFace.EAST,
- BlockFace.SOUTH,
- BlockFace.WEST
- };
- for (BlockFace blockFace : directions)
- {
- final Block signblock = block.getRelative(blockFace);
- if (signblock.getType() == Material.WALL_SIGN)
- {
- final org.bukkit.material.Sign signMat = (org.bukkit.material.Sign)signblock.getState().getData();
- if (signMat != null && signMat.getFacing() == blockFace)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- }
- }
- }
- }
- if (prot.getSettingBool(ProtectConfig.protect_rails))
- {
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- if (prot.getSettingBool(ProtectConfig.protect_below_rails))
- {
- final Block up = block.getRelative(BlockFace.UP);
- if (up != null && (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL))
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- }
- }
- return false;
- }
}
+ \ No newline at end of file