summaryrefslogtreecommitdiffstats
path: root/EssentialsProtect/src
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-10-06 16:49:40 +0200
committersnowleo <schneeleo@gmail.com>2012-10-06 16:49:40 +0200
commitfabd88dc2585bf6798658f34a7ee122225316fe8 (patch)
treecdda3fad01567f042d5afbaa189ac12ef94f2b7e /EssentialsProtect/src
parent463c4ff62db553fc980545665a332ef7bbecdcc6 (diff)
downloadEssentials-fabd88dc2585bf6798658f34a7ee122225316fe8.tar
Essentials-fabd88dc2585bf6798658f34a7ee122225316fe8.tar.gz
Essentials-fabd88dc2585bf6798658f34a7ee122225316fe8.tar.lz
Essentials-fabd88dc2585bf6798658f34a7ee122225316fe8.tar.xz
Essentials-fabd88dc2585bf6798658f34a7ee122225316fe8.zip
Less locks please
Diffstat (limited to 'EssentialsProtect/src')
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsProtectBlockListener.java99
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java288
-rw-r--r--EssentialsProtect/src/net/ess3/protect/EssentialsProtectWeatherListener.java49
3 files changed, 180 insertions, 256 deletions
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
diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java
index e6858483d..5bde19973 100644
--- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectEntityListener.java
@@ -23,183 +23,167 @@ public class EssentialsProtectEntityListener implements Listener
public void onEntityDamage(final EntityDamageEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
+ final Entity target = event.getEntity();
+
+ if (target instanceof Villager && settings.getData().getPrevent().isVillagerDeath())
{
- final Entity target = event.getEntity();
+ event.setCancelled(true);
+ return;
+ }
+
+ final Player user = target instanceof Player ? (Player)target : null;
+ if (target instanceof Player && event instanceof EntityDamageByBlockEvent)
+ {
+ final DamageCause cause = event.getCause();
- if (target instanceof Villager && settings.getData().getPrevent().isVillagerDeath())
+ if (cause == DamageCause.CONTACT
+ && (Permissions.PREVENTDAMAGE_CONTACT.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
event.setCancelled(true);
return;
}
-
- final Player user = target instanceof Player ? (Player)target : null;
- if (target instanceof Player && event instanceof EntityDamageByBlockEvent)
+ if (cause == DamageCause.LAVA
+ && (Permissions.PREVENTDAMAGE_LAVADAMAGE.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
- final DamageCause cause = event.getCause();
-
- if (cause == DamageCause.CONTACT
- && (Permissions.PREVENTDAMAGE_CONTACT.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
- if (cause == DamageCause.LAVA
- && (Permissions.PREVENTDAMAGE_LAVADAMAGE.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
- if (cause == DamageCause.BLOCK_EXPLOSION
- && (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
+ event.setCancelled(true);
+ return;
}
-
- if (target instanceof Player && event instanceof EntityDamageByEntityEvent)
+ if (cause == DamageCause.BLOCK_EXPLOSION
+ && (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
- final EntityDamageByEntityEvent edEvent = (EntityDamageByEntityEvent)event;
- final Entity eAttack = edEvent.getDamager();
- final Player attacker = eAttack instanceof Player ? (Player)eAttack : null;
-
- // PVP Settings
- if (target instanceof Player && eAttack instanceof Player
- && (!Permissions.PVP.isAuthorized(user) || !Permissions.PVP.isAuthorized(attacker)))
- {
- event.setCancelled(true);
- return;
- }
+ event.setCancelled(true);
+ return;
+ }
+ }
- //Creeper explode prevention
- if (eAttack instanceof Creeper && settings.getData().getPrevent().isCreeperExplosion()
- || (Permissions.PREVENTDAMAGE_CREEPER.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
+ if (target instanceof Player && event instanceof EntityDamageByEntityEvent)
+ {
+ final EntityDamageByEntityEvent edEvent = (EntityDamageByEntityEvent)event;
+ final Entity eAttack = edEvent.getDamager();
+ final Player attacker = eAttack instanceof Player ? (Player)eAttack : null;
- if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
- && (Permissions.PREVENTDAMAGE_FIREBALL.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
+ // PVP Settings
+ if (target instanceof Player && eAttack instanceof Player
+ && (!Permissions.PVP.isAuthorized(user) || !Permissions.PVP.isAuthorized(attacker)))
+ {
+ event.setCancelled(true);
+ return;
+ }
- if (eAttack instanceof TNTPrimed
- && (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
+ //Creeper explode prevention
+ if (eAttack instanceof Creeper && settings.getData().getPrevent().isCreeperExplosion()
+ || (Permissions.PREVENTDAMAGE_CREEPER.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
+ {
+ event.setCancelled(true);
+ return;
+ }
- if (edEvent.getDamager() instanceof Projectile
- && ((Permissions.PREVENTDAMAGE_PROJECTILES.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user))
- || (((Projectile)edEvent.getDamager()).getShooter() instanceof Player
- && (!Permissions.PVP.isAuthorized(user)
- || !Permissions.PVP.isAuthorized((Player)((Projectile)edEvent.getDamager()).getShooter())))))
- {
- event.setCancelled(true);
- return;
- }
+ if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
+ && (Permissions.PREVENTDAMAGE_FIREBALL.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
+ {
+ event.setCancelled(true);
+ return;
}
- final DamageCause cause = event.getCause();
- if (target instanceof Player)
+ if (eAttack instanceof TNTPrimed
+ && (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
- if (cause == DamageCause.FALL
- && (Permissions.PREVENTDAMAGE_FALL.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
+ event.setCancelled(true);
+ return;
+ }
- if (cause == DamageCause.SUFFOCATION
- && (Permissions.PREVENTDAMAGE_SUFFOCATION.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
- if ((cause == DamageCause.FIRE
- || cause == DamageCause.FIRE_TICK)
- && (Permissions.PREVENTDAMAGE_FIRE.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
- if (cause == DamageCause.DROWNING
- && (Permissions.PREVENTDAMAGE_DROWNING.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- return;
- }
- if (cause == DamageCause.LIGHTNING
- && (Permissions.PREVENTDAMAGE_LIGHTNING.isAuthorized(user)
- && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
- {
- event.setCancelled(true);
- }
+ if (edEvent.getDamager() instanceof Projectile
+ && ((Permissions.PREVENTDAMAGE_PROJECTILES.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user))
+ || (((Projectile)edEvent.getDamager()).getShooter() instanceof Player
+ && (!Permissions.PVP.isAuthorized(user)
+ || !Permissions.PVP.isAuthorized((Player)((Projectile)edEvent.getDamager()).getShooter())))))
+ {
+ event.setCancelled(true);
+ return;
}
}
- finally
- {
- settings.unlock();
- }
- }
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onEntityExplode(final EntityExplodeEvent event)
- {
- final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
+ final DamageCause cause = event.getCause();
+ if (target instanceof Player)
{
- final int maxHeight = settings.getData().getCreeperMaxHeight();
-
- if (event.getEntity() instanceof EnderDragon
- && settings.getData().getPrevent().isEnderdragonBlockdamage())
+ if (cause == DamageCause.FALL
+ && (Permissions.PREVENTDAMAGE_FALL.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
event.setCancelled(true);
return;
}
- else if (event.getEntity() instanceof Creeper
- && (settings.getData().getPrevent().isCreeperExplosion()
- || settings.getData().getPrevent().isCreeperBlockdamage()
- || (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
+
+ if (cause == DamageCause.SUFFOCATION
+ && (Permissions.PREVENTDAMAGE_SUFFOCATION.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
event.setCancelled(true);
- event.getLocation().getWorld().createExplosion(event.getLocation(), 0F);
return;
}
- else if (event.getEntity() instanceof TNTPrimed
- && settings.getData().getPrevent().isTntExplosion())
+ if ((cause == DamageCause.FIRE
+ || cause == DamageCause.FIRE_TICK)
+ && (Permissions.PREVENTDAMAGE_FIRE.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
event.setCancelled(true);
return;
}
- else if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
- && settings.getData().getPrevent().isFireballExplosion())
+ if (cause == DamageCause.DROWNING
+ && (Permissions.PREVENTDAMAGE_DROWNING.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
{
event.setCancelled(true);
return;
- }
+ }
+ if (cause == DamageCause.LIGHTNING
+ && (Permissions.PREVENTDAMAGE_LIGHTNING.isAuthorized(user)
+ && !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
+ {
+ event.setCancelled(true);
+ }
}
- finally
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
+ public void onEntityExplode(final EntityExplodeEvent event)
+ {
+ final ProtectHolder settings = prot.getSettings();
+ final int maxHeight = settings.getData().getCreeperMaxHeight();
+
+ if (event.getEntity() instanceof EnderDragon
+ && settings.getData().getPrevent().isEnderdragonBlockdamage())
+ {
+ event.setCancelled(true);
+ return;
+ }
+ else if (event.getEntity() instanceof Creeper
+ && (settings.getData().getPrevent().isCreeperExplosion()
+ || settings.getData().getPrevent().isCreeperBlockdamage()
+ || (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
+ {
+ event.setCancelled(true);
+ event.getLocation().getWorld().createExplosion(event.getLocation(), 0F);
+ return;
+ }
+ else if (event.getEntity() instanceof TNTPrimed
+ && settings.getData().getPrevent().isTntExplosion())
{
- settings.unlock();
+ event.setCancelled(true);
+ return;
+ }
+ else if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
+ && settings.getData().getPrevent().isFireballExplosion())
+ {
+ event.setCancelled(true);
+ return;
}
}
@@ -226,18 +210,10 @@ public class EssentialsProtectEntityListener implements Listener
public void onExplosionPrime(final ExplosionPrimeEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
+ if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
+ && settings.getData().getPrevent().isFireballFire())
{
- if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
- && settings.getData().getPrevent().isFireballFire())
- {
- event.setFire(false);
- }
- }
- finally
- {
- settings.unlock();
+ event.setFire(false);
}
}
@@ -245,17 +221,9 @@ public class EssentialsProtectEntityListener implements Listener
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
- {
- if (event.getEntityType() == EntityType.ENDERMAN && settings.getData().getPrevent().isEndermanPickup())
- {
- event.setCancelled(true);
- }
- }
- finally
+ if (event.getEntityType() == EntityType.ENDERMAN && settings.getData().getPrevent().isEndermanPickup())
{
- settings.unlock();
+ event.setCancelled(true);
}
}
}
diff --git a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectWeatherListener.java b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectWeatherListener.java
index 6f08bdd13..1f71944a0 100644
--- a/EssentialsProtect/src/net/ess3/protect/EssentialsProtectWeatherListener.java
+++ b/EssentialsProtect/src/net/ess3/protect/EssentialsProtectWeatherListener.java
@@ -21,19 +21,12 @@ public class EssentialsProtectWeatherListener implements Listener
public void onWeatherChange(final WeatherChangeEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
- {
- if (!event.isCancelled()
- && settings.getData().isDisableStorm()
- && event.toWeatherState())
- {
- event.setCancelled(true);
- }
- }
- finally
+
+ if (!event.isCancelled()
+ && settings.getData().isDisableStorm()
+ && event.toWeatherState())
{
- settings.unlock();
+ event.setCancelled(true);
}
}
@@ -41,18 +34,11 @@ public class EssentialsProtectWeatherListener implements Listener
public void onLightningStrike(final LightningStrikeEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
- {
- if (!event.isCancelled()
- && settings.getData().isDisableLighting())
- {
- event.setCancelled(true);
- }
- }
- finally
+
+ if (!event.isCancelled()
+ && settings.getData().isDisableLighting())
{
- settings.unlock();
+ event.setCancelled(true);
}
}
@@ -60,19 +46,12 @@ public class EssentialsProtectWeatherListener implements Listener
public void onThunderChange(final ThunderChangeEvent event)
{
final ProtectHolder settings = prot.getSettings();
- settings.acquireReadLock();
- try
- {
- if (!event.isCancelled()
- && settings.getData().isDisableThunder()
- && event.toThunderState())
- {
- event.setCancelled(true);
- }
- }
- finally
+
+ if (!event.isCancelled()
+ && settings.getData().isDisableThunder()
+ && event.toThunderState())
{
- settings.unlock();
+ event.setCancelled(true);
}
}
}