Program: 57988
Project: 57988
Buggy source:
public void displayPlots(PlotPlayer player,List<Plot> plots,int pageSize,int page,String world,String[] args,boolean sort){
  if (sort) {
    if (world != null) {
      plots=PS.get().sortPlots(plots,world);
    }
 else {
      plots=PS.get().sortPlots(plots);
    }
  }
  if (page < 0) {
    page=0;
  }
  final int totalPages=(int)Math.ceil(plots.size() / pageSize);
  if (page > totalPages) {
    page=totalPages;
  }
  int max=(page * pageSize) + pageSize;
  if (max > plots.size()) {
    max=plots.size();
  }
  List<Plot> subList=plots.subList(page * pageSize,max);
  String header=C.PLOT_LIST_HEADER_PAGED.s().replaceAll("String_Node_Str",page + 1 + "String_Node_Str").replaceAll("String_Node_Str",totalPages + 1 + "String_Node_Str").replaceAll("String_Node_Str",plots.size() + "String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
  MainUtil.sendMessage(player,header);
  int i=page * pageSize;
  for (  Plot plot : subList) {
    if (plot.getSettings().isMerged()) {
      if (!MainUtil.getBottomPlot(plot).equals(plot)) {
        continue;
      }
    }
    i++;
    if (player != null && Settings.FANCY_CHAT) {
      ChatColor color;
      if (plot.owner == null) {
        color=ChatColor.GOLD;
      }
 else       if (plot.isOwner(player.getUUID())) {
        color=ChatColor.BLUE;
      }
 else       if (plot.isAdded(player.getUUID())) {
        color=ChatColor.DARK_GREEN;
      }
 else       if (plot.isDenied(player.getUUID())) {
        color=ChatColor.RED;
      }
 else {
        color=ChatColor.GOLD;
      }
      FancyMessage trusted=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_TRUSTED.s().replaceAll("String_Node_Str",Info.getPlayerList(plot.getTrusted()))))).color(ChatColor.GOLD);
      FancyMessage members=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_MEMBERS.s().replaceAll("String_Node_Str",Info.getPlayerList(plot.getMembers()))))).color(ChatColor.GOLD);
      String strFlags=StringUtils.join(plot.getSettings().flags.values(),"String_Node_Str");
      if (strFlags.length() == 0) {
        strFlags=C.NONE.s();
      }
      FancyMessage flags=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_FLAGS.s().replaceAll("String_Node_Str",strFlags)))).color(ChatColor.GOLD);
      FancyMessage message=new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.DARK_GRAY).then(i + "String_Node_Str").command("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).tooltip("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).color(ChatColor.GOLD).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str" + plot.toString()).formattedTooltip(trusted,members,flags).command("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).color(color).then("String_Node_Str").color(ChatColor.GRAY);
      String prefix="String_Node_Str";
      for (      UUID uuid : plot.getOwners()) {
        String name=UUIDHandler.getName(uuid);
        if (name == null) {
          message=message.then(prefix).color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GRAY).tooltip(uuid.toString()).suggest(uuid.toString());
        }
 else {
          PlotPlayer pp=UUIDHandler.getPlayer(uuid);
          if (pp != null) {
            message=message.then(prefix).color(ChatColor.DARK_GRAY).then(name).color(ChatColor.GOLD).formattedTooltip(new FancyMessage("String_Node_Str").color(ChatColor.DARK_GREEN));
          }
 else {
            message=message.then(prefix).color(ChatColor.DARK_GRAY).then(name).color(ChatColor.GOLD).formattedTooltip(new FancyMessage("String_Node_Str").color(ChatColor.RED));
          }
        }
        prefix="String_Node_Str";
      }
      message.send(((BukkitPlayer)player).player);
    }
 else {
      String message=C.PLOT_LIST_ITEM.s().replaceAll("String_Node_Str",i + 1 + "String_Node_Str").replaceAll("String_Node_Str",plot.id.toString()).replaceAll("String_Node_Str",plot.world).replaceAll("String_Node_Str",getName(plot.owner)).replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
      MainUtil.sendMessage(player,message);
    }
  }
  if (player != null && Settings.FANCY_CHAT) {
    if (page < totalPages && page > 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page)).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page + 2)).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
    if (page == 0 && totalPages != 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page + 2)).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
    if (page == totalPages && totalPages != 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page)).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.DARK_GRAY).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
  }
 else {
    String footer=C.PLOT_LIST_FOOTER.s().replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str",plots.size() + "String_Node_Str").replaceAll("String_Node_Str",plots.size() == 1 ? "String_Node_Str" : "String_Node_Str");
    MainUtil.sendMessage(player,footer);
  }
}

Fixed version (ground truth):
public void displayPlots(PlotPlayer player,List<Plot> plots,int pageSize,int page,String world,String[] args,boolean sort){
  if (sort) {
    if (world != null) {
      plots=PS.get().sortPlots(plots,world);
    }
 else {
      plots=PS.get().sortPlots(plots);
    }
  }
  if (page < 0) {
    page=0;
  }
  final int totalPages=(int)Math.ceil(plots.size() / pageSize);
  if (page > totalPages) {
    page=totalPages;
  }
  int max=(page * pageSize) + pageSize;
  if (max > plots.size()) {
    max=plots.size();
  }
  List<Plot> subList=plots.subList(page * pageSize,max);
  String header=C.PLOT_LIST_HEADER_PAGED.s().replaceAll("String_Node_Str",page + 1 + "String_Node_Str").replaceAll("String_Node_Str",totalPages + 1 + "String_Node_Str").replaceAll("String_Node_Str",plots.size() + "String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
  MainUtil.sendMessage(player,header);
  int i=page * pageSize;
  for (  Plot plot : subList) {
    if (plot.getSettings().isMerged()) {
      if (!MainUtil.getBottomPlot(plot).equals(plot)) {
        continue;
      }
    }
    i++;
    if (!ConsolePlayer.isConsole(player) && Settings.FANCY_CHAT) {
      ChatColor color;
      if (plot.owner == null) {
        color=ChatColor.GOLD;
      }
 else       if (plot.isOwner(player.getUUID())) {
        color=ChatColor.BLUE;
      }
 else       if (plot.isAdded(player.getUUID())) {
        color=ChatColor.DARK_GREEN;
      }
 else       if (plot.isDenied(player.getUUID())) {
        color=ChatColor.RED;
      }
 else {
        color=ChatColor.GOLD;
      }
      FancyMessage trusted=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_TRUSTED.s().replaceAll("String_Node_Str",Info.getPlayerList(plot.getTrusted()))))).color(ChatColor.GOLD);
      FancyMessage members=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_MEMBERS.s().replaceAll("String_Node_Str",Info.getPlayerList(plot.getMembers()))))).color(ChatColor.GOLD);
      String strFlags=StringUtils.join(plot.getSettings().flags.values(),"String_Node_Str");
      if (strFlags.length() == 0) {
        strFlags=C.NONE.s();
      }
      FancyMessage flags=new FancyMessage(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',C.PLOT_INFO_FLAGS.s().replaceAll("String_Node_Str",strFlags)))).color(ChatColor.GOLD);
      FancyMessage message=new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.DARK_GRAY).then(i + "String_Node_Str").command("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).tooltip("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).color(ChatColor.GOLD).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str" + plot.toString()).formattedTooltip(trusted,members,flags).command("String_Node_Str" + plot.world + "String_Node_Str"+ plot.id).color(color).then("String_Node_Str").color(ChatColor.GRAY);
      String prefix="String_Node_Str";
      for (      UUID uuid : plot.getOwners()) {
        String name=UUIDHandler.getName(uuid);
        if (name == null) {
          message=message.then(prefix).color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GRAY).tooltip(uuid.toString()).suggest(uuid.toString());
        }
 else {
          PlotPlayer pp=UUIDHandler.getPlayer(uuid);
          if (pp != null) {
            message=message.then(prefix).color(ChatColor.DARK_GRAY).then(name).color(ChatColor.GOLD).formattedTooltip(new FancyMessage("String_Node_Str").color(ChatColor.DARK_GREEN));
          }
 else {
            message=message.then(prefix).color(ChatColor.DARK_GRAY).then(name).color(ChatColor.GOLD).formattedTooltip(new FancyMessage("String_Node_Str").color(ChatColor.RED));
          }
        }
        prefix="String_Node_Str";
      }
      message.send(((BukkitPlayer)player).player);
    }
 else {
      String message=C.PLOT_LIST_ITEM.s().replaceAll("String_Node_Str",i + 1 + "String_Node_Str").replaceAll("String_Node_Str",plot.id.toString()).replaceAll("String_Node_Str",plot.world).replaceAll("String_Node_Str",getName(plot.owner)).replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
      MainUtil.sendMessage(player,message);
    }
  }
  if (player != null && Settings.FANCY_CHAT) {
    if (page < totalPages && page > 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page)).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page + 2)).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
    if (page == 0 && totalPages != 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page + 2)).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
    if (page == totalPages && totalPages != 0) {
      new FancyMessage("String_Node_Str").then("String_Node_Str").color(ChatColor.GOLD).command("String_Node_Str" + args[0] + "String_Node_Str"+ (page)).then("String_Node_Str").color(ChatColor.DARK_GRAY).then("String_Node_Str").color(ChatColor.DARK_GRAY).then(C.CLICKABLE.s()).color(ChatColor.GRAY).send(((BukkitPlayer)player).player);
      return;
    }
  }
 else {
    String footer=C.PLOT_LIST_FOOTER.s().replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str",plots.size() + "String_Node_Str").replaceAll("String_Node_Str",plots.size() == 1 ? "String_Node_Str" : "String_Node_Str");
    MainUtil.sendMessage(player,footer);
  }
}