public static ItemStack buildEnchantedBook(Enchantment ench, short level) { ItemStack stack = new ItemStack(Items.ENCHANTED_BOOK); //NOT THIS: if you are putting it on a normal stack (sword/weapon) yeah then that way // stack.addEnchantment(ench, level); ItemEnchantedBook.addEnchantment(stack, new EnchantmentData(ench, level)); //just to test it return stack; }
private ItemStack extractEnchantFromItem(final ItemStack item) { final Map<Enchantment, Integer> enchants = EnchantmentHelper.getEnchantments(item); final ItemStack books = new ItemStack(Items.ENCHANTED_BOOK); for (final Map.Entry<Enchantment, Integer> entry : enchants.entrySet()) { ItemEnchantedBook.addEnchantment(books, new EnchantmentData(entry.getKey(), entry.getValue())); } worker.decreaseSaturationForAction(); return books; } }
private void handleTome(ItemStack book, ItemStack tome, AnvilUpdateEvent event) { Map<Enchantment, Integer> enchantsBook = EnchantmentHelper.getEnchantments(book); Map<Enchantment, Integer> enchantsTome = EnchantmentHelper.getEnchantments(tome); for (Map.Entry<Enchantment, Integer> entry : enchantsTome.entrySet()) { if(enchantsBook.getOrDefault(entry.getKey(), 0).equals(entry.getValue())){ enchantsBook.put(entry.getKey(), entry.getValue() + 1); } else { return; } } ItemStack output = ProxyRegistry.newStack(Items.ENCHANTED_BOOK); for (Map.Entry<Enchantment, Integer> entry : enchantsBook.entrySet()) { ItemEnchantedBook.addEnchantment(output, new EnchantmentData(entry.getKey(), entry.getValue())); } event.setOutput(output); event.setCost(mergeTomeCost); }
@Override @Nonnull public ResultStack[] getCompletedResult(long nextSeed, float chanceMultiplier, @Nonnull NNList<MachineRecipeInput> inputs) { ItemStack slot1 = MachineRecipeInput.getInputForSlot(1, inputs); int level = getLevelForStackSize(slot1.getCount()); EnchantmentData enchantmentData = new EnchantmentData(enchantment, level); ItemStack output = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(output, enchantmentData); return new ResultStack[] { new ResultStack(output) }; }
@Override @Nonnull public ItemStack getInventorySlotContents(int slot) { if (slot < enchantments.size()) { EnchantmentData enchantmentData = new EnchantmentData(enchantments.get(slot), 1); ItemStack output = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(output, enchantmentData); return output; } return Prep.getEmpty(); }
@Override protected void dropFewItems(boolean wasRecentlyHit, int lootingModifier) { if (wasRecentlyHit) { if ((rand.nextInt(4) == 0 || rand.nextInt(1 + lootingModifier) > 0)) { dropItem(GaiaItems.MISC_SOUL_FIRE, 1); } // Nuggets/Fragments int dropNugget = rand.nextInt(3) + 1; for (int i = 0; i < dropNugget; ++i) { dropItem(Items.IRON_NUGGET, 1); } if (GaiaConfig.OPTIONS.additionalOre) { int dropNuggetAlt = rand.nextInt(3) + 1; for (int i = 0; i < dropNuggetAlt; ++i) { ItemShard.dropNugget(this, 4); } } // Rare if ((rand.nextInt(EntityAttributes.RATE_RARE_DROP) == 0)) { dropItem(GaiaItems.BOX_IRON, 1); } // Unique Rare if ((rand.nextInt(EntityAttributes.RATE_UNIQUE_RARE_DROP) == 0)) { ItemStack enchantmentBook = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantments.SHARPNESS, 1)); this.entityDropItem(enchantmentBook, 1); } } }
@Override protected void dropFewItems(boolean wasRecentlyHit, int lootingModifier) { if (wasRecentlyHit) { if ((rand.nextInt(2) == 0 || rand.nextInt(1 + lootingModifier) > 0)) { dropItem(GaiaItems.FOOD_MEAT, 1); } // Nuggets/Fragments int dropNugget = rand.nextInt(3) + 1; for (int i = 0; i < dropNugget; ++i) { dropItem(Items.IRON_NUGGET, 1); } if (GaiaConfig.OPTIONS.additionalOre) { int dropNuggetAlt = rand.nextInt(3) + 1; for (int i = 0; i < dropNuggetAlt; ++i) { ItemShard.dropNugget(this, 4); } } // Rare if ((rand.nextInt(EntityAttributes.RATE_RARE_DROP) == 0)) { dropItem(GaiaItems.BOX_IRON, 1); } // Unique Rare if ((rand.nextInt(EntityAttributes.RATE_UNIQUE_RARE_DROP) == 0)) { ItemStack enchantmentBook = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantments.LOOTING, 1)); this.entityDropItem(enchantmentBook, 1); } } }
@Override protected void dropFewItems(boolean wasRecentlyHit, int lootingModifier) { if (wasRecentlyHit) { if ((rand.nextInt(2) == 0 || rand.nextInt(1 + lootingModifier) > 0)) { dropItem(GaiaItems.MISC_FUR, 1); } // Nuggets/Fragments int dropNugget = rand.nextInt(3) + 1; for (int i = 0; i < dropNugget; ++i) { dropItem(Items.IRON_NUGGET, 1); } if (GaiaConfig.OPTIONS.additionalOre) { int dropNuggetAlt = rand.nextInt(3) + 1; for (int i = 0; i < dropNuggetAlt; ++i) { ItemShard.dropNugget(this, 4); } } // Rare if ((rand.nextInt(EntityAttributes.RATE_RARE_DROP) == 0)) { dropItem(GaiaItems.BOX_IRON, 1); } // Unique Rare if ((rand.nextInt(EntityAttributes.RATE_UNIQUE_RARE_DROP) == 0)) { ItemStack enchantmentBook = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantments.SHARPNESS, 1)); this.entityDropItem(enchantmentBook, 1); } } }
private ItemStack enchantItem(ItemStack output) { if (output == null) return null; if (output.getItem() == Items.BOOK) { final NBTTagCompound originalTag = output.getTagCompound(); output = new ItemStack(Items.ENCHANTED_BOOK); output.setTagCompound(originalTag != null? originalTag.copy() : null); for (EnchantmentData e : enchantments) ItemEnchantedBook.addEnchantment(output, e); } else if (output.getItem() == Items.ENCHANTED_BOOK) { for (EnchantmentData e : enchantments) ItemEnchantedBook.addEnchantment(output, e); } else { for (EnchantmentData e : enchantments) output.addEnchantment(e.enchantment, e.enchantmentLevel); } return output; }
ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantments.LUCK_OF_THE_SEA, 1)); this.entityDropItem(enchantmentBook, 1);
@Nonnull public ItemStack enchant() { if (toEnchant.isEmpty()) return ItemStack.EMPTY; ItemStack enchantedItem = toEnchant.copy(); final boolean isBook = enchantedItem.getItem() == Items.BOOK; final List<EnchantmentData> enchantmentsToApply = getEnchantmentList(toEnchant, level, xpLevels); if (!enchantmentsToApply.isEmpty()) { if (isBook) { enchantedItem = new ItemStack(Items.ENCHANTED_BOOK); } for (EnchantmentData enchantment : enchantmentsToApply) { if (isBook) { ItemEnchantedBook.addEnchantment(enchantedItem, enchantment); } else { enchantedItem.addEnchantment(enchantment.enchantment, enchantment.enchantmentLevel); } } } return enchantedItem; }
private void makeOutput() { if(world.isRemote) return; setInventorySlotContents(2, ItemStack.EMPTY); ItemStack in = getStackInSlot(0); if(!in.isEmpty() && matrix != null && !matrix.placedPieces.isEmpty()) { ItemStack out = in.copy(); boolean book = false; if(out.getItem() == Items.BOOK) { out = new ItemStack(Items.ENCHANTED_BOOK); book = true; } Map<Enchantment, Integer> enchantments = new HashMap(); for(int i : matrix.placedPieces) { Piece p = matrix.pieces.get(i); for(Enchantment o : enchantments.keySet()) if(o == p.enchant || !p.enchant.isCompatibleWith(o) || !o.isCompatibleWith(p.enchant)) return; // Incompatible enchantments.put(p.enchant, p.level); } if(book) for(Entry<Enchantment, Integer> e : enchantments.entrySet()) ItemEnchantedBook.addEnchantment(out, new EnchantmentData(e.getKey(), e.getValue())); else { EnchantmentHelper.setEnchantments(enchantments, out); out.getTagCompound().removeTag(TAG_STACK_MATRIX); } setInventorySlotContents(2, out); } }
ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantments.KNOCKBACK, 1)); ItemEnchantedBook.addEnchantment(enchantmentBook, new EnchantmentData(Enchantment.getEnchantmentByID(70), 1)); enchantmentBook.setStackDisplayName("Mysterious Tome"); this.entityDropItem(enchantmentBook, 1);
ItemStack poisonTipEnchant = new ItemStack(Items.ENCHANTED_BOOK); Enchantment enchant = EnchantmentPoisonTip.getInstance(); ItemEnchantedBook.addEnchantment(poisonTipEnchant, new EnchantmentData(enchant, enchant.getMinLevel())); predefinedItems.put("evilcraft:enchanted_book_poison_tip", poisonTipEnchant);
for (Enchantment e : EnchantRegistry.enchants) { ItemStack ebook = new ItemStack(Items.ENCHANTED_BOOK); ItemEnchantedBook.addEnchantment(ebook, new EnchantmentData(e, e.getMaxLevel())); list.add(ebook);
ItemEnchantedBook.addEnchantment(newBookStack, new EnchantmentData(enchant, level));
ItemEnchantedBook.addEnchantment(enchBook, new EnchantmentData(Enchantments.SHARPNESS, 5));