/** Counter the bow use fov jerkyness with the draw enchantment */
 @SubscribeEvent
 public void onBowFOV(FOVUpdateEvent event) {
   ItemStack stack = event.entity.getItemInUse();
   if (EnchantmentHelper.getEnchantmentLevel(BaseEnchantment.bowCharge, stack) > 0) {
     int i = event.entity.getItemInUseDuration();
     float f1 = (float) i / 20.0F;
     if (f1 > 1.0F) {
       f1 = 1.0F;
     } else {
       f1 *= f1;
     }
     event.newfov /= 1.0F - f1 * 0.15F;
   }
 }
  @SubscribeEvent
  @SideOnly(Side.CLIENT)
  public void onFOVUpdate(FOVUpdateEvent event) {
    if (!event.entity.isUsingItem()) return;

    ItemStack stack = event.entity.getItemInUse();

    if (stack.getItem() instanceof WeaponBow) {
      WeaponBow item = (WeaponBow) stack.getItem();

      if (item.updatesFOV()) {
        event.newfov =
            event.fov
                / (event.fov
                    + (item.getFOVValue(stack)
                        * getItemInUsePercentaje(event.entity, item.getFOVSpeedFactor(stack))));
      }
    }
  }