@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); }
boolean canFire(ItemStack stack, EntityPlayer player) { return player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, stack) > 0 || PlayerHelper.hasAmmo(player, AMMO_FUNC); }
public static int getToolPriority(ItemStack stack) { if(stack.isEmpty()) return 0; Item item = stack.getItem(); if(!(item instanceof ItemTool)) return 0; ItemTool tool = (ItemTool) item; ToolMaterial material = tool.toolMaterial; int materialLevel = 0; if(material == BotaniaAPI.manasteelToolMaterial) materialLevel = 10; if(material == BotaniaAPI.elementiumToolMaterial) materialLevel = 11; if(material == BotaniaAPI.terrasteelToolMaterial) materialLevel = 20; int modifier = 0; if(item == ModItems.terraPick) modifier = ItemTerraPick.getLevel(stack); int efficiency = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, stack); return materialLevel * 100 + modifier * 10 + efficiency; }
@Override public boolean itemInteractionForEntity(@Nonnull ItemStack itemstack, EntityPlayer player, EntityLivingBase entity, EnumHand hand) { if(entity.world.isRemote) return false; if(entity instanceof IShearable) { IShearable target = (IShearable)entity; if(target.isShearable(itemstack, entity.world, new BlockPos(entity))) { List<ItemStack> drops = target.onSheared(itemstack, entity.world, new BlockPos(entity), EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, itemstack)); for(ItemStack stack : drops) { entity.entityDropItem(stack, 1.0F); } ToolCommons.damageItem(itemstack, 1, player, MANA_PER_DAMAGE); } return true; } return false; }
@Override public boolean onBlockStartBreak(@Nonnull ItemStack itemstack, @Nonnull BlockPos pos, EntityPlayer player) { if (player.world.isRemote) return false; Block block = player.world.getBlockState(pos).getBlock(); if(block instanceof IShearable) { IShearable target = (IShearable)block; if(target.isShearable(itemstack, player.world, pos)) { List<ItemStack> drops = target.onSheared(itemstack, player.world, pos, EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, itemstack)); Random rand = new Random(); for(ItemStack stack : drops) { float f = 0.7F; double d = rand.nextFloat() * f + (1D - f) * 0.5; double d1 = rand.nextFloat() * f + (1D - f) * 0.5; double d2 = rand.nextFloat() * f + (1D - f) * 0.5; EntityItem entityitem = new EntityItem(player.world, pos.getX() + d, pos.getY() + d1, pos.getZ() + d2, stack); entityitem.setPickupDelay(10); player.world.spawnEntity(entityitem); } ToolCommons.damageItem(itemstack, 1, player, MANA_PER_DAMAGE); player.addStat(StatList.getBlockStats(block), 1); return true; } } return false; }
return; int fortune = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack); boolean silk = EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0; boolean thor = ItemThorRing.getThorRing(player) != null; boolean doX = thor || side.getXOffset() == 0;
@Override public void onUsingTick(ItemStack stack, EntityLivingBase living, int count) { if(living.world.isRemote) return; if(count != getMaxItemUseDuration(stack) && count % 5 == 0) { int range = 12; List sheep = living.world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(living.posX - range, living.posY - range, living.posZ - range, living.posX + range, living.posY + range, living.posZ + range), Predicates.instanceOf(IShearable.class)); if(sheep.size() > 0) { for(IShearable target : (List<IShearable>) sheep) { Entity entity = (Entity) target; if(target.isShearable(stack, entity.world, new BlockPos(entity))) { List<ItemStack> drops = target.onSheared(stack, entity.world, new BlockPos(entity), EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack)); for(ItemStack drop : drops) { entity.entityDropItem(drop, 1.0F); } ToolCommons.damageItem(stack, 1, living, MANA_PER_DAMAGE); break; } } } } }
int j = EnchantmentHelper.getEnchantmentLevel(Enchantments.POWER, stack); int k = EnchantmentHelper.getEnchantmentLevel(Enchantments.PUNCH, stack); if (EnchantmentHelper.getEnchantmentLevel(Enchantments.FLAME, stack) > 0)
@SubscribeEvent public void onEntityDrops(LivingDropsEvent event) { if(event.isRecentlyHit() && event.getSource().getTrueSource() != null && event.getSource().getTrueSource() instanceof EntityPlayer) { ItemStack weapon = ((EntityPlayer) event.getSource().getTrueSource()).getHeldItemMainhand(); if(!weapon.isEmpty() && weapon.getItem() == this) { Random rand = event.getEntityLiving().world.rand; int looting = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, weapon); if(event.getEntityLiving() instanceof AbstractSkeleton && rand.nextInt(26) <= 3 + looting) addDrop(event, new ItemStack(Items.SKULL, 1, event.getEntityLiving() instanceof EntityWitherSkeleton ? 1 : 0)); else if(event.getEntityLiving() instanceof EntityZombie && !(event.getEntityLiving() instanceof EntityPigZombie) && rand.nextInt(26) <= 2 + 2 * looting) addDrop(event, new ItemStack(Items.SKULL, 1, 2)); else if(event.getEntityLiving() instanceof EntityCreeper && rand.nextInt(26) <= 2 + 2 * looting) addDrop(event, new ItemStack(Items.SKULL, 1, 4)); else if(event.getEntityLiving() instanceof EntityPlayer && rand.nextInt(11) <= 1 + looting) { ItemStack stack = new ItemStack(Items.SKULL, 1, 3); ItemNBTHelper.setString(stack, "SkullOwner", event.getEntityLiving().getName()); addDrop(event, stack); } else if(event.getEntityLiving() instanceof EntityDoppleganger && rand.nextInt(13) < 1 + looting) addDrop(event, new ItemStack(ModItems.gaiaHead)); } } }
@Override public int getLootingValue(@Nonnull IFarmingTool tool) { ItemStack stack = getTool(tool); return Math.max(EnchantmentHelper.getEnchantmentLevel(Enchantments.LOOTING, stack), EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack)); }
if(stageTicks >= 100) { for(EnchantmentData data : enchants) if(EnchantmentHelper.getEnchantmentLevel(data.enchantment, itemToEnchant) == 0) itemToEnchant.addEnchantment(data.enchantment, data.enchantmentLevel);
/** * Original: "Called whenever a mob is damaged with an item that has this enchantment on it." * <p> * Correct: "Called whenever a mob is damaged and an item that has this enchantment on it is in the main hand, the off hand or any armor slot." (MC-131637) */ @Override public void onEntityDamaged(@Nonnull EntityLivingBase user, @Nonnull Entity entityHit, int level) { if (entityHit instanceof EntityLivingBase && EnchantmentHelper.getEnchantmentLevel(this, user.getHeldItemMainhand()) > 0) { ((EntityLivingBase) entityHit).addPotionEffect(new PotionEffect(MobEffects.WITHER, 200)); } }
/** * Original: "Called whenever a mob is damaged with an item that has this enchantment on it." * <p> * Correct: "Called whenever a mob is damaged and an item that has this enchantment on it is in the main hand, the off hand or any armor slot." (MC-131637) */ @Override public void onEntityDamaged(@Nonnull EntityLivingBase user, @Nonnull Entity entityHit, int level) { if (entityHit instanceof EntityLivingBase && EnchantmentHelper.getEnchantmentLevel(this, user.getHeldItemMainhand()) > 0) { ((EntityLivingBase) entityHit).addPotionEffect(new PotionEffect(MobEffects.WITHER, 200)); } }
protected int useEnergy(ItemStack stack, boolean simulate) { int unbreakingLevel = MathHelper.clamp(EnchantmentHelper.getEnchantmentLevel(Enchantments.UNBREAKING, stack), 0, 10); if (MathHelper.RANDOM.nextInt(2 + unbreakingLevel) >= 2) { return 0; } return extractEnergy(stack, isEmpowered(stack) ? energyPerUseCharged : energyPerUse, simulate); }
protected int useEnergy(ItemStack stack, boolean simulate) { int unbreakingLevel = MathHelper.clamp(EnchantmentHelper.getEnchantmentLevel(Enchantments.UNBREAKING, stack), 0, 10); if (MathHelper.RANDOM.nextInt(2 + unbreakingLevel) >= 2) { return 0; } return extractEnergy(stack, isEmpowered(stack) ? energyPerUseCharged : energyPerUse, simulate); }
public static List<ItemStack> getBlockDrops(World world, EntityPlayer player, IBlockState state, ItemStack stack, BlockPos pos) { if (EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0 && state.getBlock().canSilkHarvest(world, pos, state, player)) { return Lists.newArrayList(new ItemStack(state.getBlock(), 1, state.getBlock().getMetaFromState(state))); } return state.getBlock().getDrops(world, pos, state, EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack)); }
private boolean canBeMended(@Nonnull ItemStack stack) { return TankConfig.allowMending.get() && Prep.isValid(stack) && stack.isItemDamaged() && EnchantmentHelper.getEnchantmentLevel(Enchantments.MENDING, stack) > 0 && tank.hasFluid(Fluids.XP_JUICE.getFluid()); }
@Override public int getCapacity(ItemStack stack) { if (!typeMap.containsKey(ItemHelper.getItemDamage(stack))) { return 0; } int capacity = typeMap.get(ItemHelper.getItemDamage(stack)).capacity; int enchant = EnchantmentHelper.getEnchantmentLevel(CoreEnchantments.holding, stack); return capacity + capacity * enchant / 2; }
public static int getStorageIndex(ItemStack stack) { if (isCreative(stack) || isVoid(stack) || !typeMap.containsKey(ItemHelper.getItemDamage(stack))) { return 0; } int level = typeMap.get(ItemHelper.getItemDamage(stack)).level; int enchant = EnchantmentHelper.getEnchantmentLevel(CoreEnchantments.holding, stack); return Math.min(1 + level + enchant, CoreProps.STORAGE_SIZE.length - 1); }
public static BreakEvent createBreakEvent(IBlockState state, EntityPlayer player, World world, BlockPos pos, ItemStack tool) { BreakEvent event = new BreakEvent(world, pos, state, player); if (state == null || !canHarvestBlock(state.getBlock(), player, world, pos, tool) || (state.getBlock().canSilkHarvest(world, pos, world.getBlockState(pos), player) && EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, tool) > 0)) event.setExpToDrop(0); else event.setExpToDrop(state.getBlock().getExpDrop(state, world, pos, EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, tool))); return event; }