public void generateInventories(List ListOfObjectToAdd, String menuName) { GuiTempletsYaml guiTempletSettings = new GuiTempletsYaml(); PreferenceSettingsRegistery preferenceRegistery = PreferenceSettingsRegistery.getInstance(); CreateItems createItems = new CreateItems(); int itemsPerPage = (guiTempletSettings.getGuiSize(menuName, menuName) - 9); int requiredPages = Math.max((int) Math.ceil((double) ListOfObjectToAdd.size() / itemsPerPage), 1); //We need more pages if statically positioned Players you add are placed at a higher page index an one page can hold. int fillSpace = (guiTempletSettings.getGuiSize(menuName, menuName) - 9); inventories = new Inventory[requiredPages]; int recipeIndex = 0; for (int i = 0; i < requiredPages; i++) { inventories[i] = createInventory(guiTempletSettings.getGuiSize(menuName, menuName), guiTempletSettings.getGuiTitle(menuName, menuName)); for (int spot = 0; spot < fillSpace; spot++) { if (recipeIndex >= preferenceRegistery.getPlayers().size()) break; recipeIndex++; ItemStack result = createItems.createItemStack(guiTempletSettings.getIcon("PartylistMenu", "PartylistMenu_Players_List", preferenceRegistery.getPlayers().get(recipeIndex - 1)));// SkullCreator.itemFromUuid(preferenceRegistery.getPlayers().get(recipeIndex - 1)); OfflinePlayer player = Bukkit.getOfflinePlayer(preferenceRegistery.getPlayers().get(recipeIndex - 1)); if (player.getName() != null) if (result == null || result.getType().equals(Material.AIR)) { result = createItems.createItemStack(new ItemStack(Material.ACACIA_SIGN), guiTempletSettings.getDisplayName( "PartylistMenu", "PartylistMenu_Players_List").replace("{0}", player.getName()), guiTempletSettings.getLoreColorize("PartylistMenu", "PartylistMenu_Players_List"), null, null); } else { result = createItems.createItemStack(result, guiTempletSettings.getDisplayName( "PartylistMenu", "PartylistMenu_Players_List").replace("{0}", player.getName()), guiTempletSettings.getLoreColorize("PartylistMenu", "PartylistMenu_Players_List"), null, null); } inventories[i].setItem(spot, result); this.addedPlayersToParty.put(i * inventories[i].getSize() + spot, ListOfObjectToAdd.get(recipeIndex - 1)); } } //Check if current-page is not outside the bounds in case a player are removed. if (currentPage >= inventories.length) currentPage = inventories.length - 1; }