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.ChatUtil;
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();
ChatUtil.sendWarningMessage(event.getPlayer(), message);
}
}
@EventHandler
public void onBucketEmpty(PlayerBucketEmptyEvent event) {
Material material = (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(), material, event).equals(FilterState.DENY)) {
event.setCancelled(true);
ChatUtil.sendWarningMessage(event.getPlayer(), message);
}
}
}