57 lines
1.9 KiB
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();
|
|
}
|
|
} |