Program: 134008
Project: 134008
Buggy source:
/** 
 * Adds the ability to bend the given element to the specified Player.
 * @param sender The CommandSender who issued the command
 * @param target The Player to add the element to
 * @param element The element to add to the Player
 */
private void add(CommandSender sender,Player target,String element){
  element=getElement(element);
  Element e=Element.getType(element);
  BendingPlayer bPlayer=GeneralMethods.getBendingPlayer(target);
  bPlayer.setElement(e);
  ChatColor color=GeneralMethods.getElementColor(e);
  if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') {
    target.sendMessage(color + "String_Node_Str" + Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
  }
 else   if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
    target.sendMessage(color + "String_Node_Str" + Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
  }
  if (!(sender instanceof Player) || !((Player)sender).equals(target)) {
    if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') {
      sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color+ "String_Node_Str"+ Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
    }
 else     if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
      sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color+ "String_Node_Str"+ Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
    }
  }
  GeneralMethods.removeUnusableAbilities(sender.getName());
  GeneralMethods.saveElements(bPlayer);
  Bukkit.getServer().getPluginManager().callEvent(new PlayerChangeElementEvent(sender,target,e,Result.CHOOSE));
}

Fixed version (ground truth):
/** 
 * Adds the ability to bend the given element to the specified Player.
 * @param sender The CommandSender who issued the command
 * @param target The Player to add the element to
 * @param element The element to add to the Player
 */
private void add(CommandSender sender,Player target,String element){
  element=getElement(element);
  Element e=Element.getType(element);
  BendingPlayer bPlayer=GeneralMethods.getBendingPlayer(target);
  bPlayer.setElement(e);
  ChatColor color=GeneralMethods.getElementColor(e);
  if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') {
    target.sendMessage(color + "String_Node_Str" + Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
  }
 else   if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
    target.sendMessage(color + "String_Node_Str" + Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
  }
  if (!(sender instanceof Player) || !((Player)sender).equals(target)) {
    if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') {
      sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color+ "String_Node_Str"+ Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
    }
 else     if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
      sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color+ "String_Node_Str"+ Character.toString(element.charAt(0)).toUpperCase()+ element.substring(1)+ "String_Node_Str");
    }
  }
  GeneralMethods.removeUnusableAbilities(target.getName());
  GeneralMethods.saveElements(bPlayer);
  Bukkit.getServer().getPluginManager().callEvent(new PlayerChangeElementEvent(sender,target,e,Result.CHOOSE));
}