2021-11-22 21:48:09 +00:00
|
|
|
package rip.tilly.bedwars.utils.menusystem;
|
2021-11-22 02:36:37 +00:00
|
|
|
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
|
|
import org.bukkit.inventory.Inventory;
|
|
|
|
import org.bukkit.inventory.InventoryHolder;
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
|
|
import rip.tilly.bedwars.utils.ItemBuilder;
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
|
|
|
public abstract class Menu implements InventoryHolder {
|
|
|
|
|
|
|
|
protected PlayerMenuUtil playerMenuUtil;
|
|
|
|
protected Inventory inventory;
|
|
|
|
protected ItemStack FILLER_GLASS = new ItemBuilder(Material.STAINED_GLASS_PANE).durability(7).name("").build();
|
|
|
|
|
|
|
|
public Menu(PlayerMenuUtil playerMenuUtil) {
|
|
|
|
this.playerMenuUtil = playerMenuUtil;
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract String getMenuName();
|
|
|
|
|
|
|
|
public abstract int getSlots();
|
|
|
|
|
|
|
|
public abstract void handleMenu(InventoryClickEvent event);
|
|
|
|
|
|
|
|
public abstract void setMenuItems();
|
|
|
|
|
|
|
|
public void open() {
|
|
|
|
inventory = Bukkit.createInventory(this, getSlots(), getMenuName());
|
|
|
|
|
|
|
|
this.setMenuItems();
|
|
|
|
|
|
|
|
playerMenuUtil.getOwner().openInventory(inventory);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Inventory getInventory() {
|
|
|
|
return inventory;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFillerGlass(){
|
|
|
|
for (int i = 0; i < this.getSlots(); i++) {
|
|
|
|
if (this.inventory.getItem(i) == null){
|
|
|
|
this.inventory.setItem(i, this.FILLER_GLASS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public ItemStack makeItem(Material material, String displayName, String... lore) {
|
|
|
|
ItemStack item = new ItemStack(material);
|
|
|
|
ItemMeta itemMeta = item.getItemMeta();
|
|
|
|
itemMeta.setDisplayName(displayName);
|
|
|
|
|
|
|
|
itemMeta.setLore(Arrays.asList(lore));
|
|
|
|
item.setItemMeta(itemMeta);
|
|
|
|
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
}
|