Advertisement
Guest User

Setup pages

a guest
Apr 29th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.64 KB | None | 0 0
  1.     public IconMenu[] joinPages;
  2.  
  3.     private void generateJoinPages() {
  4.         int matchCounter = pl.lobbies.size();
  5.         int pageNumber = 0;
  6.         while(matchCounter <= (54 - 3) && matchCounter > 0) {
  7.             pageNumber++;
  8.             matchCounter -= getPageSize(matchCounter, 3);
  9.         }
  10.         if(joinPages != null) {
  11.             for(IconMenu iconmenu : joinPages) {
  12.                 iconmenu.destroy();
  13.             }
  14.         }
  15.         joinPages = new IconMenu[pageNumber];
  16.         matchCounter = pl.lobbies.size();
  17.         for(int page = 0; page < pageNumber; page++) {
  18.             int size = getPageSize(matchCounter, 3);
  19.             joinPages[page] = new IconMenu(pl, guiY.getConfig().getString("config.joinInventoryTitle").replaceAll("&", "ยง"), size, page, new IconMenuEventHandler() {
  20.  
  21.                 @Override
  22.                 public void onInventoryClick(IconMenu.InventoryMenuClickEvent e) {
  23.                     switch(e.getSlot()) {
  24.                         case 0: // page next
  25.                             if(e.getPage() + 1 <= joinPages.length - 1) {
  26.                                 e.getPlayer().closeInventory();
  27.                                 joinPages[e.getPage() + 1].openInventory(e.getPlayer());
  28.                             }
  29.                             e.setClosing(false);
  30.                             break;
  31.                         case 1: // page past
  32.                             if(e.getPage() - 1 >= 0) {
  33.                                 e.getPlayer().closeInventory();
  34.                                 joinPages[e.getPage() - 1].openInventory(e.getPlayer());
  35.                             }
  36.                             e.setClosing(false);
  37.                             break;
  38.                         case 2: // close
  39.                             e.setClosing(true);
  40.                             break;
  41.                         default:
  42.                             if(e.getItem() != null && e.getItem().getItemMeta().hasDisplayName()) {
  43.                                 Lobby lobby = pl.getLobby(e.getItem().getItemMeta().getDisplayName());
  44.                                 if(lobby != null) {
  45.                                     prejoin.put(e.getPlayer().getName(), lobby);
  46.                                     e.setClosing(false);
  47.                                     e.getPlayer().closeInventory();
  48.                                     kitPages[0].openInventory(e.getPlayer());
  49.                                 } else {
  50.                                     e.getPlayer().sendMessage(pl.getLang("matchNotFound"));
  51.                                 }
  52.                             }
  53.                             break;
  54.                     }
  55.                 }
  56.  
  57.                 @Override
  58.                 public void onInventoryClose(IconMenu.InventoryMenuCloseEvent e) {
  59.                 }
  60.             });
  61.             matchCounter -= size;
  62.         }
  63.         generateJoinGUIOptions();
  64.     }
  65.  
  66.     private void generateJoinGUIOptions() {
  67.         new BukkitRunnable() {
  68.  
  69.             @Override
  70.             public void run() {
  71.                 ArrayList<Lobby> lobbies = new ArrayList<Lobby>(pl.lobbies.values());
  72.                 Iterator<Lobby> iterator = lobbies.iterator();
  73.                 for(IconMenu iconMenu : joinPages) {
  74.                     if(iconMenu.getPage() + 1 <= joinPages.length - 1) {
  75.                         iconMenu.setOption(0, nextPage);
  76.                     } else {
  77.                         iconMenu.setOption(0, disabledPage);
  78.                     }
  79.                     if(iconMenu.getPage() - 1 >= 0) {
  80.                         iconMenu.setOption(1, backPage);
  81.                     } else {
  82.                         iconMenu.setOption(1, disabledPage);
  83.                     }
  84.                     iconMenu.setOption(2, closePage);
  85.                     int atual = 3;
  86.                     while(iterator.hasNext()) {
  87.                         if(atual < 54) {
  88.                             Lobby lob = iterator.next();
  89.                             ItemStack shown = getShownItem(lob.getCurrentState());
  90.                             ItemMeta meta = shown.getItemMeta();
  91.                             meta.setDisplayName(lob.getPath());
  92.                             if(meta.hasLore()) {
  93.                                 List<String> lore = meta.getLore();
  94.                                 List<String> editedLore = new ArrayList<String>();
  95.                                 for(String line : lore) {
  96.                                     editedLore.add(line.replaceAll("%state", pl.getStateName(lob.getCurrentState())).replaceAll("%players", Integer.toString(pl.getPlayersFromLobby(lob).size())).replaceAll("%max", Integer.toString(lob.getMaxPlayers())).replaceAll("%min", Integer.toString(lob.getMinPlayers())));
  97.                                 }
  98.                                 for(String line : lob.getLore()) {
  99.                                     editedLore.add(line.replaceAll("%state", pl.getStateName(lob.getCurrentState())).replaceAll("%players", Integer.toString(pl.getPlayersFromLobby(lob).size())).replaceAll("%max", Integer.toString(lob.getMaxPlayers())).replaceAll("%min", Integer.toString(lob.getMinPlayers())));
  100.                                 }
  101.                                 meta.setLore(editedLore);
  102.                             }
  103.                             shown.setItemMeta(meta);
  104.                             iconMenu.setOption(atual, shown);
  105.                             iterator.remove();
  106.                             atual++;
  107.                         } else {
  108.                             break;
  109.                         }
  110.                     }
  111.                 }
  112.             }
  113.         }.runTaskTimer(pl, 1, 20 * guiUpdateDelay);
  114.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement