Program: 19065
Project: 19065
Buggy source:
@Command(aliases={"String_Node_Str"},usage="String_Node_Str",desc="String_Node_Str",min=1,max=1) @CommandPermissions(value={"String_Node_Str","String_Node_Str","String_Node_Str"}) public void lookup(CommandContext args,LocalPlayer sender) throws CommandException, BouncerException {
  try {
    if (!NetUtils.isIPAddress(args.getString(0))) {
      String username=controller.getServer().getPlayerName(args.getString(0));
      String ip=controller.getServer().getIPAddress(username);
      LookupEvent lookupEvent=new LookupEvent(sender,username);
      MCBEventHandler.callEvent(lookupEvent);
      if (lookupEvent.isCancelled()) {
        return;
      }
      username=lookupEvent.getPlayer();
      List<UserBan> bans=controller.getAPI().getBans(username);
      List<UserNote> notes=controller.getAPI().getNotes(username);
      List<IPBan> ipbans=new ArrayList<IPBan>();
      if (ip.length() != 0) {
        ipbans=controller.getAPI().getIPBans(ip);
      }
      sender.sendMessage(ChatColor.AQUA + username + "String_Node_Str"+ bans.size()+ "String_Node_Str"+ (bans.size() == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ notes.size()+ "String_Node_Str"+ (notes.size() == 1 ? "String_Node_Str" : "String_Node_Str"));
      for (int i=0; i < bans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ bans.get(i).getServer()+ "String_Node_Str"+ bans.get(i).getIssuer()+ "String_Node_Str"+ bans.get(i).getReason()+ "String_Node_Str");
      }
      for (int i=0; i < ipbans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ ip+ "String_Node_Str"+ bans.get(i).getServer()+ "String_Node_Str"+ bans.get(i).getIssuer()+ "String_Node_Str"+ bans.get(i).getReason()+ "String_Node_Str");
      }
      for (int i=0; i < notes.size(); i++) {
        if (notes.get(i).isGlobal()) {
          sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + notes.get(i).getNoteID().toString()+ "String_Node_Str"+ notes.get(i).getServer()+ "String_Node_Str"+ notes.get(i).getIssuer()+ "String_Node_Str"+ notes.get(i).getNote()+ "String_Node_Str");
        }
 else {
          sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + notes.get(i).getNoteID().toString()+ "String_Node_Str"+ notes.get(i).getServer()+ "String_Node_Str"+ notes.get(i).getIssuer()+ "String_Node_Str"+ notes.get(i).getNote()+ "String_Node_Str");
        }
      }
    }
 else {
      LookupEvent lookupEvent=new LookupEvent(sender,args.getString(0));
      MCBEventHandler.callEvent(lookupEvent);
      if (lookupEvent.isCancelled()) {
        return;
      }
      String ip=lookupEvent.getPlayer();
      List<IPBan> bans=controller.getAPI().getIPBans(ip);
      sender.sendMessage(ChatColor.AQUA + args.getString(0) + "String_Node_Str"+ bans.size()+ "String_Node_Str"+ (bans.size() == 1 ? "String_Node_Str" : "String_Node_Str"));
      for (int i=0; i < bans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ bans.get(i).getServer()+ "String_Node_Str"+ bans.get(i).getIssuer()+ "String_Node_Str"+ bans.get(i).getReason()+ "String_Node_Str");
      }
    }
  }
 catch (  APIException e) {
    sender.sendMessage(ChatColor.RED + e.getMessage());
  }
}

Fixed version (ground truth):
@Command(aliases={"String_Node_Str"},usage="String_Node_Str",desc="String_Node_Str",min=1,max=1) @CommandPermissions(value={"String_Node_Str","String_Node_Str","String_Node_Str"}) public void lookup(CommandContext args,LocalPlayer sender) throws CommandException, BouncerException {
  try {
    if (!NetUtils.isIPAddress(args.getString(0))) {
      String username=controller.getServer().getPlayerName(args.getString(0));
      String ip=controller.getServer().getIPAddress(username);
      LookupEvent lookupEvent=new LookupEvent(sender,username);
      MCBEventHandler.callEvent(lookupEvent);
      if (lookupEvent.isCancelled()) {
        return;
      }
      username=lookupEvent.getPlayer();
      List<UserBan> bans=controller.getAPI().getBans(username);
      List<UserNote> notes=controller.getAPI().getNotes(username);
      List<IPBan> ipbans=new ArrayList<IPBan>();
      if (ip.length() != 0 && !controller.getConfiguration().isIPFunctionsDisabled()) {
        ipbans=controller.getAPI().getIPBans(ip);
      }
      sender.sendMessage(ChatColor.AQUA + username + "String_Node_Str"+ bans.size()+ "String_Node_Str"+ (bans.size() == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ notes.size()+ "String_Node_Str"+ (notes.size() == 1 ? "String_Node_Str" : "String_Node_Str"));
      for (int i=0; i < bans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ bans.get(i).getServer()+ "String_Node_Str"+ bans.get(i).getIssuer()+ "String_Node_Str"+ bans.get(i).getReason()+ "String_Node_Str");
      }
      for (int i=0; i < ipbans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ ip+ "String_Node_Str"+ ipbans.get(i).getServer()+ "String_Node_Str"+ ipbans.get(i).getIssuer()+ "String_Node_Str"+ ipbans.get(i).getReason()+ "String_Node_Str");
      }
      for (int i=0; i < notes.size(); i++) {
        if (notes.get(i).isGlobal()) {
          sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + notes.get(i).getNoteID().toString()+ "String_Node_Str"+ notes.get(i).getServer()+ "String_Node_Str"+ notes.get(i).getIssuer()+ "String_Node_Str"+ notes.get(i).getNote()+ "String_Node_Str");
        }
 else {
          sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + notes.get(i).getNoteID().toString()+ "String_Node_Str"+ notes.get(i).getServer()+ "String_Node_Str"+ notes.get(i).getIssuer()+ "String_Node_Str"+ notes.get(i).getNote()+ "String_Node_Str");
        }
      }
    }
 else {
      if (controller.getConfiguration().isIPFunctionsDisabled()) {
        sender.sendMessage(ChatColor.RED + "String_Node_Str");
        return;
      }
      LookupEvent lookupEvent=new LookupEvent(sender,args.getString(0));
      MCBEventHandler.callEvent(lookupEvent);
      if (lookupEvent.isCancelled()) {
        return;
      }
      String ip=lookupEvent.getPlayer();
      List<IPBan> bans=controller.getAPI().getIPBans(ip);
      sender.sendMessage(ChatColor.AQUA + args.getString(0) + "String_Node_Str"+ bans.size()+ "String_Node_Str"+ (bans.size() == 1 ? "String_Node_Str" : "String_Node_Str"));
      for (int i=0; i < bans.size(); i++) {
        sender.sendMessage(ChatColor.GREEN + "String_Node_Str" + (i + 1)+ "String_Node_Str"+ bans.get(i).getServer()+ "String_Node_Str"+ bans.get(i).getIssuer()+ "String_Node_Str"+ bans.get(i).getReason()+ "String_Node_Str");
      }
    }
  }
 catch (  APIException e) {
    sender.sendMessage(ChatColor.RED + e.getMessage());
  }
}