Program: 187546
Project: 187546
Buggy source:
/** 
 * Is called when player rightclicks this MyPet return: true: there was a reaction on rightclick false: no reaction on rightclick -> interact()
 */
public boolean a_(EntityHuman entityhuman){
  if (super.a_(entityhuman)) {
    return true;
  }
  ItemStack itemStack=entityhuman.inventory.getItemInHand();
  if (itemStack == null) {
    return false;
  }
  Player owner=this.getOwner().getPlayer();
  if (isMyPet() && entityhuman.getBukkitEntity() == owner) {
    if (this.hasRider()) {
      ((CraftPlayer)owner).getHandle().mount(null);
      return true;
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Ride.ITEM.getId() && canMove()) {
        if (MyPetPermissions.hasExtended(owner,"String_Node_Str")) {
          ((CraftPlayer)owner).getHandle().mount(this);
          return true;
        }
 else {
          getMyPet().sendMessageToOwner(MyPetBukkitUtil.setColors(MyPetLanguage.getString("String_Node_Str")));
        }
      }
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Control.ITEM.getId()) {
        return true;
      }
    }
  }
  if (canEat(itemStack)) {
    if (owner != null && !MyPetPermissions.hasExtended(owner,"String_Node_Str")) {
      return false;
    }
    if (this.petTargetSelector.hasGoal("String_Node_Str")) {
      MyPetAIDuelTarget duelTarget=(MyPetAIDuelTarget)this.petTargetSelector.getGoal("String_Node_Str");
      if (duelTarget.getDuelOpponent() != null) {
        return true;
      }
    }
    int addHunger=MyPetConfiguration.HUNGER_SYSTEM_POINTS_PER_FEED;
    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 < MyPetConfiguration.HUNGER_SYSTEM_POINTS_PER_FEED) {
      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 -> interact()
 */
public boolean a_(EntityHuman entityhuman){
  if (super.a_(entityhuman)) {
    return true;
  }
  ItemStack itemStack=entityhuman.inventory.getItemInHand();
  if (itemStack == null) {
    return false;
  }
  Player owner=this.getOwner().getPlayer();
  if (isMyPet() && entityhuman.getBukkitEntity() == owner) {
    if (this.hasRider()) {
      ((CraftPlayer)owner).getHandle().setPassengerOf(null);
      return true;
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Ride.ITEM.getId() && canMove()) {
        if (MyPetPermissions.hasExtended(owner,"String_Node_Str")) {
          ((CraftPlayer)owner).getHandle().setPassengerOf(this);
          return true;
        }
 else {
          getMyPet().sendMessageToOwner(MyPetBukkitUtil.setColors(MyPetLanguage.getString("String_Node_Str")));
        }
      }
    }
    if (myPet.getSkills().isSkillActive("String_Node_Str")) {
      if (itemStack.id == Control.ITEM.getId()) {
        return true;
      }
    }
  }
  if (canEat(itemStack)) {
    if (owner != null && !MyPetPermissions.hasExtended(owner,"String_Node_Str")) {
      return false;
    }
    if (this.petTargetSelector.hasGoal("String_Node_Str")) {
      MyPetAIDuelTarget duelTarget=(MyPetAIDuelTarget)this.petTargetSelector.getGoal("String_Node_Str");
      if (duelTarget.getDuelOpponent() != null) {
        return true;
      }
    }
    int addHunger=MyPetConfiguration.HUNGER_SYSTEM_POINTS_PER_FEED;
    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 < MyPetConfiguration.HUNGER_SYSTEM_POINTS_PER_FEED) {
      return true;
    }
  }
  return false;
}