From fabd88dc2585bf6798658f34a7ee122225316fe8 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 6 Oct 2012 16:49:40 +0200 Subject: Less locks please --- .../protect/EssentialsProtectBlockListener.java | 99 +++++++++------------- 1 file changed, 38 insertions(+), 61 deletions(-) (limited to 'EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java') diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java index 6649469b9..b77e49177 100644 --- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java +++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java @@ -16,48 +16,40 @@ public class EssentialsProtectBlockListener implements Listener public EssentialsProtectBlockListener(final IProtect parent) { this.prot = parent; - } + } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockIgnite(BlockIgniteEvent event) { final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try + final Block block = event.getBlock(); + if (event.getBlock().getType() == Material.OBSIDIAN + || event.getBlock().getRelative(BlockFace.DOWN).getType() == Material.OBSIDIAN) { - final Block block = event.getBlock(); - if (event.getBlock().getType() == Material.OBSIDIAN - || event.getBlock().getRelative(BlockFace.DOWN).getType() == Material.OBSIDIAN) - { - event.setCancelled(settings.getData().getPrevent().isPortalCreation()); - return; - } + event.setCancelled(settings.getData().getPrevent().isPortalCreation()); + return; + } - if (event.getCause().equals(BlockIgniteEvent.IgniteCause.SPREAD)) - { - event.setCancelled(settings.getData().getPrevent().isFirespread()); - return; - } + if (event.getCause().equals(BlockIgniteEvent.IgniteCause.SPREAD)) + { + event.setCancelled(settings.getData().getPrevent().isFirespread()); + return; + } - if (event.getCause().equals(BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL) && event.getPlayer() != null) - { - event.setCancelled(Permissions.USEFLINTSTEEL.isAuthorized(event.getPlayer())); - return; - } + if (event.getCause().equals(BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL) && event.getPlayer() != null) + { + event.setCancelled(Permissions.USEFLINTSTEEL.isAuthorized(event.getPlayer())); + return; + } - if (event.getCause().equals(BlockIgniteEvent.IgniteCause.LAVA)) - { - event.setCancelled(settings.getData().getPrevent().isLavaFirespread()); - return; - } - if (event.getCause().equals(BlockIgniteEvent.IgniteCause.LIGHTNING)) - { - event.setCancelled(settings.getData().getPrevent().isLightningFirespread()); - } + if (event.getCause().equals(BlockIgniteEvent.IgniteCause.LAVA)) + { + event.setCancelled(settings.getData().getPrevent().isLavaFirespread()); + return; } - finally + if (event.getCause().equals(BlockIgniteEvent.IgniteCause.LIGHTNING)) { - settings.unlock(); + event.setCancelled(settings.getData().getPrevent().isLightningFirespread()); } } @@ -65,47 +57,32 @@ public class EssentialsProtectBlockListener implements Listener public void onBlockFromTo(final BlockFromToEvent event) { final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try + final Block block = event.getBlock(); + if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER) { - final Block block = event.getBlock(); - if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER) - { - event.setCancelled(settings.getData().getPrevent().isWaterFlow()); - return; - } - - if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) - { - event.setCancelled(settings.getData().getPrevent().isLavaFlow()); - } - // TODO: Test if this still works - /* - * if (block.getType() == Material.AIR) { - * event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_water_bucket_flow)); return; } - */ + event.setCancelled(settings.getData().getPrevent().isWaterFlow()); + return; } - finally + + if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) { - settings.unlock(); + event.setCancelled(settings.getData().getPrevent().isLavaFlow()); } + // TODO: Test if this still works + /* + * if (block.getType() == Material.AIR) { + * event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_water_bucket_flow)); return; } + */ } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockBurn(final BlockBurnEvent event) { final ProtectHolder settings = prot.getSettings(); - settings.acquireReadLock(); - try - { - if (settings.getData().getPrevent().isFirespread()) - { - event.setCancelled(true); - } - } - finally + + if (settings.getData().getPrevent().isFirespread()) { - settings.unlock(); + event.setCancelled(true); } } } \ No newline at end of file -- cgit v1.2.3