public class CraftsMenu extends Menu {
private static final int PAGE_SIZE = 27;
private static final int PAGE_SIZE_WITHOUT_SELECTORS = PAGE_SIZE-9;
public CraftsMenu(int currentPageNumber) {
super(createMenu(), currentPageNumber);
super.addPageSelectors();
}
public CraftsMenu() {
super(createMenu());
super.addPageSelectors();
}
private static List<Inventory> createMenu() {
List<Inventory> inventoryPages = new ArrayList<>();
for(int i = 1; i <= 10; i++) {
Inventory firstPage = Bukkit.createInventory(null, PAGE_SIZE, "Main crafts menu (" + i + ")"); // TODO
inventoryPages.add(firstPage);
}
return inventoryPages;
}
@Override
public void onAction(InventoryInteractEvent event) {
event.setCancelled(true);
if(event instanceof InventoryClickEvent) {
Player player = (Player) event.getWhoClicked();
InventoryClickEvent inventoryClickEvent = (InventoryClickEvent) event;
ItemStack clickedItem = inventoryClickEvent.getCurrentItem();
NBTManager nbtManager = new NBTManager();
if(nbtManager.hasNBT(clickedItem, "next")) nextPage();
if(nbtManager.hasNBT(clickedItem, "prev")) previousPage();
openForPlayer(player);
}
}
}
#Is there a way to pass a method into the superclass constructor without using static?
1 messages · Page 1 of 1 (latest)
no
well, how can I use non-static methods from the superclass in the createMenu() method (static method)
or is it impossible too
or maybe there is an other way to do
nohow. Thats a language limitaiton
You cant call methods on non-initialized Object