From 0f1eb9b4f910b4f61f4c89fbad14b6485c372756 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 14 Dec 2011 16:04:15 +0100 Subject: Moved signs code to a new module --- .../essentials/signs/SignEntityListener.java | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java new file mode 100644 index 000000000..12a2fc2f8 --- /dev/null +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -0,0 +1,73 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.api.IEssentials; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.entity.EndermanPickupEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityListener; + + +public class SignEntityListener extends EntityListener +{ + private final transient IEssentials ess; + + public SignEntityListener(final IEssentials ess) + { + this.ess = ess; + } + + @Override + public void onEntityExplode(final EntityExplodeEvent event) + { + for (Block block : event.blockList()) + { + 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())) + { + event.setCancelled(!sign.onBlockExplode(block, ess)); + return; + } + } + } + } + + @Override + public void onEndermanPickup(EndermanPickupEvent event) + { + if (event.isCancelled()) + { + return; + } + + 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.onBlockBreak(block, ess)) + { + event.setCancelled(true); + return; + } + } + } +} -- cgit v1.2.3 From 32840e68f361c61ea42b77d33eb67d6164c136a4 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 21 Feb 2012 19:17:22 +0100 Subject: Sign settings --- .../src/com/earth2me/essentials/signs/SignEntityListener.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java index 1b540c807..96d5e7222 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -13,10 +13,12 @@ import org.bukkit.event.entity.EntityExplodeEvent; public class SignEntityListener implements Listener { private final transient IEssentials ess; + private final transient ISignsPlugin plugin; - public SignEntityListener(final IEssentials ess) + public SignEntityListener(final IEssentials ess, final ISignsPlugin plugin) { this.ess = ess; + this.plugin = plugin; } @EventHandler(priority = EventPriority.LOW) @@ -32,7 +34,7 @@ public class SignEntityListener implements Listener event.setCancelled(true); return; } - for (EssentialsSign sign : ess.getSettings().enabledSigns()) + for (EssentialsSign sign : plugin.getSettings().getEnabledSigns()) { if (sign.getBlocks().contains(block.getType())) { @@ -60,7 +62,7 @@ public class SignEntityListener implements Listener event.setCancelled(true); return; } - for (EssentialsSign sign : ess.getSettings().enabledSigns()) + for (EssentialsSign sign : plugin.getSettings().getEnabledSigns()) { if (sign.getBlocks().contains(block.getType()) && !sign.onBlockBreak(block, ess)) -- cgit v1.2.3