@EventHandler public void onEat(PlayerItemConsumeEvent e) { if (e.getItem() != null) { final Player p = e.getPlayer(); ItemStack item = e.getItem(); if (Slimefun.hasUnlocked(p, item, true)) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MONSTER_JERKY, true)) { PlayerInventory.consumeItemInHand(p); e.setItem(new ItemStack(Material.APPLE)); } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.FORTUNE_COOKIE, true)) p.sendMessage( Messages.local .getTranslation("messages.fortune-cookie") .get( CSCoreLib.randomizer() .nextInt( Messages.local.getTranslation("messages.fortune-cookie").size()))); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BEEF_JERKY, true)) p.setSaturation((Integer) Slimefun.getItemValue("BEEF_JERKY", "Saturation")); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GRILLED_CHEESE, true)) p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 8, 0)); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BUTTERED_POTATO, true)) p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 8, 0)); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MEDICINE, true)) { if (p.hasPotionEffect(PotionEffectType.POISON)) p.removePotionEffect(PotionEffectType.POISON); if (p.hasPotionEffect(PotionEffectType.WITHER)) p.removePotionEffect(PotionEffectType.WITHER); if (p.hasPotionEffect(PotionEffectType.SLOW)) p.removePotionEffect(PotionEffectType.SLOW); if (p.hasPotionEffect(PotionEffectType.SLOW_DIGGING)) p.removePotionEffect(PotionEffectType.SLOW_DIGGING); if (p.hasPotionEffect(PotionEffectType.WEAKNESS)) p.removePotionEffect(PotionEffectType.WEAKNESS); if (p.hasPotionEffect(PotionEffectType.CONFUSION)) p.removePotionEffect(PotionEffectType.CONFUSION); if (p.hasPotionEffect(PotionEffectType.BLINDNESS)) p.removePotionEffect(PotionEffectType.BLINDNESS); p.setFireTicks(0); } else if (item.getType() == Material.POTION) { SlimefunItem sfItem = SlimefunItem.getByItem(item); if (sfItem != null && sfItem instanceof Juice) { Bukkit.getScheduler() .scheduleSyncDelayedTask( main.instance, new Runnable() { @Override public void run() { p.getInventory().removeItem(new ItemStack(Material.GLASS_BOTTLE, 1)); } }, 1L); } } } else e.setCancelled(true); } }
@EventHandler public void onClick(InventoryClickEvent e) { if (Variables.backpack.containsKey(e.getWhoClicked().getUniqueId())) { ItemStack item = Variables.backpack.get(e.getWhoClicked().getUniqueId()); if (SlimefunManager.isItemSimiliar(item, SlimefunItems.COOLER, false)) { SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem()); if (sfItem == null) e.setCancelled(true); else if (!(sfItem instanceof Juice)) e.setCancelled(true); } else if (SlimefunManager.isItemSimiliar(e.getCurrentItem(), item, true)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( e.getCurrentItem(), SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true); } }
@EventHandler public void onInteract(PlayerInteractEvent e) { if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) { ItemStack item = e.getItem(); Player p = e.getPlayer(); if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_SMALL, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_SMALL, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 9))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_MEDIUM, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_MEDIUM, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 18))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_LARGE, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.BACKPACK_LARGE, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 27))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.WOVEN_BACKPACK, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.WOVEN_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 36))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GILDED_BACKPACK, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.GILDED_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 45))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BOUND_BACKPACK, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.BOUND_BACKPACK, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 36))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.COOLER, false)) { e.setCancelled(true); if (Slimefun.hasUnlocked(p, SlimefunItems.COOLER, true)) { if (item.getAmount() == 1) { for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals("§7ID: <ID>")) { ItemMeta im = item.getItemMeta(); List<String> lore = im.getLore(); lore.set(line, lore.get(line).replace("<ID>", Backpacks.createBackpack(p, 27))); im.setLore(lore); item.setItemMeta(im); break; } } Backpacks.openBackpack(p, item); p.playSound(p.getLocation(), Sound.HORSE_ARMOR, 1F, 1F); Variables.backpack.put(p.getUniqueId(), item); } else Messages.local.sendTranslation(p, "backpack.no-stack", true); } } } }
@EventHandler public void onBlockPlace(BlockPlaceEvent e) { ItemStack item = e.getItemInHand(); if (Variables.cancelPlace.contains(e.getPlayer().getUniqueId())) { e.setCancelled(true); Variables.cancelPlace.remove(e.getPlayer().getUniqueId()); } if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BASIC_CIRCUIT_BOARD, true)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ADVANCED_CIRCUIT_BOARD, true)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar( item, SlimefunItems.REINFORCED_ALLOY_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_ENERGY_CELL, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DURALUMIN_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BILLON_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SOLDER_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STEEL_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DAMASCUS_STEEL_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.REINFORCED_ALLOY_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBONADO_CAPACITOR, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BROKEN_SPAWNER, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_MODULE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_SECURITY_MODULE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_TRANSMISSION_MODULE, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_ANTENNA, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_MARKER, false)) { Satellites.addWaypoint(e.getPlayer(), e.getBlockPlaced().getLocation()); e.setCancelled(true); } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SATELLITE, false)) { e.setCancelled(true); PlayerInventory.consumeItemInHand(e.getPlayer()); Messages.local.sendTranslation(e.getPlayer(), "satellites.launched", false); Satellites.add(e.getPlayer()); } else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_GPS_TRACKER, false)) e.setCancelled(true); else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PRESENT, false)) { e.setCancelled(true); PlayerInventory.consumeItemInHand(e.getPlayer()); FireworkShow.launchRandom(e.getPlayer(), 3); List<ItemStack> gifts = new ArrayList<ItemStack>(); for (int i = 0; i < 2; i++) { gifts.add(new CustomItem(SlimefunItems.HOT_CHOCOLATE, 1)); gifts.add(new CustomItem(SlimefunItems.CHOCOLATE_APPLE, 4)); gifts.add(new CustomItem(SlimefunItems.CARAMEL_APPLE, 4)); gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_CAKE, 4)); gifts.add(new CustomItem(SlimefunItems.CHRISTMAS_COOKIE, 8)); gifts.add(new CustomItem(SlimefunItems.PRESENT, 1)); gifts.add(new CustomItem(SlimefunItems.EGG_NOG, 1)); gifts.add(new CustomItem(SlimefunItems.MILK, 1)); gifts.add(new CustomItem(SlimefunItems.APPLE_CIDER, 1)); gifts.add(new CustomItem(SlimefunItems.FRUIT_CAKE, 4)); gifts.add(new CustomItem(SlimefunItems.APPLE_PIE, 4)); } gifts.add(new SkullItem("mrCookieSlime")); gifts.add(new SkullItem("timtower")); gifts.add(new SkullItem("bwfcwalshy")); gifts.add(new SkullItem("jadedcat")); gifts.add(new SkullItem("ZeldoKavira")); gifts.add(new SkullItem("eyamaz")); gifts.add(new SkullItem("Kaelten")); gifts.add(new SkullItem("ahamling27")); gifts.add(new SkullItem("Myrathi")); new String( "Good day to whoever is just looking through my code." + "Since it is Christmas, I wanted to add some Christmas flavour to this Plugin." + "So, I hope you don't mind that I implemented some of your Heads >.>" + "Merry Christmas everyone!" + "" + "- mrCookieSlime"); e.getBlockPlaced() .getWorld() .dropItemNaturally( e.getBlockPlaced().getLocation(), gifts.get(main.randomize(gifts.size()))); } }
@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); }