public ItemStack getOutcome(boolean isFixedDrops) { if (Math.random() * 100.0D < percentage && material != null) { int dropAmount = isFixedDrops ? range.getMaximumInteger() : range.getMinimumInteger() + random.nextInt( Math.abs(range.getMaximumInteger() - range.getMinimumInteger() + 1)); if (dropAmount > 0) { ItemStack itemStack; if (data == null) { itemStack = new ItemStack(material, dropAmount); } else { MaterialData materialData = new MaterialData(material, data); itemStack = materialData.toItemStack(dropAmount); if (durability != null) { itemStack.setDurability(durability); } } itemStack.addEnchantments(ItemEnchantment.getOutcome(enchantments)); if (itemStack.getAmount() > 0) { return itemStack; } } } return null; }
/** * Enchant. * * @param item the item * @param enchants the enchants */ public void enchant(ItemStack item, Map<Enchantment, Integer> enchants) { if (item == null) { return; } for (Enchantment ench : item.getEnchantments().keySet()) { item.removeEnchantment(ench); } item.addEnchantments(enchants); }
public static ItemStack loadItemStack(final ConfigurationSection config) { final ItemStack item = new MaterialData(config.getInt("id"), (byte) config.getInt("data")) .toItemStack(config.getInt("amount", 1)); if (config.contains("durability")) item.setDurability((short) config.getInt("durability")); if (config.contains("enchantments")) item.addEnchantments(loadEnchantments(config.getConfigurationSection("enchantments"))); return item; }
public static void updateItem( ItemStack item, String locale, RPGMetadata rpgMeta, boolean updateDurability) { RPGItem rItem = ItemManager.toRPGItem(item); if (rItem == null) return; item.setType(rItem.item.getType()); ItemMeta meta = rItem.getLocaleMeta(locale); if (!(meta instanceof LeatherArmorMeta) && updateDurability) { item.setDurability(rItem.item.getDurability()); } List<String> lore = meta.getLore(); rItem.addExtra(rpgMeta, item, lore); lore.set(0, meta.getLore().get(0) + rpgMeta.toMCString()); meta.setLore(lore); Map<Enchantment, Integer> enchantments = null; if (enchantmentSupport) enchantments = item.getEnchantments(); item.setItemMeta(meta); if (enchantmentSupport) item.addEnchantments(enchantments); }