/* * Copyright (c) 2018 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.core.api.gui.inventory; import eu.univento.core.api.gui.Action; import eu.univento.core.api.items.ItemBuilder; import eu.univento.core.api.player.CustomPlayer; import org.bukkit.Material; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.Map; public class PagedInventoryGUI implements Listener{ private CustomPlayer player; private String title; private ItemStack next = new ItemBuilder(Material.ARROW).name("§eNächste Seite").build(); private ItemStack back = new ItemBuilder(Material.ARROW).name("§eVorherige Seite Seite").build(); private Map pages = new HashMap<>(); public PagedInventoryGUI(CustomPlayer player, String title) { this.player = player; this.title = title; } public PagedInventoryGUI(CustomPlayer player, String title, ItemStack back, ItemStack next) { this.player = player; this.title = title; this.back = back; this.next = next; } public void addItem(ItemStack item, Action action) { if(pages.get(pages.size()).getInventory().firstEmpty() == 46) { pages.put(pages.size() + 1, new InventoryGUI(player, 54, title + " Seite " + pages.size())); pages.get(pages.size()).addItem(53, next, player -> { player.closeInventory(); pages.get(pages.size() -1).open(); }); pages.get(pages.size()).addItem(45, back, player -> { player.closeInventory(); pages.get(pages.size() - 1).open(); }); } pages.get(pages.size()).addItem(item, action); } public void open() { pages.get(0).open(); } }