From f6e2db1eda6ff101ae14c4c3f98d9dd37041c622 Mon Sep 17 00:00:00 2001 From: Iaccidentally Date: Tue, 16 Apr 2013 17:01:01 -0400 Subject: [PATCH] [Feature] Add a blacklist for what dispensers can dispense to antibuild --- Essentials/src/config.yml | 3 +++ .../earth2me/essentials/antibuild/AntiBuildConfig.java | 3 ++- .../antibuild/EssentialsAntiBuildListener.java | 10 ++++++++++ EssentialsAntiBuild/src/plugin.yml | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index fd698ba9b..e5b2f330a 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -659,6 +659,9 @@ protect: # Which blocks should not be pushed by pistons? piston: + + # Which blocks should not be dispensed by dispensers + dispenser: ############################################################ # +------------------------------------------------------+ # diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/AntiBuildConfig.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/AntiBuildConfig.java index 1aa33d02a..f0cdfcef4 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/AntiBuildConfig.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/AntiBuildConfig.java @@ -11,7 +11,8 @@ public enum AntiBuildConfig blacklist_placement("protect.blacklist.placement"), blacklist_usage("protect.blacklist.usage"), blacklist_break("protect.blacklist.break"), - blacklist_piston("protect.blacklist.piston"); + blacklist_piston("protect.blacklist.piston"), + blacklist_dispenser("protect.blacklist.dispenser"); private final String configName; private final String defValueString; private final boolean defValueBoolean; diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java index 67995c955..e457f72f2 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java @@ -313,4 +313,14 @@ public class EssentialsAntiBuildListener implements Listener } } } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockDispense(final BlockDispenseEvent event) + { + final ItemStack item = event.getItem(); + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_dispenser, item.getTypeId())) + { + event.setCancelled(true); + } + } } diff --git a/EssentialsAntiBuild/src/plugin.yml b/EssentialsAntiBuild/src/plugin.yml index 8d7ffbc14..cfe6e6367 100644 --- a/EssentialsAntiBuild/src/plugin.yml +++ b/EssentialsAntiBuild/src/plugin.yml @@ -5,5 +5,5 @@ main: com.earth2me.essentials.antibuild.EssentialsAntiBuild version: TeamCity website: http://tiny.cc/EssentialsCommands description: Provides build protection. -authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits] +authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, Iaccidentally] depend: [Essentials]