Buggy code:
public abstract class EntityPet extends EntityCreature implements IAnimal , IEntityPet { protected IPet pet ; public PetGoalSelector petGoalSelector ; protected static Field FIELD_JUMP = null ; protected double jumpHeight ; protected float rideSpeed ; public EntityLiving goalTarget = null ; public boolean shouldVanish ; public EntityPet ( World world ) { } public EntityPet ( World world , IPet pet ) { } private void initiateEntityPet ( ) { this . setSize ( ) ; this . fireProof = true ; if ( ( this . FIELD_JUMP ) == null ) { try { <START_BUG> this . FIELD_JUMP = EntityLiving . class . getDeclaredField ( "aW" ) ; <END_BUG> this . FIELD_JUMP . setAccessible ( true ) ; } catch ( NoSuchFieldException e ) { e . printStackTrace ( ) ; } } this . getBukkitEntity ( ) . setMaxHealth ( pet . getPetType ( ) . getMaxHealth ( ) ) ; this . setHealth ( ( ( float ) ( pet . getPetType ( ) . getMaxHealth ( ) ) ) ) ; this . jumpHeight = EchoPet . getOptions ( ) . getRideJumpHeight ( this . getPet ( ) . getPetType ( ) ) ; this . rideSpeed = EchoPet . getOptions ( ) . getRideSpeed ( this . getPet ( ) . getPetType ( ) ) ; this . setPathfinding ( ) ; } public PetType getEntityPetType ( ) { } @ Override public void resizeBoundingBox ( boolean flag ) { } protected void setSize ( ) { } @ Override public boolean isPersistent ( ) { } public IPet getPet ( ) { } public Player getPlayerOwner ( ) { } public Location getLocation ( ) { } public void setVelocity ( Vector vel ) { } public Random random ( ) { } @ Override public PetGoalSelector getPetGoalSelector ( ) { } @ Override public boolean isDead ( ) { } @ Override public void setShouldVanish ( boolean flag ) { } @ Override public void setTarget ( LivingEntity livingEntity ) { } @ Override public LivingEntity getTarget ( ) { } public boolean attack ( Entity entity ) { } public boolean attack ( Entity entity , float damage ) { } public boolean attack ( Entity entity , DamageSource damageSource , float damage ) { } public void setPathfinding ( ) { } @ Override public CraftCreature getBukkitEntity ( ) { } @ Override public boolean onInteract ( Player p ) { } @ Override public boolean a ( EntityHuman human ) { } @ Override public void setPositionRotation ( double d0 , double d1 , double d2 , float f , float f1 ) { } public void setLocation ( Location l ) { } public void teleport ( Location l ) { } @ Override public void remove ( boolean makeSound ) { } public void onLive ( ) { } @ Override public void g ( float sideMot , float forwMot ) { } @ Override protected String z ( ) { } @ Override protected String bo ( ) { } protected abstract String getIdleSound ( ) { } protected abstract String getDeathSound ( ) { } @ Override public abstract SizeCategory getSizeCategory ( ) { } @ Override public void t_ ( ) { } @ Override protected void h ( ) { } @ Override protected void a ( BlockPosition blockposition , Block block ) { } protected void a ( int i , int j , int k , Block block ) { } protected void makeStepSound ( int i , int j , int k , Block block ) { } protected void initDatawatcher ( ) { } protected void makeStepSound ( ) { } protected void doJumpAnimation ( ) { } @ Override public void b ( NBTTagCompound nbttagcompound ) { } @ Override public boolean c ( NBTTagCompound nbttagcompound ) { } @ Override public void a ( NBTTagCompound nbttagcompound ) { } @ Override public boolean d ( NBTTagCompound nbttagcompound ) { } @ Override public void e ( NBTTagCompound nbttagcompound ) { } }

Fix:
this . FIELD_JUMP = EntityLiving . class . getDeclaredField ( "aY" ) ;