package in.twizmwaz.cardinal.module.modules.appliedRegion.type; import in.twizmwaz.cardinal.module.modules.appliedRegion.AppliedRegion; import in.twizmwaz.cardinal.module.modules.filter.FilterModule; import in.twizmwaz.cardinal.module.modules.filter.FilterState; import in.twizmwaz.cardinal.module.modules.regions.RegionModule; import in.twizmwaz.cardinal.module.modules.regions.type.BlockRegion; import in.twizmwaz.cardinal.util.ChatUtils; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; public class BlockPlaceAgainstRegion extends AppliedRegion { public BlockPlaceAgainstRegion(RegionModule region, FilterModule filter, String message) { super(region, filter, message); } @EventHandler public void onBlockPlace(BlockPlaceEvent event) { if (!event.isCancelled() && region.contains(new BlockRegion(null, event.getBlock().getLocation().toVector())) && filter.evaluate(event.getPlayer(), event.getBlockPlaced(), event).equals(FilterState.DENY)) { event.setCancelled(true); event.getPlayer().closeInventory(); ChatUtils.sendWarningMessage(event.getPlayer(), message); } } @EventHandler public void onBucketEmpty(PlayerBucketEmptyEvent event) { Material newMaterial = (event.getBucket().equals(Material.WATER_BUCKET) ? Material.WATER : (event.getBucket().equals(Material.LAVA_BUCKET) ? Material.LAVA : Material.AIR)); if (!event.isCancelled() && region.contains(new BlockRegion(null, event.getBlockClicked().getRelative(event.getBlockFace()).getLocation().toVector())) && filter.evaluate(event.getPlayer(), newMaterial, event).equals(FilterState.DENY)) { event.setCancelled(true); ChatUtils.sendWarningMessage(event.getPlayer(), message); } } }