Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.kitecraft.tyrotoxism.propertycontrol.listeners;
- import net.kitecraft.tyrotoxism.propertycontrol.PropertyControl;
- import net.kitecraft.tyrotoxism.propertycontrol.Setting;
- import net.kitecraft.tyrotoxism.propertycontrol.property.Creation;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.block.BlockBreakEvent;
- import org.bukkit.event.block.BlockIgniteEvent;
- import org.bukkit.event.block.BlockPlaceEvent;
- import org.bukkit.event.painting.PaintingBreakByEntityEvent;
- import org.bukkit.event.painting.PaintingBreakEvent;
- import org.bukkit.event.painting.PaintingPlaceEvent;
- import org.bukkit.event.player.PlayerBucketEmptyEvent;
- import org.bukkit.event.player.PlayerBucketFillEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- public final class CreationListener implements Listener {
- private PropertyControl plugin;
- private boolean setTop;
- private boolean setFirst;
- public CreationListener(final PropertyControl plugin) {
- this.plugin = plugin;
- this.setTop = true;
- this.setFirst = true;
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onBlockPlace(final BlockPlaceEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onBlockBreak(final BlockBreakEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onBlockIgnite(final BlockIgniteEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onPaintingBreak(final PaintingBreakEvent event) {
- if (event.isCancelled() || !(event instanceof PaintingBreakByEntityEvent)) { return; }
- Entity entity = ((PaintingBreakByEntityEvent) event).getRemover();
- if (entity instanceof Player && check((Player) entity)) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onPaintingPlace(final PaintingPlaceEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onPlayerBucketFill(final PlayerBucketFillEvent event) {
- if (event.isCancelled()) { return; } else if (check(event.getPlayer())) { event.setCancelled(true); }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public final void onPlayerInteract(final PlayerInteractEvent event) {
- if (!event.getPlayer().hasPermission("propertycontrol.create") || !check(event.getPlayer())) { return; }
- if (!(this.plugin.getSetting(null, event.getPlayer().getWorld().getName()) == null || this.plugin.getSetting(null, event.getPlayer().getWorld().getName()).getValue().equalsIgnoreCase("enable"))) { return; }
- if (this.plugin.getCreation(event.getPlayer()) == null) { this.plugin.getCreations().add(new Creation(this.plugin, this.plugin.getProperties().get(this.plugin.getProperties().size()-1).getID()+1, event.getPlayer())); }
- final Creation creation = this.plugin.getCreation(event.getPlayer());
- final Action action = event.getAction();
- final Location click = event.getClickedBlock().getLocation();
- if (action.equals(Action.RIGHT_CLICK_AIR)) {
- creation.remove();
- this.setTop = true;
- this.setFirst = true;
- event.getPlayer().sendMessage("§eProperty creation has been reset.");
- } else if (action.equals(Action.RIGHT_CLICK_BLOCK)) {
- final boolean first = this.setFirst || creation.getPoint(true) == null;
- creation.setPoint(click, first);
- event.getPlayer().sendMessage("§ePoint "+((first)?1:2)+" set to §3"+click.getBlockX()+"§e, §3"+click.getBlockZ()+"§e.");
- this.setFirst = !this.setFirst;
- } else if (action.equals(Action.LEFT_CLICK_BLOCK)) {
- final boolean top = (this.setTop && click.getBlockY() > creation.getHeight(false)) || click.getBlockY() > creation.getHeight(true);
- creation.setHeight(click.getBlockY(), top);
- event.getPlayer().sendMessage("§e"+((top)?"Top":"Bottom")+" set to §3"+click.getBlockY()+"§e.");
- this.setTop = !top;
- }
- }
- private final boolean check(final Player player) {
- final Setting tool = this.plugin.getSetting(player.getName(), "tool");
- if (player.hasPermission("propertycontrol.create") && player.getItemInHand().getType().equals((tool != null)?Material.getMaterial(tool.getValue()):Material.WOOD_SPADE)) { return true; }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement