@Override public ItemStack getCraftingResult(InventoryCrafting var1) { ItemStack out = output.copy(); for (int i = 0; i < var1.getSizeInventory(); i++) { ItemStack stack = var1.getStackInSlot(i); if (!stack.isEmpty() && stack.getItem() instanceof ItemArmor && stack.hasTagCompound()) { EnchantmentHelper.setEnchantments(EnchantmentHelper.getEnchantments(stack), out); if(Botania.thaumcraftLoaded) HelmRevealingRecipe.copyTCData(stack, out); break; } } return out; } }
/** * @param stack The item to check. * @return Whether the provided item has any enchantments. */ public static boolean hasEnchantments(ItemStack stack) { return !EnchantmentHelper.getEnchantments(stack).isEmpty(); } }
@Override public boolean isItemValid(ItemStack itemstack) { return EnchantmentHelper.getEnchantments(itemstack).size() > 0; } }
protected int getCurrentLevelTool(ItemStack stack) { if (stack.isEmpty() == false && EnchantmentHelper.getEnchantments(stack).containsKey(this)) return EnchantmentHelper.getEnchantments(stack).get(this); return -1; }
@Override public boolean doesItemPassFilter(@Nullable IItemHandler inv, @Nonnull ItemStack item) { Map<Enchantment, Integer> map = EnchantmentHelper.getEnchantments(item); if (!map.isEmpty()) { for (Enchantment enchantment : enchantments) { if (map.containsKey(enchantment)) { return !blacklist; } } } return blacklist; }
@Override protected boolean canStart() { if (augmentEnchant) { return !EnchantmentHelper.getEnchantments(inventory[0]).isEmpty(); } return EnervationManager.getFuelEnergy(inventory[0]) > 0; }
@Override public boolean isBookEnchantable(ItemStack stack, ItemStack book) { if (EnchantmentHelper.getEnchantments(book).containsKey(Enchantments.SILK_TOUCH)) { return true; } return super.isBookEnchantable(stack, book); }
private static int enchantmentPower(ItemStack stack) { if(!stack.isItemEnchanted()) return 0; Map<Enchantment, Integer> enchs = EnchantmentHelper.getEnchantments(stack); int total = 0; for(Integer i : enchs.values()) total += i; return total; }
public static int getEnchantEnergy(ItemStack stack) { Map<Enchantment, Integer> enchants = EnchantmentHelper.getEnchantments(stack); int enchantRF = 0; for (Enchantment enchant : enchants.keySet()) { enchantRF += enchant.getMinEnchantability(enchants.get(enchant)); } enchantRF += (enchants.size() * (enchants.size() + 1)) / 2; enchantRF *= ENCHANT_ENERGY; return enchantRF; }
@Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return augmentEnchant ? !EnchantmentHelper.getEnchantments(stack).isEmpty() : EnervationManager.getFuelEnergy(stack) > 0; }
EnchanterRecipe(ItemStack primaryInput, ItemStack secondaryInput, ItemStack output, int experience, int energy, Type type) { this.primaryInput = primaryInput; this.secondaryInput = secondaryInput; this.output = output; this.experience = experience; this.energy = energy; this.type = type; Map<Enchantment, Integer> enchants = EnchantmentHelper.getEnchantments(output); if (enchants.isEmpty() || enchants.size() > 1) { this.enchantName = ""; } else { this.enchantName = enchants.keySet().stream().findFirst().get().getRegistryName().toString(); } }
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); }
@ExposeProperty(raw = true) public TypedValue enchantments() { final List<TypedValue> result = Lists.newArrayList(); final Map<Enchantment, Integer> enchantments = EnchantmentHelper.getEnchantments(itemStack); for (Map.Entry<Enchantment, Integer> e : enchantments.entrySet()) if (e.getKey() != null) result.add(StructWrapper.create(nullValue.domain, new EnchantmentWrapper(e.getKey(), e.getValue()))); return Cons.createList(result, nullValue); }
public boolean doesMatchNonEmpty(ItemStack stack) { if (this.isEmpty()) { return false; } if (stack.getItem().equals(Items.ENCHANTED_BOOK)) { Map<Enchantment, Integer> enchants = EnchantmentHelper.getEnchantments(stack); for (Map.Entry<Enchantment, Integer> entry : enchants.entrySet()) { if (this.doesMatch(entry.getKey(), entry.getValue())) { return true; } } } return false; }
protected ItemStack getFirstArmorStackWithEnchant(EntityLivingBase player) { if (player == null) { return ItemStack.EMPTY; } for (ItemStack main : player.getArmorInventoryList()) { if ((main.isEmpty() == false) && EnchantmentHelper.getEnchantments(main).containsKey(this)) { return main;// EnchantmentHelper.getEnchantments(main).get(this); } } return ItemStack.EMPTY; } }
@Override public void transformHook(ItemStack stack, IBlockState state, BlockPos pos, IAtomicReconstructor tile) { for(Map.Entry<Enchantment,Integer> e : EnchantmentHelper.getEnchantments(stack).entrySet()) { ItemStack book = new ItemStack(Items.ENCHANTED_BOOK); Map<Enchantment, Integer> ench = ImmutableMap.of(e.getKey(), e.getValue()); EnchantmentHelper.setEnchantments(ench, book); Block.spawnAsEntity(tile.getWorldObject(), pos, book); } }
@SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { if (event.getEntity() instanceof EntityPlayer) { EntityPlayer p = (EntityPlayer) event.getEntity(); ItemStack armor = p.getItemStackFromSlot(EntityEquipmentSlot.FEET); int level = 0; if (armor.isEmpty() == false && EnchantmentHelper.getEnchantments(armor) != null && EnchantmentHelper.getEnchantments(armor).containsKey(this)) { //todo: maybe any armor? level = EnchantmentHelper.getEnchantments(armor).get(this); } if (level > 0) { setLiquidWalk(p); } } }
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; } }
@Override public boolean canWork(TilePurifier tile) { if(tile.getBucketsFloored() == tile.getMaxBuckets() && !tile.getPurifyItem().isEmpty() && !tile.getAdditionalItem().isEmpty() && tile.getAdditionalItem().getItem() == ALLOWED_BOOK.get()) { return !EnchantmentHelper.getEnchantments(tile.getPurifyItem()).isEmpty(); } return false; }
public void setContainedArmourStack(ItemStack newArmour, ItemStack previousArmour) { if (newArmour == null || previousArmour == null) { return; } NBTTagCompound tag = new NBTTagCompound(); previousArmour.writeToNBT(tag); NBTTagCompound omegaTag = newArmour.getTagCompound(); if (omegaTag == null) { omegaTag = new NBTTagCompound(); newArmour.setTagCompound(omegaTag); } omegaTag.setTag("armour", tag); Map<Enchantment, Integer> enchantmentMap = EnchantmentHelper.getEnchantments(previousArmour); EnchantmentHelper.setEnchantments(enchantmentMap, newArmour); }