Program: 187586
Project: 187586
Buggy source:
/** 
 * Is called when player rightclicks this MyPet return: true: there was a reaction on rightclick false: no reaction on rightclick
 */
public boolean a(EntityHuman entityhuman){
  if (super.a(entityhuman)) {
    return true;
  }
  ItemStack itemStack=entityhuman.inventory.getItemInHand();
  if (itemStack == null) {
    return false;
  }
  if (isMyPet() && entityhuman.name.equalsIgnoreCase(myPet.getOwner().getName())) {
    if (this.hasRider()) {
      this.getOwner().mount(null);
      return true;
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Ride.item.getId() && canMove()) {
        this.getOwner().mount(this);
        return true;
      }
    }
 else     if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Control.item.getId()) {
        return true;
      }
    }
  }
  if (canEat(itemStack)) {
    int addHunger=6;
    if (getHealth() < getMaxHealth()) {
      if (!entityhuman.abilities.canInstantlyBuild) {
        --itemStack.count;
      }
      addHunger-=Math.min(3,getMaxHealth() - getHealth()) * 2;
      this.heal(Math.min(3,getMaxHealth() - getHealth()),RegainReason.EATING);
      if (itemStack.count <= 0) {
        entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex,null);
      }
      this.tamedEffect(true);
    }
 else     if (myPet.getHungerValue() < 100) {
      if (!entityhuman.abilities.canInstantlyBuild) {
        --itemStack.count;
      }
      if (itemStack.count <= 0) {
        entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex,null);
      }
      this.tamedEffect(true);
    }
    if (addHunger > 0 && myPet.getHungerValue() < 100) {
      myPet.setHungerValue(myPet.getHungerValue() + addHunger);
      addHunger=0;
    }
    if (addHunger < 6) {
      return true;
    }
  }
  return false;
}

Fixed version (ground truth):
/** 
 * Is called when player rightclicks this MyPet return: true: there was a reaction on rightclick false: no reaction on rightclick
 */
public boolean a(EntityHuman entityhuman){
  if (super.a(entityhuman)) {
    return true;
  }
  ItemStack itemStack=entityhuman.inventory.getItemInHand();
  if (itemStack == null) {
    return false;
  }
  if (isMyPet() && entityhuman.name.equalsIgnoreCase(myPet.getOwner().getName())) {
    if (this.hasRider()) {
      this.getOwner().mount(null);
      return true;
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Ride.item.getId() && canMove()) {
        if (MyPetPermissions.hasExtended((Player)this.getOwner().getBukkitEntity(),"String_Node_Str")) {
          this.getOwner().mount(this);
          return true;
        }
 else {
          getMyPet().sendMessageToOwner(MyPetUtil.setColors(MyPetLanguage.getString("String_Node_Str")));
        }
      }
    }
 else     if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Control.item.getId()) {
        return true;
      }
    }
  }
  if (canEat(itemStack)) {
    if (!MyPetPermissions.hasExtended((Player)this.getOwner().getBukkitEntity(),"String_Node_Str")) {
      return true;
    }
    int addHunger=6;
    if (getHealth() < getMaxHealth()) {
      if (!entityhuman.abilities.canInstantlyBuild) {
        --itemStack.count;
      }
      addHunger-=Math.min(3,getMaxHealth() - getHealth()) * 2;
      this.heal(Math.min(3,getMaxHealth() - getHealth()),RegainReason.EATING);
      if (itemStack.count <= 0) {
        entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex,null);
      }
      this.tamedEffect(true);
    }
 else     if (myPet.getHungerValue() < 100) {
      if (!entityhuman.abilities.canInstantlyBuild) {
        --itemStack.count;
      }
      if (itemStack.count <= 0) {
        entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex,null);
      }
      this.tamedEffect(true);
    }
    if (addHunger > 0 && myPet.getHungerValue() < 100) {
      myPet.setHungerValue(myPet.getHungerValue() + addHunger);
      addHunger=0;
    }
    if (addHunger < 6) {
      return true;
    }
  }
  return false;
}