@Override boolean canFire(ItemStack stack, EntityPlayer player) { int infinity = EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, stack); return player.capabilities.isCreativeMode || ManaItemHandler.requestManaExactForTool(stack, player, ARROW_COST / (infinity + 1), false); }
/** * @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 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; } }
Map<Enchantment, Integer> currentEnchantments = EnchantmentHelper.getEnchantments(event.getLeft()); if (EnchantmentHelper.getEnchantmentLevel(Enchantment.getEnchantmentByLocation("sharpness"), event.getLeft()) >= event.getRight().getItemDamage()) return; EnchantmentHelper.setEnchantments(currentEnchantments, event.getOutput()); } else { event.setOutput(event.getLeft().copy());
/** * Calculates the ranged attack damage * * @return the attack damage */ private double getRangedAttackDamage() { if (worker.getCitizenData() != null) { int enchantDmg = 0; if (Configurations.gameplay.rangerEnchants) { final ItemStack heldItem = worker.getHeldItem(EnumHand.MAIN_HAND); // Normalize to +1 dmg enchantDmg += EnchantmentHelper.getModifierForCreature(heldItem, target.getCreatureAttribute()) / 2.5; enchantDmg += EnchantmentHelper.getEnchantmentLevel(Enchantments.POWER, heldItem); } return (RANGER_BASE_DMG + getLevelDamage() + enchantDmg) * Configurations.gameplay.rangerDamageMult; } return RANGER_BASE_DMG * Configurations.gameplay.rangerDamageMult; }
if (stack.isItemStackDamageable()) { ItemStack enchantedStack; if (EnchantmentHelper.getEnchantmentLevel(Enchantments.MENDING, stack) > 0) { enchantedStack = stack.copy(); } else if (Enchantments.MENDING.canApply(stack)) { enchantedStack = stack.copy(); EnchantmentHelper.setEnchantments(enchMap, enchantedStack); } else { continue;
damage += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase) target).getCreatureAttribute()); knockback += EnchantmentHelper.getKnockbackModifier(this); this.motionZ *= 0.6D; int fireDamage = EnchantmentHelper.getFireAspectModifier(this); EnchantmentHelper.applyThornEnchantments((EntityLivingBase) target, this); EnchantmentHelper.applyArthropodEnchantments(this, target);
@Nullable @Override public ItemStack getExample() { ItemStack stack = new ItemStack(Items.DIAMOND_HOE); EnchantmentHelper.setEnchantments(Collections.singletonMap(Enchantments.UNBREAKING, 5), stack); return stack; } }
public boolean attackEntityAsMob(Entity entity) { float f = (float) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue(); int i = 0; if (entity instanceof EntityLivingBase) { f += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase) entity).getCreatureAttribute()); i += EnchantmentHelper.getKnockbackModifier(this); } boolean flag = entity.attackEntityFrom(DamageSource.causeMobDamage(this), f); if (flag) { if (i > 0) { entity.addVelocity((double) (-MathHelper.sin(this.rotationYaw * (float) Math.PI / 180.0F) * (float) i * 0.5F), 0.1D, (double) (MathHelper.cos(this.rotationYaw * (float) Math.PI / 180.0F) * (float) i * 0.5F)); this.motionX *= 0.6D; this.motionZ *= 0.6D; } int j = EnchantmentHelper.getFireAspectModifier(this); if (j > 0) { entity.setFire(j * 4); } this.applyEnchantments(this, entity); } return flag; }
f += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase) attackedEntity).getCreatureAttribute()); i += EnchantmentHelper.getKnockbackModifier(this); int j = EnchantmentHelper.getFireAspectModifier(this); float f1 = 0.25F + (float) EnchantmentHelper.getEfficiencyModifier(this) * 0.05F;
private double getAttribute(EntityPlayer player, ItemStack stack, Multimap<String, AttributeModifier> map, String key) { if(player == null) // apparently this can happen return 0; Collection<AttributeModifier> collection = map.get(key); if(collection.isEmpty()) return 0; AttributeModifier attributemodifier = collection.iterator().next(); double d0 = attributemodifier.getAmount(); boolean flag = false; if(key.equals("generic.attackDamage")) { d0 += player.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getBaseValue(); d0 += (double) EnchantmentHelper.getModifierForCreature(stack, EnumCreatureAttribute.UNDEFINED); } else if(key.equals("generic.attackSpeed")) d0 += player.getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED).getBaseValue(); return d0; }
f1 = EnchantmentHelper.getModifierForCreature(player.getHeldItemMainhand(), ((EntityLivingBase) target).getCreatureAttribute()); }else{ f1 = EnchantmentHelper.getModifierForCreature(player.getHeldItemMainhand(), EnumCreatureAttribute.UNDEFINED); int i = EnchantmentHelper.getKnockbackModifier(player); if (player.isSprinting() && flag){ player.playSound(SoundEvents.ENTITY_PLAYER_ATTACK_KNOCKBACK, 1.0F, 1.0F); int j = EnchantmentHelper.getFireAspectModifier(player); if (target instanceof EntityLivingBase) { f4 = ((EntityLivingBase) target).getHealth(); EnchantmentHelper.applyThornEnchantments((EntityLivingBase) target, player);//Call #onUserHurt for each enchantment from target inventory EnchantmentHelper.applyArthropodEnchantments(player, target);//Call #onEntityDamaged for each enchantment from player inventory Entity entity = target; if (target instanceof EntityDragonPart) {
/** * Get the crafting result of this pickaxe. * It has fortune X by default. * @return The pickaxe with enchantment. */ public static ItemStack createCraftingResult() { ItemStack pickaxe = new ItemStack(VengeancePickaxe.getInstance()); Map<Enchantment, Integer> enchantments = Maps.newHashMap(); enchantments.put(Enchantments.FORTUNE, VengeancePickaxeConfig.fortuneLevel); enchantments.put(EnchantmentVengeance.getInstance(), VengeancePickaxeConfig.vengeanceLevel); EnchantmentHelper.setEnchantments(enchantments, pickaxe); return pickaxe; }
@Override public boolean attackEntityAsMob(Entity entityIn) { float f = (float) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue(); int i = 0; if (entityIn instanceof EntityLivingBase) { f += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase) entityIn).getCreatureAttribute()); i += EnchantmentHelper.getKnockbackModifier(this); } boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), f); if (flag) { if (i > 0) { entityIn.addVelocity((double) (-MathHelper.sin(this.rotationYaw * (float) Math.PI / 180.0F) * (float) i * 0.5F), 0.1D, (double) (MathHelper.cos(this.rotationYaw * (float) Math.PI / 180.0F) * (float) i * 0.5F)); this.motionX *= 0.6D; this.motionZ *= 0.6D; } int j = EnchantmentHelper.getFireAspectModifier(this); if (j > 0) { entityIn.setFire(j * 4); } this.applyEnchantments(this, entityIn); } return flag; }
f += EnchantmentHelper.getModifierForCreature(this.getHeldItemMainhand(), ((EntityLivingBase)entityIn).getCreatureAttribute()); i += EnchantmentHelper.getKnockbackModifier(this); int j = EnchantmentHelper.getFireAspectModifier(this); float f1 = 0.25F + (float)EnchantmentHelper.getEfficiencyModifier(this) * 0.05F;
d0 += EnchantmentHelper.getModifierForCreature(stack, EnumCreatureAttribute.UNDEFINED);
boolean canFire(ItemStack stack, EntityPlayer player) { return player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, stack) > 0 || PlayerHelper.hasAmmo(player, AMMO_FUNC); }
@Override public boolean isItemValid(ItemStack itemstack) { return EnchantmentHelper.getEnchantments(itemstack).size() > 0; } }
@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); } }
@Nonnull @Override public ItemStack setTier(@Nonnull ItemStack stack, TIER tier) { NBTTagCompound nbt = UtilLib.checkNBT(stack); nbt.setString("tier", tier.name()); Map<Enchantment, Integer> map = new HashMap<>(); map.put(Enchantments.KNOCKBACK, getKnockback(tier)); EnchantmentHelper.setEnchantments(map, stack); return stack; }