@SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.LOWEST) public void onFurnaceInsert(InventoryClickEvent e) { if (e.getInventory().getType() == InventoryType.FURNACE && e.getCursor() != null && (e.getRawSlot() == 0 || e.getSlot() == 1)) { if (!e.isShiftClick()) { ItemStack item = e.getCurrentItem(); e.setCurrentItem(e.getCursor()); e.setCursor(item); e.setCancelled(true); PlayerInventory.update((Player) e.getWhoClicked()); } } }
@SuppressWarnings("deprecation") @EventHandler public void onRightClick(ItemUseEvent e) { final Player p = e.getPlayer(); ItemStack item = e.getItem(); if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getItem(), true)) SlimefunGuide.openGuide(p); else if (Slimefun.hasUnlocked(p, item, true)) { for (ItemHandler handler : SlimefunItem.getHandlers("ItemInteractionHandler")) { if (((ItemInteractionHandler) handler).onRightClick(e, p, item)) break; } if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_MULTI_TOOL, false)) { e.setCancelled(true); ItemStack tool = null; for (ItemStack mTool : new ItemStack[] { SlimefunItems.DURALUMIN_MULTI_TOOL, SlimefunItems.SOLDER_MULTI_TOOL, SlimefunItems.BILLON_MULTI_TOOL, SlimefunItems.STEEL_MULTI_TOOL, SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL, SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL, SlimefunItems.CARBONADO_MULTI_TOOL }) { if (mTool .getItemMeta() .getLore() .get(0) .equalsIgnoreCase(item.getItemMeta().getLore().get(0))) { tool = mTool; break; } } if (tool != null) { List<Integer> modes = ((MultiTool) SlimefunItem.getByItem(tool)).getModes(); int index = 0; if (Variables.mode.containsKey(p.getUniqueId())) index = Variables.mode.get(p.getUniqueId()); if (!p.isSneaking()) { double charge = Double.valueOf( ChatColor.stripColor(p.getItemInHand().getItemMeta().getLore().get(1)) .replace("Charge: ", "") .replace(" J", "")); double cost = 0.3; if (charge >= cost) { double newcharge = Double.valueOf( new DecimalFormat("##.##").format(charge - cost).replace(",", ".")); ItemStack hand = p.getItemInHand().clone(); ItemMeta im = hand.getItemMeta(); List<String> lore = im.getLore(); lore.set( 1, ChatColor.translateAlternateColorCodes('&', "&7Charge: &b" + newcharge + " J")); im.setLore(lore); hand.setItemMeta(im); p.setItemInHand(hand); Bukkit.getPluginManager() .callEvent( new ItemUseEvent( p, SlimefunItem.getByName( (String) Slimefun.getItemValue( SlimefunItem.getByItem(tool).getName(), "mode." + modes.get(index) + ".item")) .getItem(), e.getClickedBlock())); } } else { index++; if (index == modes.size()) index = 0; Messages.local.sendTranslation( p, "messages.mode-change", true, new Variable("%device%", "Multi Tool"), new Variable( "%mode%", (String) Slimefun.getItemValue( SlimefunItem.getByItem(tool).getName(), "mode." + modes.get(index) + ".name"))); Variables.mode.put(p.getUniqueId(), index); } } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_CAPACITOR, false) || SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_CAPACITOR, false)) { double charge = Double.valueOf( ChatColor.stripColor(p.getItemInHand().getItemMeta().getLore().get(1)) .replace("Charge: ", "") .replace(" J", "")); charge = ChargeUtils.chargeArmor(p, charge); ItemStack hand = p.getItemInHand().clone(); ItemMeta im = hand.getItemMeta(); List<String> lore = im.getLore(); lore.set(1, ChatColor.translateAlternateColorCodes('&', "&7Charge: &b" + charge + " J")); im.setLore(lore); hand.setItemMeta(im); p.setItemInHand(hand); p.updateInventory(); } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.HEAVY_CREAM, true)) e.setCancelled(true); if (e.getClickedBlock() != null && BlockStorage.check(e.getClickedBlock()) != null) { if (BlockStorage.check(e.getClickedBlock()).getName().equalsIgnoreCase("SOUL_FORGE")) { e.setCancelled(true); if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BROKEN_SPAWNER, false)) { final ItemStack spawner = SlimefunItems.REPAIRED_SPAWNER.clone(); ItemMeta im = spawner.getItemMeta(); im.setLore(Arrays.asList(item.getItemMeta().getLore().get(0))); spawner.setItemMeta(im); PlayerInventory.consumeItemInHand(p); p.getWorld().dropItemNaturally(e.getClickedBlock().getLocation().add(0, 1, 0), spawner); p.getWorld().playSound(p.getLocation(), Sound.BLAZE_DEATH, 2F, 2F); p.getWorld().playEffect(p.getLocation(), Effect.MOBSPAWNER_FLAMES, 1); Variables.cancelPlace.add(p.getUniqueId()); PlayerInventory.update(p); } } else if (BlockStorage.check(e.getClickedBlock()) .getName() .equalsIgnoreCase("CHUNK_LOADER")) e.setCancelled(true); } } else e.setCancelled(true); }