Search in sources :

Example 11 with PaginatedPane

use of com.github.stefvanschie.inventoryframework.pane.PaginatedPane in project Nodewar by Rosstail.

the class PlayerAdminEmpireGUIs method initGUI.

public static void initGUI(Player player, fr.rosstail.nodewar.Nodewar plugin, ChestGui previousGui, Player target) {
    int invSize = 6;
    String display = target.getName() + "'s Empires - Page 1";
    ChestGui gui = new ChestGui(invSize, AdaptMessage.playerMessage(player, display));
    PaginatedPane paginatedPane = new PaginatedPane(0, 0, 9, invSize);
    OutlinePane background = new OutlinePane(0, 0, 9, gui.getRows(), Pane.Priority.LOWEST);
    background.addItem(new GuiItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE)));
    background.setRepeat(true);
    gui.addPane(background);
    int page = 0;
    while (true) {
        StaticPane staticPane = initPane(player, plugin, gui, previousGui, paginatedPane, target, page);
        paginatedPane.addPane(page, staticPane);
        if (staticPane.getItems().size() < 47) {
            // 9 * 5 lines + 2 buttons
            break;
        }
        page++;
    }
    gui.setOnGlobalClick(event -> {
        event.setCancelled(true);
    });
    gui.addPane(paginatedPane);
    gui.show(player);
}
Also used : ChestGui(com.github.stefvanschie.inventoryframework.gui.type.ChestGui) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) PaginatedPane(com.github.stefvanschie.inventoryframework.pane.PaginatedPane) OutlinePane(com.github.stefvanschie.inventoryframework.pane.OutlinePane) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) ItemStack(org.bukkit.inventory.ItemStack)

Example 12 with PaginatedPane

use of com.github.stefvanschie.inventoryframework.pane.PaginatedPane in project Nodewar by Rosstail.

the class TerritoryPointsGUIs method initGUI.

public static void initGUI(Player player, Nodewar plugin, Territory territory, ChestGui previousGui) {
    int invSize = 6;
    String display = territory.getDisplay() + "'s points - Page 1";
    ChestGui gui = new ChestGui(invSize, AdaptMessage.playerMessage(player, display));
    PaginatedPane paginatedPane = new PaginatedPane(0, 0, 9, invSize);
    OutlinePane background = new OutlinePane(0, 0, 9, gui.getRows(), Pane.Priority.LOWEST);
    background.addItem(new GuiItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE)));
    background.setRepeat(true);
    gui.addPane(background);
    int page = 0;
    while (true) {
        StaticPane staticPane = initPane(player, plugin, gui, previousGui, paginatedPane, territory, page);
        paginatedPane.addPane(page, staticPane);
        if (staticPane.getItems().size() < 47) {
            // 9 * 5 lines + 2 buttons
            break;
        }
        page++;
    }
    gui.setOnGlobalClick(event -> {
        event.setCancelled(true);
    });
    gui.addPane(paginatedPane);
    gui.show(player);
}
Also used : ChestGui(com.github.stefvanschie.inventoryframework.gui.type.ChestGui) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) PaginatedPane(com.github.stefvanschie.inventoryframework.pane.PaginatedPane) OutlinePane(com.github.stefvanschie.inventoryframework.pane.OutlinePane) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) ItemStack(org.bukkit.inventory.ItemStack)

Example 13 with PaginatedPane

use of com.github.stefvanschie.inventoryframework.pane.PaginatedPane in project Nodewar by Rosstail.

the class WorldsGUIs method initPane.

private static StaticPane initPane(Player player, Nodewar plugin, ChestGui gui, PaginatedPane paginatedPane, int page) {
    StaticPane staticPane = new StaticPane(0, 0, 9, 6);
    List<World> worlds = new ArrayList<>(WorldTerritoryManager.getUsedWorlds().keySet());
    int index = 45 * page;
    int posY = 0;
    int posX = 0;
    if (page > 0) {
        staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.ARROW, "&9Previous page", null, GUIs.adaptLore(player, null)), event -> {
            paginatedPane.setPage(page - 1);
            gui.setTitle(AdaptMessage.playerMessage(player, "&cWorlds - Page " + (page)));
            gui.update();
        }), 0, 5);
    }
    while (posY != 5) {
        while (posX != 9) {
            if (worlds.size() - 1 < index) {
                return staticPane;
            }
            World world = worlds.get(index);
            staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.HEART_OF_THE_SEA, world.getName(), null, GUIs.adaptLore(player, null)), event -> {
                WorldTerritoriesGUIs.initGUI(player, plugin, world, gui);
            }), posX, posY);
            posX++;
            index++;
        }
        posY++;
    }
    if (worlds.size() > index) {
        staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.SPECTRAL_ARROW, "&Next page", null, GUIs.adaptLore(player, null)), event -> {
            paginatedPane.setPage(page + 1);
            gui.setTitle(AdaptMessage.playerMessage(player, "Worlds - Page " + (page + 1)));
            gui.update();
        }), 8, 5);
    }
    return staticPane;
}
Also used : OutlinePane(com.github.stefvanschie.inventoryframework.pane.OutlinePane) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) ChestGui(com.github.stefvanschie.inventoryframework.gui.type.ChestGui) AdaptMessage(fr.rosstail.nodewar.lang.AdaptMessage) Player(org.bukkit.entity.Player) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) ItemStack(org.bukkit.inventory.ItemStack) ArrayList(java.util.ArrayList) List(java.util.List) World(org.bukkit.World) GUIs(fr.rosstail.nodewar.guis.GUIs) Pane(com.github.stefvanschie.inventoryframework.pane.Pane) Nodewar(fr.rosstail.nodewar.Nodewar) WorldTerritoryManager(fr.rosstail.nodewar.territory.zonehandlers.WorldTerritoryManager) Material(org.bukkit.Material) PaginatedPane(com.github.stefvanschie.inventoryframework.pane.PaginatedPane) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) ArrayList(java.util.ArrayList) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) World(org.bukkit.World)

Example 14 with PaginatedPane

use of com.github.stefvanschie.inventoryframework.pane.PaginatedPane in project Nodewar by Rosstail.

the class TerritoryEmpireGUIs method initGUI.

public static void initGUI(Player player, Nodewar plugin, ChestGui previousGui, Territory territory) {
    int invSize = 6;
    String display = territory.getDisplay() + "'s Empires - Page 1";
    ChestGui gui = new ChestGui(invSize, AdaptMessage.playerMessage(player, display));
    PaginatedPane paginatedPane = new PaginatedPane(0, 0, 9, invSize);
    OutlinePane background = new OutlinePane(0, 0, 9, gui.getRows(), Pane.Priority.LOWEST);
    background.addItem(new GuiItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE)));
    background.setRepeat(true);
    gui.addPane(background);
    int page = 0;
    while (true) {
        StaticPane staticPane = initPane(player, plugin, gui, previousGui, paginatedPane, territory, page);
        paginatedPane.addPane(page, staticPane);
        if (staticPane.getItems().size() < 47) {
            // 9 * 5 lines + 2 buttons
            break;
        }
        page++;
    }
    gui.setOnGlobalClick(event -> {
        event.setCancelled(true);
    });
    gui.addPane(paginatedPane);
    gui.show(player);
}
Also used : ChestGui(com.github.stefvanschie.inventoryframework.gui.type.ChestGui) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) PaginatedPane(com.github.stefvanschie.inventoryframework.pane.PaginatedPane) OutlinePane(com.github.stefvanschie.inventoryframework.pane.OutlinePane) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) ItemStack(org.bukkit.inventory.ItemStack)

Example 15 with PaginatedPane

use of com.github.stefvanschie.inventoryframework.pane.PaginatedPane in project Nodewar by Rosstail.

the class TerritoryEmpireGUIs method initPane.

private static StaticPane initPane(Player player, Nodewar plugin, ChestGui gui, ChestGui previousGui, PaginatedPane paginatedPane, Territory territory, int page) {
    StaticPane staticPane = new StaticPane(0, 0, 9, 6);
    ArrayList<Empire> empires = new ArrayList<>(EmpireManager.getEmpireManager().getEmpires().values());
    int index = 45 * page;
    int posY = 0;
    int posX = 0;
    staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.BARRIER, "&9Previous Menu", null, GUIs.adaptLore(player, null)), event -> {
        previousGui.show(player);
    }), 4, 5);
    if (page > 0) {
        staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.ARROW, "&9Previous page", null, GUIs.adaptLore(player, null)), event -> {
            paginatedPane.setPage(page - 1);
            gui.setTitle(AdaptMessage.playerMessage(player, territory.getDisplay() + "'s Empire - Page " + (page)));
            gui.update();
        }), 0, 5);
    }
    while (posY != 5) {
        while (posX != 9) {
            if (empires.size() - 1 < index) {
                return staticPane;
            }
            Empire empire = empires.get(index);
            staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.RED_BANNER, empire.getDisplay(), null, GUIs.adaptLore(player, null)), event -> {
                Objective objective = territory.getObjective();
                if (objective != null) {
                    objective.reset();
                }
                if (empire != EmpireManager.getEmpireManager().getNoEmpire()) {
                    AdaptMessage.playerMessage(player, AdaptMessage.territoryMessage(territory, LangManager.getMessage(LangMessage.TERRITORY_SET_EMPIRE)));
                } else {
                    AdaptMessage.playerMessage(player, AdaptMessage.territoryMessage(territory, LangManager.getMessage(LangMessage.TERRITORY_NEUTRALIZE)));
                }
                previousGui.show(player);
            }), posX, posY);
            posX++;
            index++;
        }
        posX = 0;
        posY++;
    }
    if (empires.size() > index) {
        staticPane.addItem(new GuiItem(GUIs.createGuiItem(player, plugin, null, Material.SPECTRAL_ARROW, "&Next page", null, GUIs.adaptLore(player, null)), event -> {
            paginatedPane.setPage(page + 1);
            gui.setTitle(AdaptMessage.playerMessage(player, territory.getDisplay() + "'s Empire - Page " + (page + 1)));
            gui.update();
        }), 8, 5);
    }
    return staticPane;
}
Also used : OutlinePane(com.github.stefvanschie.inventoryframework.pane.OutlinePane) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) ChestGui(com.github.stefvanschie.inventoryframework.gui.type.ChestGui) EmpireManager(fr.rosstail.nodewar.empires.EmpireManager) AdaptMessage(fr.rosstail.nodewar.lang.AdaptMessage) Player(org.bukkit.entity.Player) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane) ItemStack(org.bukkit.inventory.ItemStack) ArrayList(java.util.ArrayList) LangMessage(fr.rosstail.nodewar.lang.LangMessage) Objective(fr.rosstail.nodewar.territory.zonehandlers.objective.Objective) LangManager(fr.rosstail.nodewar.lang.LangManager) GUIs(fr.rosstail.nodewar.guis.GUIs) Empire(fr.rosstail.nodewar.empires.Empire) Pane(com.github.stefvanschie.inventoryframework.pane.Pane) Territory(fr.rosstail.nodewar.territory.zonehandlers.Territory) Nodewar(fr.rosstail.nodewar.Nodewar) Material(org.bukkit.Material) PaginatedPane(com.github.stefvanschie.inventoryframework.pane.PaginatedPane) Objective(fr.rosstail.nodewar.territory.zonehandlers.objective.Objective) GuiItem(com.github.stefvanschie.inventoryframework.gui.GuiItem) Empire(fr.rosstail.nodewar.empires.Empire) ArrayList(java.util.ArrayList) StaticPane(com.github.stefvanschie.inventoryframework.pane.StaticPane)

Aggregations

PaginatedPane (com.github.stefvanschie.inventoryframework.pane.PaginatedPane)16 GuiItem (com.github.stefvanschie.inventoryframework.gui.GuiItem)15 ChestGui (com.github.stefvanschie.inventoryframework.gui.type.ChestGui)14 ItemStack (org.bukkit.inventory.ItemStack)14 OutlinePane (com.github.stefvanschie.inventoryframework.pane.OutlinePane)13 StaticPane (com.github.stefvanschie.inventoryframework.pane.StaticPane)11 Material (org.bukkit.Material)9 Player (org.bukkit.entity.Player)9 ArrayList (java.util.ArrayList)6 Pane (com.github.stefvanschie.inventoryframework.pane.Pane)5 GUIs (fr.rosstail.nodewar.guis.GUIs)5 AdaptMessage (fr.rosstail.nodewar.lang.AdaptMessage)5 Nodewar (fr.rosstail.nodewar.Nodewar)4 ChatColor (org.bukkit.ChatColor)4 Main (com.gmail.stefvanschiedev.buildinggame.Main)3 MessageManager (com.gmail.stefvanschiedev.buildinggame.managers.messages.MessageManager)3 Territory (fr.rosstail.nodewar.territory.zonehandlers.Territory)3 List (java.util.List)3 Orientable (com.github.stefvanschie.inventoryframework.pane.Orientable)2 PercentageBar (com.github.stefvanschie.inventoryframework.pane.component.PercentageBar)2