Program: 134105
Project: 134105
Buggy source:
@EventHandler(priority=EventPriority.NORMAL,ignoreCancelled=true) public void onPlayerDeath(PlayerDeathEvent event){
  if (EarthArmor.instances.containsKey(event.getEntity())) {
    List<ItemStack> drops=event.getDrops();
    List<ItemStack> newdrops=new ArrayList<ItemStack>();
    for (int i=0; i < drops.size(); i++) {
      if (!(drops.get(i).getType() == Material.LEATHER_BOOTS || drops.get(i).getType() == Material.LEATHER_CHESTPLATE || drops.get(i).getType() == Material.LEATHER_HELMET || drops.get(i).getType() == Material.LEATHER_LEGGINGS || drops.get(i).getType() == Material.AIR))       newdrops.add((drops.get(i)));
    }
    if (EarthArmor.instances.get(event.getEntity()).oldarmor != null) {
      for (      ItemStack is : EarthArmor.instances.get(event.getEntity()).oldarmor) {
        if (!(is.getType() == Material.AIR))         newdrops.add(is);
      }
    }
    event.getDrops().clear();
    event.getDrops().addAll(newdrops);
    EarthArmor.removeEffect(event.getEntity());
  }
  if (MetalClips.instances.containsKey(event.getEntity())) {
    MetalClips.instances.get(event.getEntity()).remove();
    List<ItemStack> drops=event.getDrops();
    List<ItemStack> newdrops=new ArrayList<ItemStack>();
    for (int i=0; i < drops.size(); i++) {
      if (!(drops.get(i).getType() == Material.IRON_HELMET || drops.get(i).getType() == Material.IRON_CHESTPLATE || drops.get(i).getType() == Material.IRON_LEGGINGS || drops.get(i).getType() == Material.IRON_BOOTS || drops.get(i).getType() == Material.AIR))       newdrops.add((drops.get(i)));
    }
    event.getDrops().clear();
    event.getDrops().addAll(newdrops);
  }
  if (bendingDeathPlayer.containsKey(event.getEntity())) {
    String message=ConfigManager.deathMsgConfig.getConfig().getString("String_Node_Str");
    String ability=bendingDeathPlayer.get(event.getEntity());
    String element=null;
    if (GeneralMethods.abilityExists(ability)) {
      element=GeneralMethods.getAbilityElement(ability).name();
    }
    if (ComboManager.checkForValidCombo(event.getEntity().getKiller()).getName().equalsIgnoreCase(ability)) {
      element=GeneralMethods.getAbilityElement(GeneralMethods.getLastUsedAbility(event.getEntity().getKiller(),false)).name();
      ability=element + "String_Node_Str";
    }
    if (ConfigManager.deathMsgConfig.getConfig().contains(element + "String_Node_Str" + ability)) {
      message=ConfigManager.deathMsgConfig.getConfig().getString(element + "String_Node_Str" + ability);
    }
    message=message.replace("String_Node_Str",event.getEntity().getName()).replace("String_Node_Str",event.getEntity().getKiller().getName()).replace("String_Node_Str",GeneralMethods.getAbilityColor(GeneralMethods.getLastUsedAbility(event.getEntity().getKiller(),false)) + ability);
    event.setDeathMessage(message);
    bendingDeathPlayer.remove(event.getEntity());
  }
}

Fixed version (ground truth):
@EventHandler(priority=EventPriority.NORMAL,ignoreCancelled=true) public void onPlayerDeath(PlayerDeathEvent event){
  if (event.getEntity().getKiller() == null) {
    return;
  }
  if (EarthArmor.instances.containsKey(event.getEntity())) {
    List<ItemStack> drops=event.getDrops();
    List<ItemStack> newdrops=new ArrayList<ItemStack>();
    for (int i=0; i < drops.size(); i++) {
      if (!(drops.get(i).getType() == Material.LEATHER_BOOTS || drops.get(i).getType() == Material.LEATHER_CHESTPLATE || drops.get(i).getType() == Material.LEATHER_HELMET || drops.get(i).getType() == Material.LEATHER_LEGGINGS || drops.get(i).getType() == Material.AIR))       newdrops.add((drops.get(i)));
    }
    if (EarthArmor.instances.get(event.getEntity()).oldarmor != null) {
      for (      ItemStack is : EarthArmor.instances.get(event.getEntity()).oldarmor) {
        if (!(is.getType() == Material.AIR))         newdrops.add(is);
      }
    }
    event.getDrops().clear();
    event.getDrops().addAll(newdrops);
    EarthArmor.removeEffect(event.getEntity());
  }
  if (MetalClips.instances.containsKey(event.getEntity())) {
    MetalClips.instances.get(event.getEntity()).remove();
    List<ItemStack> drops=event.getDrops();
    List<ItemStack> newdrops=new ArrayList<ItemStack>();
    for (int i=0; i < drops.size(); i++) {
      if (!(drops.get(i).getType() == Material.IRON_HELMET || drops.get(i).getType() == Material.IRON_CHESTPLATE || drops.get(i).getType() == Material.IRON_LEGGINGS || drops.get(i).getType() == Material.IRON_BOOTS || drops.get(i).getType() == Material.AIR))       newdrops.add((drops.get(i)));
    }
    event.getDrops().clear();
    event.getDrops().addAll(newdrops);
  }
  if (bendingDeathPlayer.containsKey(event.getEntity())) {
    String message=ConfigManager.deathMsgConfig.getConfig().getString("String_Node_Str");
    String ability=bendingDeathPlayer.get(event.getEntity());
    String element=null;
    if (GeneralMethods.abilityExists(ability)) {
      element=GeneralMethods.getAbilityElement(ability).name();
    }
    if (ComboManager.checkForValidCombo(event.getEntity().getKiller()).getName().equalsIgnoreCase(ability)) {
      element=GeneralMethods.getAbilityElement(GeneralMethods.getLastUsedAbility(event.getEntity().getKiller(),false)).name();
      ability=element + "String_Node_Str";
    }
    if (ConfigManager.deathMsgConfig.getConfig().contains(element + "String_Node_Str" + ability)) {
      message=ConfigManager.deathMsgConfig.getConfig().getString(element + "String_Node_Str" + ability);
    }
    message=message.replace("String_Node_Str",event.getEntity().getName()).replace("String_Node_Str",event.getEntity().getKiller().getName()).replace("String_Node_Str",GeneralMethods.getAbilityColor(GeneralMethods.getLastUsedAbility(event.getEntity().getKiller(),false)) + ability);
    event.setDeathMessage(message);
    bendingDeathPlayer.remove(event.getEntity());
  }
}