
io.github.thewebcode.yplugin.menu.Menu Maven / Gradle / Ivy
package io.github.thewebcode.yplugin.menu;
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 java.util.Arrays;
public abstract class Menu implements InventoryHolder {
protected PlayerMenuUtility playerMenuUtility;
protected Inventory inventory;
protected ItemStack FILLER_GLASS = makeItem(Material.GRAY_STAINED_GLASS_PANE, " ");
public Menu(PlayerMenuUtility playerMenuUtility) {
this.playerMenuUtility = playerMenuUtility;
}
public abstract String getMenuName();
public abstract int getSlots();
public abstract void handleMenu(InventoryClickEvent e);
public abstract void setMenuItems();
public void open() {
inventory = Bukkit.createInventory(this, getSlots(), getMenuName());
this.setMenuItems();
playerMenuUtility.getOwner().openInventory(inventory);
}
@Override
public Inventory getInventory() {
return inventory;
}
public void setFillerGlass() {
for (int i = 0; i < getSlots(); i++) {
if (inventory.getItem(i) == null) {
inventory.setItem(i, 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;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy