@EventHandler public void onInventoryClick(InventoryClickEvent e) { Player player = (Player) e.getWhoClicked(); Inventory inventory = e.getInventory(); ItemStack currentItem = e.getCurrentItem(); if (ArenaManager.getInstance().getArena(player) == null) { return; } Plot plot = ArenaManager.getInstance().getArena(player).getPlot(player); if (!inventory.getName().equals(ChatColor.GREEN + "Time selection")) { return; } if (currentItem.getType() != Material.WATCH) { return; } if (!currentItem.hasItemMeta()) { return; } if (!currentItem.getItemMeta().getDisplayName().equals(ChatColor.GREEN + "2 AM")) { return; } plot.setTime(Time.AM2); e.setCancelled(true); }
/** * Gets the name of the item passed * * @param item the item to check, cannot be null * @param ignoreMeta if true, item meta will be ignored * @return the item name */ public static String getName(ItemStack item, boolean ignoreMeta) { String def = item.getType().name(); if (DumbAuction.getInstance().getConfig().getString("aliases." + item.getType().name()) != null) { def = DumbAuction.getInstance().getConfig().getString("aliases." + item.getType().name()); } DyeColor color = getDyeColor(item); if (color != null) { def = color.name() + "_" + def; // underscore is stripped later, capitals are also fixed } // ItemMeta always overrides everything else if (!ignoreMeta && item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); if (meta.hasDisplayName()) { def = ChatColor.ITALIC + meta.getDisplayName(); } } String[] parts = def.split("_"); StringBuilder builder = new StringBuilder(); for (int i = 0; i < parts.length; i++) { builder.append(parts[i].substring(0, 1).toUpperCase() + parts[i].substring(1).toLowerCase()); builder.append(" "); } return builder.toString().trim(); }
private static String getTitleOfBook(ItemStack book) { if (book.getType() == Material.WRITTEN_BOOK && book.hasItemMeta()) { BookMeta meta = (BookMeta) book.getItemMeta(); return meta.getTitle(); } return null; }
@EventHandler public void onInventoryClick(InventoryClickEvent e) { Player player = (Player) e.getWhoClicked(); Inventory inventory = e.getInventory(); ItemStack currentItem = e.getCurrentItem(); if (ArenaManager.getInstance().getArena(player) == null) { return; } Plot plot = ArenaManager.getInstance().getArena(player).getPlot(player); if (!inventory.getName().equals(ChatColor.GREEN + "Particles")) { return; } if (currentItem.getType() != Material.LAVA_BUCKET) { return; } if (!currentItem.hasItemMeta()) { return; } if (!currentItem.getItemMeta().getDisplayName().equals(ChatColor.GREEN + "Lava drip")) { return; } plot.addParticle(new Particle(player.getLocation(), ParticleType.LAVA_DRIP)); e.setCancelled(true); }
@SuppressWarnings("deprecation") @EventHandler public void onInventoryClick(InventoryClickEvent e) { Player player = (Player) e.getWhoClicked(); Inventory inventory = e.getInventory(); ItemStack currentItem = e.getCurrentItem(); if (ArenaManager.getInstance().getArena(player) == null) { return; } Plot plot = ArenaManager.getInstance().getArena(player).getPlot(player); if (!inventory.getName().equals(ChatColor.GREEN + "Options menu")) { return; } if (currentItem.getType() != Material.HARD_CLAY) { return; } if (!currentItem.hasItemMeta()) { return; } if (!currentItem.getItemMeta().getDisplayName().equals(ChatColor.GREEN + "Floor block")) { return; } for (Block block : plot.getFloor().getAllBlocks()) { block.setType(e.getCursor().getType()); block.setData(e.getCursor().getData().getData()); } e.setCancelled(true); }
public PrisonPearl getPearlbyItemStack(ItemStack stack) { if (!stack.hasItemMeta() || stack.getType() != Material.ENDER_PEARL) return null; if (!stack.getItemMeta().hasLore()) return null; List<String> lore = stack.getItemMeta().getLore(); if (lore.size() != 3) return null; UUID uuid = UUID.fromString(lore.get(1).split(" ")[1]); return pearls_byimprisoned.get(uuid); }
@Override protected boolean isSpecialItem(ItemStack stack) { if (stack != null && stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) { String name = stack.getItemMeta().getDisplayName(); if (name.contains(getSpecialItemName()) && KitUtils.isSoulbound(stack)) return true; } return false; }
public void addItem(ItemStack i, int loc, BSShop shop, BasicConnector c) { to_ping.add(c); if (!i.hasItemMeta()) { c.setOldData(null, null, i, shop, loc); return; } c.setOldData(i.getItemMeta().getLore(), i.getItemMeta().getDisplayName(), i, shop, loc); }
/** * Creates a new item stack derived from the specified stack * * @param stack the stack to copy * @throws IllegalArgumentException if the specified stack is null or returns an item meta not * created by the item factory */ public ItemStack(final ItemStack stack) throws IllegalArgumentException { Validate.notNull(stack, "Cannot copy null stack"); this.type = stack.getTypeId(); this.amount = stack.getAmount(); this.durability = stack.getDurability(); this.data = stack.getData(); if (stack.hasItemMeta()) { setItemMeta0(stack.getItemMeta(), getType0()); } }
public boolean isValidRocketSaddle(ItemStack saddle) { if (saddle != null && saddle.hasItemMeta()) { ItemMeta saddleMeta = saddle.getItemMeta(); if (saddleMeta.hasDisplayName()) if (saddleMeta.getDisplayName().equals(RocketLanguage.RB_SADDLE)) return true; } return false; }
@EventHandler(ignoreCancelled = true) public void onPrefsMenuClick(InventoryClickEvent event) { Inventory inv = event.getInventory(); String name = inv.getTitle(); if (name.equals("§4TARDIS Key Prefs Menu")) { Player p = (Player) event.getWhoClicked(); int slot = event.getRawSlot(); if (slot >= 0 && slot < 27) { switch (slot) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 10: case 12: case 14: case 16: event.setCancelled(true); // set display name of key in slot 18 ItemStack key = inv.getItem(18); if (key == null || !key.getType().equals(Material.GOLD_NUGGET) || !key.hasItemMeta()) { return; } // get Display name of selected key ItemStack choice = inv.getItem(slot); ItemMeta choice_im = choice.getItemMeta(); String choice_name = choice_im.getDisplayName(); ItemMeta sonic_im = key.getItemMeta(); sonic_im.setDisplayName(choice_name); key.setItemMeta(sonic_im); break; case 18: break; case 26: // close event.setCancelled(true); close(p); break; default: event.setCancelled(true); break; } } else { ClickType click = event.getClick(); if (click.equals(ClickType.SHIFT_RIGHT) || click.equals(ClickType.SHIFT_LEFT)) { event.setCancelled(true); } } } }
@SuppressWarnings("deprecation") public void run() { for (Player p : c.getServer().getOnlinePlayers()) { for (ItemStack is : p.getInventory().getContents()) { if (is == null || is.getType() == Material.AIR || !is.hasItemMeta()) continue; if (!is.getItemMeta().hasLore()) continue; if (!c.hasCustomEnchant(is.getItemMeta().getLore())) continue; boolean b = false; for (String s : is.getItemMeta().getLore()) { if (!c.isCustomEnchant(s)) continue; if (s.startsWith(ChatColor.RESET + "Repair ")) b = true; } if (!b) continue; if (is.getDurability() > 0) is.setDurability((short) (is.getDurability() - 1)); } boolean hasChestplateOn = false; for (ItemStack is : p.getInventory().getArmorContents()) { if (is == null || !is.getType().name().endsWith("CHESTPLATE") || !is.hasItemMeta()) continue; if (!is.getItemMeta().hasLore()) continue; if (!c.hasCustomEnchant(is.getItemMeta().getLore())) continue; boolean b = false; for (String s : is.getItemMeta().getLore()) { if (!c.isCustomEnchant(s)) continue; if (s.startsWith(ChatColor.RESET + "Flying ")) b = true; } if (!b) continue; if (!hasChestplateOn) { if (!p.isFlying()) { p.sendMessage(ChatColor.GOLD + "Flying enabled!"); } p.setAllowFlight(true); p.setFlying(true); hasChestplateOn = true; } } if (!hasChestplateOn && p.getGameMode() != GameMode.CREATIVE && p.isFlying()) { p.setFlying(false); p.setAllowFlight(false); } } }
public boolean isBanknote(ItemStack item) { if (item.getType() == Material.PAPER) { if (item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); if (meta.getDisplayName().equalsIgnoreCase(ChatColor.GREEN + "Bank Note")) { return true; } } } return false; }
public boolean isValidFuelJacket(ItemStack jacket) { if (jacket.hasItemMeta()) { ItemMeta jacketMeta = jacket.getItemMeta(); if (jacketMeta.hasDisplayName()) if (jacketMeta.getDisplayName().equals(ChatColor.RED + "Rocket Boot Fuel Jacket")) return true; } return false; }
/** * Returns a user friendly String of the given ItemStack's name * * @param item The given ItemStack * @return The name of the item */ public static String getItemName(ItemStack item) { // Return the Display name of the item if there is one if (item.hasItemMeta()) { String name = item.getItemMeta().getDisplayName(); if (name != null && !name.isEmpty()) { return name; } } // A display name was not found so use a cleaned up version of the Material name return WordUtils.capitalizeFully(item.getType().toString().replace("_", " ")); }
/** * Gets the lore of an ItemStack * * @param itemStack ItemStack to get the lore of * @return the lore of an ItemStack */ public List<String> getLore(final ItemStack itemStack) { ItemStack ret = itemStack; ItemMeta itemMeta; if (ret.hasItemMeta()) { itemMeta = ret.getItemMeta(); } else { itemMeta = Bukkit.getItemFactory().getItemMeta(ret.getType()); } if (itemMeta.hasLore()) return itemMeta.getLore(); return new ArrayList<String>(); }
/** * Cancel players from dropping the hat in their inventory. * * @param event */ @EventHandler public void cancelHatDropping(PlayerDropItemEvent event) { ItemStack item = event.getItemDrop().getItemStack().clone(); if (item != null && item.hasItemMeta() && item.getItemMeta().hasDisplayName() && item.getItemMeta().getDisplayName().equals("§8§oHat")) { event.getItemDrop().remove(); event.getPlayer().closeInventory(); event.getPlayer().updateInventory(); } }
/** * Sets the name of an ItemStack * * @param itemStack ItemStack to set name for * @param name Name to give to the ItemStack * @return named ItemStack */ public ItemStack setName(final ItemStack itemStack, final String name) { ItemStack ret = itemStack; ItemMeta itemMeta; if (ret.hasItemMeta()) { itemMeta = ret.getItemMeta(); } else { itemMeta = Bukkit.getItemFactory().getItemMeta(ret.getType()); } itemMeta.setDisplayName(name); ret.setItemMeta(itemMeta); return ret; }
/** * Sets the lore of an ItemStack * * @param itemStack ItemStack to set lore for * @param lore Lore to give to the ItemStack * @return lored ItemStack */ public ItemStack setLore(final ItemStack itemStack, final String... lore) { ItemStack ret = itemStack; ItemMeta itemMeta; if (ret.hasItemMeta()) { itemMeta = ret.getItemMeta(); } else { itemMeta = Bukkit.getItemFactory().getItemMeta(ret.getType()); } itemMeta.setLore(Arrays.asList(lore)); ret.setItemMeta(itemMeta); return ret; }
public CthItem(Cthulhu plugin, ItemStack item, Player player) { this.plugin = plugin; this.player = player; this.user = new CthUser(plugin, player); this.item = item; this.meta = (item.hasItemMeta() ? item.getItemMeta() : null); if (meta != null) { this.lore = (this.meta.getLore() != null ? this.meta.getLore() : new ArrayList<String>()); } else { this.lore = new ArrayList<String>(); } }
public String disName(ItemStack i) { if (i == null) { return null; } if (!i.hasItemMeta()) { return null; } if (!i.getItemMeta().hasDisplayName()) { return null; } return i.getItemMeta().getDisplayName(); }
@Override public boolean apply(ItemStack stack) { if (stack.hasItemMeta()) { ItemMeta meta = stack.getItemMeta(); if (meta.hasLore()) { String lore = Joiner.on('\n').join(stack.getItemMeta().getLore()); if (ignoreColors) { lore = ChatColor.stripColor(lore); } return pattern.matcher(lore).find(); } } return false; }
public boolean isValidRocketBoots(ItemStack boots) { if (boots.hasItemMeta()) { ItemMeta bootMeta = boots.getItemMeta(); if (bootMeta.hasDisplayName()) if (bootMeta.getDisplayName().matches(RocketLanguage.RB_NAME)) if (bootMeta.hasLore()) if (bootMeta.getLore().get(0).matches(ChatColor.YELLOW + "Rocket Level I{0,3}V?X?")) return true; } return false; }
@Override public void writeData(SpoutOutputStream output) throws IOException { super.writeData(output); output.writeInt(stack.getTypeId()); output.writeShort((short) stack.getAmount()); output.writeShort(stack.getDurability()); output.writeInt(depth); output.writeBoolean(renderAmount); if (stack.hasItemMeta() && stack.getItemMeta().hasDisplayName()) { output.writeBoolean(true); output.writeString(stack.getItemMeta().getDisplayName()); } else { output.writeBoolean(false); } if (stack.hasItemMeta() && stack.getItemMeta().hasLore()) { output.writeBoolean(true); output.writeInt(stack.getItemMeta().getLore().size()); for (String l : stack.getItemMeta().getLore()) { output.writeString(l); } } else { output.writeBoolean(false); } if (stack.hasItemMeta() && stack.getItemMeta().hasEnchants()) { output.writeBoolean(true); output.writeInt(stack.getItemMeta().getEnchants().size()); for (Entry e : stack.getItemMeta().getEnchants().entrySet()) { output.writeInt(((Enchantment) e.getKey()).getId()); output.writeInt((Integer) e.getValue()); } } else { output.writeBoolean(false); } }
/** * This method is the same as equals, but does not consider stack size (amount). * * @param stack the item stack to compare to * @return true if the two stacks are equal, ignoring the amount */ @Utility public boolean isSimilar(ItemStack stack) { if (stack == null) { return false; } if (stack == this) { return true; } return getTypeId() == stack.getTypeId() && getDurability() == stack.getDurability() && hasItemMeta() == stack.hasItemMeta() && (hasItemMeta() ? Bukkit.getItemFactory().equals(getItemMeta(), stack.getItemMeta()) : true); }
@EventHandler public void onInventoryClick(InventoryClickEvent event) { Inventory inventory = event.getInventory(); if (inventory.getName().equals(i.getName())) { event.setCancelled(true); Player player = (Player) event.getWhoClicked(); ItemStack stack = event.getCurrentItem(); if (stack == null || !stack.hasItemMeta()) return; if (stack.getItemMeta().getDisplayName().equals("Une pomme g閚iale !")) { player.closeInventory(); player.sendMessage( "Bravo, tu viens de cliquer sur " + stack.getItemMeta().getDisplayName() + " !"); player.addPotionEffect(PotionEffectType.FIRE_RESISTANCE.createEffect(Integer.MAX_VALUE, 2)); } } }
private double getEnchantmentBonus(ItemStack item, Stat stat) { double bonus = 0D; if (item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); if (meta.hasEnchants()) { for (Enchantment enchantment : meta.getEnchants().keySet()) { bonus += meta.getEnchants().get(enchantment) * plugin .getConfig() .getDouble("rolls.enchants." + enchantment.getName() + "." + stat.toString()); } } } return bonus; }
@EventHandler(ignoreCancelled = true) public void onInventoryDrag(InventoryDragEvent event) { Mage mage = controller.getMage(event.getWhoClicked()); GUIAction activeGUI = mage == null ? null : mage.getActiveGUI(); if (activeGUI != null) { activeGUI.dragged(event); return; } if (!enableItemHacks) return; // this is a huge hack! :\ // I apologize for any weird behavior this causes. // Bukkit, unfortunately, will blow away NBT data for anything you drag // Which will nuke a wand or spell. // To make matters worse, Bukkit passes a copy of the item in the event, so we can't // even check for metadata and only cancel the event if it involves one of our special items. // The best I can do is look for metadata at all, since Bukkit will retain the name and lore. // I have now decided to copy over the CB default handler for this, and cancel the event. // The only change I have made is that *real* ItemStack copies are made, instead of shallow // Bukkit ones. ItemStack oldStack = event.getOldCursor(); HumanEntity entity = event.getWhoClicked(); if (oldStack != null && oldStack.hasItemMeta() && entity instanceof Player) { // Only do this if we're only dragging one item, since I don't // really know what happens or how you would drag more than one. Map<Integer, ItemStack> draggedSlots = event.getNewItems(); if (draggedSlots.size() != 1) return; event.setCancelled(true); // Cancelling the event will put the item back on the cursor, // and skip updating the inventory. // So we will wait one tick and then fix this up using the original item. InventoryView view = event.getView(); for (Integer dslot : draggedSlots.keySet()) { CompleteDragTask completeDrag = new CompleteDragTask((Player) entity, view, dslot); completeDrag.runTaskLater(controller.getPlugin(), 1); } } }
/** * Sends a display of item information to the specified command sender. This is used for sending * the current auction queue to a command sender and therefore the resulting text is a "short * hand" version. * * @param item the item to display, cannot be null * @param sender the command sender to send the display to, cannot be null * @param placement the number to prefix the message. If less than zero, nothing is appended */ public static void showQuickInformation(ItemStack item, CommandSender sender, int placement) { if (item == null || sender == null) throw new IllegalArgumentException(); StringBuilder builder = new StringBuilder(); builder.append(getName(item)).append(" "); if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()) { builder.append(ChatColor.ITALIC).append("(").append(getName(item, true)).append(") "); } builder.append(ChatColor.BLUE).append("x").append(item.getAmount()); DumbAuction.getInstance() .sendMessage( sender, ChatColor.GREEN + (placement > 0 ? "#" + placement : placement == 0 ? "(current)" : "") + " " + ChatColor.AQUA + builder.toString().trim()); }
public boolean compareItemStr(ItemStack item, String str) { String itemstr = str; String name = ""; if (itemstr.contains("$")) { name = str.substring(0, itemstr.indexOf("$")); name = ChatColor.translateAlternateColorCodes('&', name.replace("_", " ")); itemstr = str.substring(name.length() + 1); } if (itemstr.isEmpty()) return false; if (!name.isEmpty()) { String iname = item.hasItemMeta() ? item.getItemMeta().getDisplayName() : ""; if (!name.equals(iname)) return false; } return compareItemStrIgnoreName( item.getTypeId(), item.getDurability(), item.getAmount(), itemstr); // ;compareItemStr(item, itemstr); }