package com.luronix.lobby.listener; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import com.luronix.lobby.item.SpecialItem; public class SpecialItemListener implements Listener { @EventHandler( priority = EventPriority.LOW, ignoreCancelled = true) public void onPlayerInteract(PlayerInteractEvent event) { // Check if player has item in hand if (event.getPlayer().getItemInHand() != null) { SpecialItem item = SpecialItem.getSpecialItem(event.getPlayer().getItemInHand()); // Check if that item is special if (item != null) { switch (event.getAction()) { case LEFT_CLICK_AIR: { event.setCancelled(item.onLeftClickAir(event.getPlayer())); break; } case LEFT_CLICK_BLOCK: { event.setCancelled(item.onLeftClickBlock(event.getPlayer(), event.getClickedBlock())); break; } case RIGHT_CLICK_AIR: { event.setCancelled(item.onRightClickAir(event.getPlayer())); break; } case RIGHT_CLICK_BLOCK: { event.setCancelled(item.onRightClickBlock(event.getPlayer(), event.getClickedBlock())); break; } default: break; } } } } @EventHandler( priority = EventPriority.LOW, ignoreCancelled = true) public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { // Check if damaging entity is a player if (event.getDamager() instanceof Player) { Player player = (Player) event.getDamager(); // Check if player has item in hand if (player.getItemInHand() != null) { SpecialItem item = SpecialItem.getSpecialItem(player.getItemInHand()); // Check if that item is special if (item != null) { event.setCancelled(item.onLeftClickEntity(player, event.getEntity())); } } } } @EventHandler( priority = EventPriority.LOW, ignoreCancelled = true) public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { // Check if player has item in hand if (event.getPlayer().getItemInHand() != null) { SpecialItem item = SpecialItem.getSpecialItem(event.getPlayer().getItemInHand()); // Check if that item is special if (item != null) { event.setCancelled(item.onRightClickEntity(event.getPlayer(), event.getRightClicked())); } } } }