summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIaccidentally <coryhuckaby@gmail.com>2013-04-16 18:06:27 -0400
committerIaccidentally <coryhuckaby@gmail.com>2013-04-16 18:06:27 -0400
commita60573a8ace0832217545c71ab6c318278081ec8 (patch)
tree3606ac00430fffcf1b283da97a3876f2d132ad7e
parent45d19e18f3577df0b939ff6e0f9e4d088b6f166c (diff)
downloadEssentials-a60573a8ace0832217545c71ab6c318278081ec8.tar
Essentials-a60573a8ace0832217545c71ab6c318278081ec8.tar.gz
Essentials-a60573a8ace0832217545c71ab6c318278081ec8.tar.lz
Essentials-a60573a8ace0832217545c71ab6c318278081ec8.tar.xz
Essentials-a60573a8ace0832217545c71ab6c318278081ec8.zip
[3.0] Port dispenser blacklist
-rw-r--r--Essentials/src/net/ess3/settings/antibuild/BlackList.java10
-rw-r--r--EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java11
2 files changed, 21 insertions, 0 deletions
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<Material> piston = new HashSet<Material>();
+ @Comment("Which blocks should not be dispensed by dispensers")
+ @ListType(Material.class)
+ @Getter(AccessLevel.NONE)
+ @Setter(AccessLevel.NONE)
+ private Set<Material> dispenser = new HashSet<Material>();
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);
+ }
+ }
}