Core/src/main/java/eu/univento/core/api/gui/inventory/PagedInventoryGUI.java

57 lines
1.9 KiB
Java

/*
* 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<Integer, InventoryGUI> 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();
}
}