/** * @return the bow trying to fire */ public ItemStack getBow() { return event.getBow(); }
ItemStack stack = QuiverArrowRegistry.getArrowContainer(event.getBow(), event.getEntityPlayer()); if(stack.getItem() instanceof IArrowContainer2){ IArrowContainer2 quiver = (IArrowContainer2) stack.getItem(); entityarrow.setIsCritical(true); if(arrowEvent.addEnchantments){ int k = EnchantmentHelper.getEnchantmentLevel(Enchantments.POWER, event.getBow()); if (k > 0){ entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D); int l = EnchantmentHelper.getEnchantmentLevel(Enchantments.PUNCH, event.getBow()); if (l > 0){ entityarrow.setKnockbackStrength(l); if (EnchantmentHelper.getEnchantmentLevel(Enchantments.FLAME, event.getBow()) > 0){ entityarrow.setFire(100); event.getBow().damageItem(arrowEvent.bowDamage, event.getEntityPlayer()); event.getEntityPlayer().addStat(StatList.getObjectUseStats(event.getBow().getItem())); if (!world.isRemote) world.spawnEntity(entityarrow); quiver.onArrowFired(world, arrowEvent.getPlayer(), stack, event.getBow(), entityarrow);
@SubscribeEvent public void onPlayerUpdate(ArrowLooseEvent event) { ItemStack stackBow = event.getBow(); int level = this.getCurrentLevelTool(stackBow); if (level <= 0) { return; } EntityPlayer player = event.getEntityPlayer(); World worldIn = player.world; if (worldIn.isRemote == false) { float charge = ItemBow.getArrowVelocity(stackBow.getMaxItemUseDuration() - event.getCharge()); //use cross product to push arrows out to left and right Vec3d playerDirection = UtilEntity.lookVector(player.rotationYaw, player.rotationPitch); Vec3d left = playerDirection.crossProduct(new Vec3d(0, 1, 0)); Vec3d right = playerDirection.crossProduct(new Vec3d(0, -1, 0)); spawnArrow(worldIn, player, stackBow, charge, left.normalize()); spawnArrow(worldIn, player, stackBow, charge, right.normalize()); } }
ItemStack stack = event.getBow(); EntityPlayer player = event.getEntityPlayer();
@SubscribeEvent (priority = EventPriority.HIGHEST) public void handleArrowLooseEvent(ArrowLooseEvent event) { if (!(event.getBow().getItem() == Items.BOW) && !(event.getBow().getItem() instanceof IToolBow)) { return; ItemStack bowStack = event.getBow(); IToolBow bow = null; EntityPlayer player = event.getEntityPlayer();