1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-25 13:49:12 +02:00

[3.0] Port dispenser blacklist

This commit is contained in:
Iaccidentally
2013-04-16 18:06:27 -04:00
parent 45d19e18f3
commit a60573a8ac
2 changed files with 21 additions and 0 deletions

View File

@@ -34,6 +34,11 @@ public class BlackList implements StorageObject
@Getter(AccessLevel.NONE) @Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE) @Setter(AccessLevel.NONE)
private Set<Material> piston = new HashSet<Material>(); 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() public void setupDefaults()
{ {
@@ -63,4 +68,9 @@ public class BlackList implements StorageObject
{ {
return piston != null && piston.contains(mat); return piston != null && piston.contains(mat);
} }
public boolean getDispenser(Material mat)
{
return dispenser != null && dispenser.contains(mat);
}
} }

View File

@@ -13,6 +13,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDispenseEvent;
import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPistonRetractEvent;
import org.bukkit.event.block.BlockPlaceEvent; 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);
}
}
} }