Program: 1898
Project: 1898
Buggy source:
@Override public boolean onCommand(CommandSender sender,Command command,String commandLabel,String[] args){
  if (!(sender instanceof Player)) {
    sender.sendMessage(MessageUtils.mustBeIngameMessage);
    return true;
  }
  Player player=(Player)sender;
  HumanNPC npc=null;
  if (NPCManager.validateSelected(player)) {
    npc=NPCManager.get(NPCManager.selectedNPCs.get(player.getName()));
  }
  if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canCreate(player,"String_Node_Str")) {
      if (!EconomyHandler.useEconomy() || EconomyHandler.canBuy(Operation.BASIC_CREATION,player)) {
        create(args,player);
      }
 else       if (EconomyHandler.useEconomy()) {
        sender.sendMessage(MessageUtils.getNoMoneyMessage(Operation.BASIC_CREATION,player));
      }
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && (args[0].equalsIgnoreCase("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      move(player,npc,npc.getName());
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if ((args.length == 1 || args.length == 2) && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      remove(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      rename(player,npc,args[1]);
      NPCManager.selectedNPCs.remove(player.getName());
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && (args[0].equalsIgnoreCase("String_Node_Str") || args[0].equalsIgnoreCase("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setColour(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.notOwnerMessage);
    }
    return true;
  }
 else   if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      addText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      resetText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setItemInHand(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && (args[0].equalsIgnoreCase("String_Node_Str") || args[0].startsWith("String_Node_Str") || args[0].startsWith("String_Node_Str")|| args[0].startsWith("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setArmor(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.teleport(npc.getNPCData().getLocation());
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canModify(player,npc,"String_Node_Str")) {
        copy(npc.getUID(),npc.getName(),player);
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      changeTalkWhenClose(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      changeLookWhenClose(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap("String_Node_Str" + npc.getUID())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canUse(player,npc,"String_Node_Str")) {
      if (!StringUtils.isNumber(args[1])) {
        player.sendMessage(ChatColor.RED + "String_Node_Str");
        return true;
      }
      npc=NPCManager.get(Integer.valueOf(args[1]));
      if (npc == null) {
        sender.sendMessage(ChatColor.RED + "String_Node_Str" + args[1]+ "String_Node_Str");
      }
 else {
        NPCManager.selectedNPCs.put(player.getName(),npc.getUID());
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap("String_Node_Str" + npc.getUID())+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str");
      }
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(npc.getOwner())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setOwner(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canUse(player,npc,"String_Node_Str")) {
switch (args.length) {
case 1:
        displayList(player,player,npc,"String_Node_Str");
      break;
case 2:
    if (StringUtils.isNumber(args[1])) {
      displayList(player,player,npc,args[1]);
    }
 else {
      if (ServerUtils.matchPlayer(player,args[1]) != null) {
        displayList(player,ServerUtils.matchPlayer(player,args[1]),npc,"String_Node_Str");
      }
 else {
        player.sendMessage(ChatColor.RED + "String_Node_Str");
      }
    }
  break;
case 3:
if (ServerUtils.matchPlayer(player,args[1]) != null) {
  displayList(player,ServerUtils.matchPlayer(player,args[1]),npc,args[2]);
}
 else {
  player.sendMessage(ChatColor.RED + "String_Node_Str");
}
break;
}
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
return true;
}
 else if ((commandLabel.equalsIgnoreCase("String_Node_Str") || commandLabel.equalsIgnoreCase("String_Node_Str"))) {
if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canUse(player,npc,"String_Node_Str")) {
int page=0;
boolean canSend=false;
if (StringUtils.isNumber(args[1])) {
page=Integer.parseInt(args[1]);
canSend=true;
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str");
}
if (canSend) {
HelpUtils.sendHelpPage(sender,page);
}
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
 else if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canUse(player,npc,"String_Node_Str")) {
HelpUtils.sendHelpPage(sender,1);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
return true;
}
 else if (commandLabel.equalsIgnoreCase("String_Node_Str")) {
if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canUse(player,npc,"String_Node_Str")) {
int page=0;
if (StringUtils.isNumber(args[1])) {
page=Integer.parseInt(args[1]);
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str");
return true;
}
HelpUtils.sendBasicHelpPage(sender,page);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
 else if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canUse(player,npc,"String_Node_Str")) {
HelpUtils.sendBasicHelpPage(sender,1);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
return true;
}
PropertyManager.get("String_Node_Str").saveState(npc);
return false;
}

Fixed version (ground truth):
@Override public boolean onCommand(CommandSender sender,Command command,String commandLabel,String[] args){
  if (!(sender instanceof Player)) {
    sender.sendMessage(MessageUtils.mustBeIngameMessage);
    return true;
  }
  Player player=(Player)sender;
  HumanNPC npc=null;
  if (NPCManager.validateSelected(player)) {
    npc=NPCManager.get(NPCManager.selectedNPCs.get(player.getName()));
  }
  if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canCreate(player,"String_Node_Str")) {
      if (!EconomyHandler.useEconomy() || EconomyHandler.canBuy(Operation.BASIC_CREATION,player)) {
        create(args,player);
      }
 else       if (EconomyHandler.useEconomy()) {
        sender.sendMessage(MessageUtils.getNoMoneyMessage(Operation.BASIC_CREATION,player));
      }
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && (args[0].equalsIgnoreCase("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      move(player,npc,npc.getName());
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if ((args.length == 1 || args.length == 2) && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      remove(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      rename(player,npc,args[1]);
      NPCManager.selectedNPCs.remove(player.getName());
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && (args[0].equalsIgnoreCase("String_Node_Str") || args[0].equalsIgnoreCase("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setColour(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.notOwnerMessage);
    }
    return true;
  }
 else   if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      addText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      resetText(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setItemInHand(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && (args[0].equalsIgnoreCase("String_Node_Str") || args[0].startsWith("String_Node_Str") || args[0].startsWith("String_Node_Str")|| args[0].startsWith("String_Node_Str"))) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setArmor(player,npc,args);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.teleport(npc.getNPCData().getLocation());
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canModify(player,npc,"String_Node_Str")) {
        copy(npc.getUID(),npc.getName(),player);
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      changeTalkWhenClose(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      changeLookWhenClose(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap("String_Node_Str" + npc.getUID())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canUse(player,npc,"String_Node_Str")) {
      if (!StringUtils.isNumber(args[1])) {
        player.sendMessage(ChatColor.RED + "String_Node_Str");
        return true;
      }
      npc=NPCManager.get(Integer.valueOf(args[1]));
      if (npc == null) {
        sender.sendMessage(ChatColor.RED + "String_Node_Str" + args[1]+ "String_Node_Str");
      }
 else {
        NPCManager.selectedNPCs.put(player.getName(),npc.getUID());
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap("String_Node_Str" + npc.getUID())+ "String_Node_Str"+ StringUtils.wrap(npc.getStrippedName())+ "String_Node_Str");
      }
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (npc != null) {
      if (Permission.canUse(player,npc,"String_Node_Str")) {
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.wrap(npc.getOwner())+ "String_Node_Str");
      }
 else {
        sender.sendMessage(MessageUtils.noPermissionsMessage);
      }
    }
 else {
      sender.sendMessage(MessageUtils.mustHaveNPCSelectedMessage);
    }
    return true;
  }
 else   if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canModify(player,npc,"String_Node_Str")) {
      setOwner(player,npc,args[1]);
    }
 else {
      sender.sendMessage(MessageUtils.noPermissionsMessage);
    }
    return true;
  }
 else   if (args.length >= 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
    if (Permission.canUse(player,npc,"String_Node_Str")) {
switch (args.length) {
case 1:
        displayList(player,player,npc,"String_Node_Str");
      break;
case 2:
    if (StringUtils.isNumber(args[1])) {
      displayList(player,player,npc,args[1]);
    }
 else {
      if (ServerUtils.matchPlayer(player,args[1]) != null) {
        displayList(player,ServerUtils.matchPlayer(player,args[1]),npc,"String_Node_Str");
      }
 else {
        player.sendMessage(ChatColor.RED + "String_Node_Str");
      }
    }
  break;
case 3:
if (ServerUtils.matchPlayer(player,args[1]) != null) {
  displayList(player,ServerUtils.matchPlayer(player,args[1]),npc,args[2]);
}
 else {
  player.sendMessage(ChatColor.RED + "String_Node_Str");
}
break;
}
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
return true;
}
 else if ((commandLabel.equalsIgnoreCase("String_Node_Str") || commandLabel.equalsIgnoreCase("String_Node_Str"))) {
if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canHelp(player,npc,"String_Node_Str")) {
int page=0;
if (StringUtils.isNumber(args[1])) {
page=Integer.parseInt(args[1]);
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str");
return true;
}
HelpUtils.sendHelpPage(sender,page);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
 else if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canHelp(player,npc,"String_Node_Str")) {
HelpUtils.sendHelpPage(sender,1);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
return true;
}
 else if (commandLabel.equalsIgnoreCase("String_Node_Str")) {
if (args.length == 2 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canHelp(player,npc,"String_Node_Str")) {
int page=0;
if (StringUtils.isNumber(args[1])) {
page=Integer.parseInt(args[1]);
}
 else {
player.sendMessage(ChatColor.RED + "String_Node_Str");
return true;
}
HelpUtils.sendBasicHelpPage(sender,page);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
 else if (args.length == 1 && args[0].equalsIgnoreCase("String_Node_Str")) {
if (Permission.canHelp(player,npc,"String_Node_Str")) {
HelpUtils.sendBasicHelpPage(sender,1);
}
 else {
sender.sendMessage(MessageUtils.noPermissionsMessage);
}
}
return true;
}
PropertyManager.get("String_Node_Str").saveState(npc);
return false;
}