Buggy code:
public class ExtendedPropertiesHungryAnimal implements IExtendedEntityProperties { protected static String key = "ExtendedPropertiesHungryAnimal" ; public double hunger_max ; public double hunger_bmr ; public HashMap < HashItem , Double > hunger_food = new HashMap < HashItem , Double > ( ) ; public HashMap < HashBlock , Double > hunger_block = new HashMap < HashBlock , Double > ( ) ; public ArrayList < DropMeat > drop_meat = new ArrayList < DropMeat > ( ) ; public ArrayList < DropRandom > drop_random = new ArrayList < DropRandom > ( ) ; public ArrayList < DropRare > drop_rare = new ArrayList < DropRare > ( ) ; public double courtship_hunger ; public double courtship_probability ; public double courtship_hungerCondition ; public double excretion_factor ; public double child_hunger ; public double attribute_maxhealth ; public double attribute_movespeed ; public double crank_production ; public double crank_food_consumption ; public double taming_factor = 0.998 ; public EntityAnimal entity ; public World worldObj ; public double hunger ; public double excretion ; public double taming ; public EntityAIAvoidPlayer ai_avoidPlayer ; public EntityAIMoveToTrough ai_moveToFoodbox ; public EntityAICrank ai_crank ; public void acceptProperty ( GeneralProperty genericProperty ) { } @ Override public void saveNBTData ( NBTTagCompound compound ) { } @ Override public void loadNBTData ( NBTTagCompound compound ) { } @ Override public void init ( Entity entity , World world ) { } public void postInit ( ) { } protected void applyEntityAttributes ( ) { } public void dropFewItems ( boolean isHitByPlayer , int looting , List < EntityItem > drops ) { } public double getHungry ( ) { } protected void removeAI ( Class [ ] target ) { } public double getFoodHunger ( ItemStack food ) { } public double getBlockHunger ( IBlockState block ) { } public boolean canEatFood ( ItemStack food ) { } public boolean canEatBlock ( IBlockState block ) { } public void addHunger ( double value ) { } public void subHunger ( double value ) { } public void eatFoodBonus ( ItemStack item ) { } public void eatBlockBonus ( IBlockState block ) { } public void update ( ) { } private void updateHunger ( ) { } private void updateCourtship ( ) { } private void updateExcretion ( ) { if ( ( this . excretion ) > 1 ) { this . excretion -= 1 ; int x = ( ( int ) ( this . entity . posX ) ) ; int y = ( ( int ) ( this . entity . posY ) ) ; int z = ( ( int ) ( this . entity . posZ ) ) ; BlockPos pos = new BlockPos ( x , y , z ) ; IBlockState meta = this . worldObj . getBlockState ( pos ) ; Block block = meta . getBlock ( ) ; <START_BUG> if ( block . equals ( excreta ) ) { <END_BUG> int exc = ( ( oortcloud . hungryanimals . blocks . BlockExcreta . EnumType ) ( meta . getValue ( CONTENT ) ) ) . getExcreta ( ) ; int man = ( ( oortcloud . hungryanimals . blocks . BlockExcreta . EnumType ) ( meta . getValue ( CONTENT ) ) ) . getManure ( ) ; if ( ( exc + man ) < 4 ) { this . worldObj . setBlockState ( pos , meta . withProperty ( CONTENT , EnumType . getValue ( ( exc + 1 ) , man ) ) , 2 ) ; } else if ( ( exc + man ) == 4 ) { } } else if ( ( block . isAir ( this . worldObj , pos ) ) || ( block . isReplaceable ( this . worldObj , pos ) ) ) { this . worldObj . setBlockState ( pos , excreta . getDefaultState ( ) . withProperty ( CONTENT , EnumType . getValue ( 1 , 0 ) ) , 2 ) ; } } } private void updateEnvironmentalEffet ( ) { } private void updateTaming ( ) { } private void updateRecovery ( ) { } public void onStarve ( ) { } public void onAttackedByPlayer ( float damage , DamageSource source ) { } public boolean interact ( EntityPlayer entity ) { } public double getBlockPathWeight ( int x , int y , int z ) { } }

Fix:
if ( block == ( ModBlocks . excreta ) ) {