public void generateInventories(List<T> 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];
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;
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);
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;