package me.Qball.Wild.Listeners; import me.Qball.Wild.Wild; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; 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.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; import java.util.Collections; import java.util.UUID; public class BlockClickEvent implements Listener { private Wild wild; public BlockClickEvent(Wild wild) { this.wild = wild; } @EventHandler(priority = EventPriority.HIGHEST) public void onBlockClick(PlayerInteractEvent e) { String[] tmp = Bukkit.getVersion().split("MC: "); String version = tmp[tmp.length - 1].substring(0, 3); if (e.getItem() == null) return; if (!e.getItem().hasItemMeta()) return; if (e.getAction().equals(Action.LEFT_CLICK_BLOCK) && e.getItem().getItemMeta().hasLore()) { if (e.getItem().getItemMeta().getLore().equals(Collections.singletonList("Right/left click on blocks to make a region")) && !checkFirstMap(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toVector())) { e.setCancelled(true); wild.firstCorner.put(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toVector()); e.getPlayer().sendMessage(ChatColor.GREEN + "First corner set"); } } else if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { ItemStack stack = new ItemStack(Material.STICK); if (version.equals("1.9") || version.equals("1.1")) { if (e.getPlayer().getInventory().getItemInMainHand() != null) stack = e.getPlayer().getInventory().getItemInMainHand(); else return; } else { //noinspection deprecation if (e.getPlayer().getItemInHand() != null) //noinspection deprecation stack = e.getPlayer().getItemInHand(); else return; } if (!stack.hasItemMeta()) return; if (!stack.getItemMeta().hasLore()) return; if (!stack.getItemMeta().getLore().equals(Collections.singletonList("Right/left click on blocks to make a region"))) return; if (checkSecondMap(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toVector())) return; e.setCancelled(true); wild.secondCorner.put(e.getPlayer().getUniqueId(), e.getClickedBlock().getLocation().toVector()); e.getPlayer().sendMessage(ChatColor.GREEN + "Second corner set"); } } private boolean checkFirstMap(UUID id, Vector vec) { if (wild.firstCorner.containsKey(id)) { if (wild.firstCorner.get(id).equals(vec)) return true; } else return false; return false; } private boolean checkSecondMap(UUID id, Vector vec) { if (wild.secondCorner.containsKey(id)) { if (wild.secondCorner.get(id).equals(vec)) return true; } else return false; return false; } }