From a60573a8ace0832217545c71ab6c318278081ec8 Mon Sep 17 00:00:00 2001 From: Iaccidentally Date: Tue, 16 Apr 2013 18:06:27 -0400 Subject: [3.0] Port dispenser blacklist --- Essentials/src/net/ess3/settings/antibuild/BlackList.java | 10 ++++++++++ .../src/net/ess3/antibuild/EssentialsAntiBuildListener.java | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/Essentials/src/net/ess3/settings/antibuild/BlackList.java b/Essentials/src/net/ess3/settings/antibuild/BlackList.java index 9475dba13..9eb435aa6 100644 --- a/Essentials/src/net/ess3/settings/antibuild/BlackList.java +++ b/Essentials/src/net/ess3/settings/antibuild/BlackList.java @@ -34,6 +34,11 @@ public class BlackList implements StorageObject @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private Set piston = new HashSet(); + @Comment("Which blocks should not be dispensed by dispensers") + @ListType(Material.class) + @Getter(AccessLevel.NONE) + @Setter(AccessLevel.NONE) + private Set dispenser = new HashSet(); public void setupDefaults() { @@ -63,4 +68,9 @@ public class BlackList implements StorageObject { return piston != null && piston.contains(mat); } + + public boolean getDispenser(Material mat) + { + return dispenser != null && dispenser.contains(mat); + } } diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java index ef7d1c33d..aada4d1af 100644 --- a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java @@ -13,6 +13,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockDispenseEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -270,4 +271,14 @@ public class EssentialsAntiBuildListener implements Listener } } } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockDispense(final BlockDispenseEvent event) + { + final Material mat = event.getItem().getType(); + if (antib.getSettings().getData().getBlacklist().getDispenser(mat)) + { + event.setCancelled(true); + } + } } -- cgit v1.2.3