@EventHandler(ignoreCancelled = true) public void onInventoryPickupItem (InventoryPickupItemEvent event) { //prevent hoppers from picking-up items dropped by players on death InventoryHolder holder = event.getInventory().getHolder(); if(holder instanceof HopperMinecart || holder instanceof Hopper) { Item item = event.getItem(); List<MetadataValue> data = item.getMetadata("GP_ITEMOWNER"); //if this is marked as belonging to a player if(data != null && data.size() > 0) { //don't allow the pickup event.setCancelled(true); } } } }
@EventHandler public void onMinecartPickup(InventoryPickupItemEvent e) { if (e.getItem().hasMetadata("no_pickup")) e.setCancelled(true); else if (!e.getItem().hasMetadata("no_pickup") && e.getItem().getItemStack().hasItemMeta() && e.getItem().getItemStack().getItemMeta().hasDisplayName() && e.getItem().getItemStack().getItemMeta().getDisplayName().startsWith(ChatColor.translateAlternateColorCodes('&', "&5&dALTAR &3Probe - &e"))) { e.setCancelled(true); e.getItem().remove(); } } }
@EventHandler(ignoreCancelled = true) private void cartHopperPickup(InventoryPickupItemEvent event){ if(hasRegenArea() && minigame.hasPlayers() && event.getInventory().getHolder() instanceof HopperMinecart){ Location loc = ((HopperMinecart)event.getInventory().getHolder()).getLocation(); if(blockInRegenArea(loc)){ addEntity((HopperMinecart)event.getInventory().getHolder(), null, false); } } }