Add first steps for gui
This commit is contained in:
@@ -60,6 +60,7 @@ public enum DatabaseManager {
|
||||
|
||||
public void registerDatabaseInitializeListener(DatabaseInitializeListener listener) {
|
||||
this.databaseInitializeListeners.add(listener);
|
||||
this.app.getLogger().log(Level.INFO, "Registered database initialize listener: {0}", listener.getClass().getName());
|
||||
|
||||
// immediately initialize if the database is already initialized
|
||||
if (this.initialized) {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package nl.interestingcorner.core.gui;
|
||||
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
public class GUI implements InventoryHolder {
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getInventory'");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package nl.interestingcorner.core.gui;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class GUIBuilder {
|
||||
public static final int MAX_INVENTORY_SIZE = 54; // max size of inventory before pages are needed
|
||||
public static final int MAX_PAGE_INVENTORY_SIZE = 45; // max amount of items on a page
|
||||
|
||||
public Inventory buildInventory(List<ItemStack> items) {
|
||||
/**
|
||||
* if more than 45, add pages. Split by 45 items per page.
|
||||
* use bottom row leftmost and rightmost item for navigation.
|
||||
* use paper item for page number display in middle.
|
||||
* use lore of navigation items clicked to handle showing next/previous page.
|
||||
* use player.getOpeninventory() to get current inventory and update or close
|
||||
* it.
|
||||
*/
|
||||
|
||||
int itemsAmount = items.size();
|
||||
int pagesAmount = getPagesAmount(itemsAmount);
|
||||
|
||||
Inventory gui = Bukkit.createInventory(null, MAX_INVENTORY_SIZE, "Coordinates Menu");
|
||||
|
||||
for (ItemStack item : items) {
|
||||
gui.addItem(item);
|
||||
}
|
||||
|
||||
return gui;
|
||||
}
|
||||
|
||||
private static int getPagesAmount(int itemsAmount) {
|
||||
if (itemsAmount > MAX_INVENTORY_SIZE) {
|
||||
return ((itemsAmount / MAX_PAGE_INVENTORY_SIZE) + 1);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user