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.event.EventHandler; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class UseRegion extends AppliedRegion { public UseRegion(RegionModule region, FilterModule filter, String message) { super(region, filter, message); } @EventHandler public void onPlayerInteract(PlayerInteractEvent event) { if (event.getClickedBlock() == null || (event.getItem() != null && event.getItem().getType().isBlock())) return; if (region.contains(new BlockRegion(null, event.getClickedBlock().getLocation().toVector())) && (event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_AIR) && filter.evaluate(event.getPlayer(), event.getClickedBlock(), event).equals(FilterState.DENY)) { event.setCancelled(true); ChatUtils.sendWarningMessage(event.getPlayer(), message); } } }