OLD requestpetuseitem.java code (with ur destroyItem thingy) if ( curFed < maxFed ) { //pet.destroyItem("Feed", item.getObjectId(), item.getCount(), pet, false); pet.setCurrentFed(pet.getCurrentFed() + item.getCount()); } else { pet.destroyItem("Feed", item.getObjectId(), pet.getMaxFed() - pet.getCurrentFed(), pet, false); pet.setCurrentFed(pet.getMaxFed()); } pet.broadcastStatusUpdate(); NEW CODE (with old destroy method) if ( curFed < maxFed ) { final int foodNeeded = (int)( ( maxFed - curFed ) / Config.PET_FOOD_RATE); // if pet has food in inventory if ( items > 0 ) { // if pet has more food than it needs if ( items > foodNeeded ) { // consume only the quantity it needs pet.setCurrentFed( curFed + (int)(foodNeeded * Config.PET_FOOD_RATE) ); pet.removeItemFromInventory( item, foodNeeded ); } else { // consume all food from inventory pet.setCurrentFed( curFed + (int)(items * Config.PET_FOOD_RATE) ); pet.removeItemFromInventory( item, items ); } } pet.broadcastStatusUpdate(); }