Program: 44414
Project: 44414
Buggy source:
public void registerCreatureDeath(Player killer,LivingEntity tamedCreature,LivingEntity killedCreature,List<ItemStack> drops){
  if (killer.getItemInHand().getType().equals(Material.BOW) && !hasBowRewards) {
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noBowRewardMessage,killer);
    return;
  }
 else   if (ecoEntityUtil.isUnderSeaLevel(killer) && !canHuntUnderSeaLevel) {
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noBowRewardMessage,killer);
    return;
  }
 else   if (ecoEntityUtil.isOwner(killer,killedCreature)) {
    return;
  }
 else   if (ecoCreature.mobArenaHandler != null && ecoCreature.mobArenaHandler.isPlayerInArena(killer)) {
    return;
  }
 else   if ((ecoEntityUtil.isNearSpawner(killer) || ecoEntityUtil.isNearSpawner(killedCreature)) && !canCampSpawner) {
    if (shouldClearCampDrops) {
      drops.clear();
    }
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noCampMessage,killer);
    return;
  }
 else   if (!hasIgnoreCase(killer,"String_Node_Str" + ecoEntityUtil.getCreatureType(killedCreature).getName())) {
    return;
  }
  ecoReward reward=rewards.get(RewardType.fromEntity(killedCreature));
  if (reward == null) {
    log.warning("String_Node_Str");
  }
 else {
    String weaponName=tamedCreature != null ? ecoEntityUtil.getCreatureType(tamedCreature).getName() : Material.getMaterial(killer.getItemInHand().getTypeId()).name();
    registerReward(killer,reward,weaponName);
  }
}

Fixed version (ground truth):
public void registerCreatureDeath(Player killer,LivingEntity tamedCreature,LivingEntity killedCreature,List<ItemStack> drops){
  if (killer.getItemInHand().getType().equals(Material.BOW) && !hasBowRewards) {
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noBowRewardMessage,killer);
    return;
  }
 else   if (ecoEntityUtil.isUnderSeaLevel(killer) && !canHuntUnderSeaLevel) {
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noBowRewardMessage,killer);
    return;
  }
 else   if (ecoEntityUtil.isOwner(killer,killedCreature)) {
    return;
  }
 else   if (ecoCreature.mobArenaHandler != null && ecoCreature.mobArenaHandler.isPlayerInArena(killer)) {
    return;
  }
 else   if ((ecoEntityUtil.isNearSpawner(killer) || ecoEntityUtil.isNearSpawner(killedCreature)) && !canCampSpawner) {
    if (shouldClearCampDrops) {
      drops.clear();
    }
    ecoCreature.getMessageManager(killer).sendMessage(ecoCreature.getMessageManager(killer).noCampMessage,killer);
    return;
  }
 else   if (!hasIgnoreCase(killer,"String_Node_Str" + ecoEntityUtil.getCreatureType(killedCreature).getName())) {
    return;
  }
  ecoReward reward=rewards.get(RewardType.fromEntity(killedCreature));
  if (reward == null) {
    log.warning("String_Node_Str");
  }
 else {
    String weaponName=tamedCreature != null ? ecoEntityUtil.getCreatureType(tamedCreature).getName() : Material.getMaterial(killer.getItemInHand().getTypeId()).name();
    registerReward(killer,reward,weaponName);
    if (ecoCreature.getRewardManager(killer).shouldOverrideDrops) {
      drops.clear();
    }
    drops.addAll(reward.computeDrops());
  }
}