private String getPage(int page, Map<String, Object> map) {
        int factor = 5;
        int index = (page - 1) * factor;
        int listSize = map.size();
        if (index > listSize) {
            return "";
        }
        int upper = index + factor;
        if (upper >= listSize) {
            upper = listSize;
        }
        StringBuilder sb = new StringBuilder();
        sb.append(ChatColor.RED).append(plugin.getName()).append("\n").append(ChatColor.RESET);
        sb.append("Page ").append(page).append("/").append((int) Math.ceil((double) listSize / (double) factor));
        sb.append("\n").append(ChatColor.RESET);
        String[] list = map.keySet().toArray(new String[listSize]);
        Arrays.sort(list);
        for (int i = index; i < upper; i++) {
            Object test = map.get(list[i]);
            if (test != null) {
                if (test instanceof SubCommand) {
                    SubCommand db = (SubCommand) map.get(list[i]);
                    sb.append(db.getHelp()[0]).append(" - ").append(db.getHelp()[1]);
                }
                if (i != upper - 1) {
                    sb.append("\n");
                }
            }
        }
        sb.append('\n').append(ChatColor.YELLOW).append("Use /ttp help <command> to get help for a specific command");
        return sb.toString();
    }