Program: 1880
Project: 1880
Buggy source:
/** 
 * Display a trader's balance
 * @param player
 * @param npc
 */
@CommandRequirements(requiredType="String_Node_Str",requireSelected=true) @Command(aliases="String_Node_Str",usage="String_Node_Str",desc="String_Node_Str",modifiers="String_Node_Str",min=1,max=3) @CommandPermissions("String_Node_Str") public static void controlMoney(CommandContext args,Player player,HumanNPC npc){
  if (!EconomyHandler.useEconPlugin()) {
    player.sendMessage(MessageUtils.noEconomyMessage);
    return;
  }
switch (args.argsLength()) {
case 1:
    player.sendMessage(StringUtils.wrap(npc.getName()) + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(npc.getBalance()))+ "String_Node_Str");
  break;
case 3:
double amount;
try {
amount=Double.parseDouble(args.getString(2));
}
 catch (NumberFormatException e) {
player.sendMessage(ChatColor.RED + "String_Node_Str");
return;
}
if (args.getString(1).contains("String_Node_Str")) {
if (EconomyHandler.canBuy(new Payment(amount,true),player)) {
EconomyHandler.pay(new Payment(-amount,true),npc,-1);
EconomyHandler.pay(new Payment(amount,true),player,-1);
player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount))+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.wrap(ServerEconomyInterface.getFormattedBalance(player.getName()),ChatColor.GREEN)+ "String_Node_Str");
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount - ServerEconomyInterface.getBalance(player.getName())),ChatColor.RED)+ "String_Node_Str");
}
}
 else if (args.getString(1).contains("String_Node_Str")) {
if (EconomyHandler.canBuy(new Payment(amount,true),npc)) {
EconomyHandler.pay(new Payment(amount,true),npc,-1);
EconomyHandler.pay(new Payment(-amount,true),player,-1);
player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount))+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.wrap(ServerEconomyInterface.getFormattedBalance(player.getName()))+ "String_Node_Str");
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount - npc.getBalance()),ChatColor.RED)+ "String_Node_Str");
}
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(args.getString(1),ChatColor.RED)+ "String_Node_Str");
}
break;
default :
Messaging.sendError(player,"String_Node_Str");
break;
}
}

Fixed version (ground truth):
/** 
 * Display a trader's balance
 * @param player
 * @param npc
 */
@Command(aliases="String_Node_Str",usage="String_Node_Str",desc="String_Node_Str",modifiers="String_Node_Str",min=1,max=3) @CommandPermissions("String_Node_Str") public static void controlMoney(CommandContext args,Player player,HumanNPC npc){
  if (!EconomyHandler.useEconPlugin()) {
    player.sendMessage(MessageUtils.noEconomyMessage);
    return;
  }
switch (args.argsLength()) {
case 1:
    player.sendMessage(StringUtils.wrap(npc.getName()) + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(npc.getBalance()))+ "String_Node_Str");
  break;
case 3:
double amount;
try {
amount=Double.parseDouble(args.getString(2));
}
 catch (NumberFormatException e) {
player.sendMessage(ChatColor.RED + "String_Node_Str");
return;
}
if (args.getString(1).contains("String_Node_Str")) {
if (EconomyHandler.canBuy(new Payment(amount,true),player)) {
EconomyHandler.pay(new Payment(-amount,true),npc,-1);
EconomyHandler.pay(new Payment(amount,true),player,-1);
player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount))+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.wrap(ServerEconomyInterface.getFormattedBalance(player.getName()),ChatColor.GREEN)+ "String_Node_Str");
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount - ServerEconomyInterface.getBalance(player.getName())),ChatColor.RED)+ "String_Node_Str");
}
}
 else if (args.getString(1).contains("String_Node_Str")) {
if (EconomyHandler.canBuy(new Payment(amount,true),npc)) {
EconomyHandler.pay(new Payment(amount,true),npc,-1);
EconomyHandler.pay(new Payment(-amount,true),player,-1);
player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount))+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.wrap(ServerEconomyInterface.getFormattedBalance(player.getName()))+ "String_Node_Str");
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(ServerEconomyInterface.format(amount - npc.getBalance()),ChatColor.RED)+ "String_Node_Str");
}
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.wrap(args.getString(1),ChatColor.RED)+ "String_Node_Str");
}
break;
default :
Messaging.sendError(player,"String_Node_Str");
break;
}
}