diff --git a/eco-api/src/main/java/com/willfp/eco/core/gui/menu/Menu.java b/eco-api/src/main/java/com/willfp/eco/core/gui/menu/Menu.java index c6513cb5..9fb2fff2 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/gui/menu/Menu.java +++ b/eco-api/src/main/java/com/willfp/eco/core/gui/menu/Menu.java @@ -1,6 +1,7 @@ package com.willfp.eco.core.gui.menu; import com.willfp.eco.core.Eco; +import com.willfp.eco.core.gui.page.Page; import com.willfp.eco.core.gui.slot.Slot; import com.willfp.eco.util.NamespacedKeyUtils; import org.bukkit.NamespacedKey; @@ -182,6 +183,28 @@ public interface Menu { // Override when needed. } + /** + * Get the current page a player is on. + * + * @param player The player. + * @return The page. + */ + default int getPage(@NotNull final Player player) { + Integer pageState = this.getState(player, Page.PAGE_KEY); + return Objects.requireNonNullElse(pageState, 1); + } + + /** + * Get the max page for a player. + * + * @param player The player. + * @return The page. + */ + default int getMaxPage(@NotNull final Player player) { + Integer pageState = this.getState(player, Page.MAX_PAGE_KEY); + return Objects.requireNonNullElse(pageState, Integer.MAX_VALUE); + } + /** * Write data. * diff --git a/eco-api/src/main/java/com/willfp/eco/core/gui/page/Page.java b/eco-api/src/main/java/com/willfp/eco/core/gui/page/Page.java index 93351aa0..58f7d962 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/gui/page/Page.java +++ b/eco-api/src/main/java/com/willfp/eco/core/gui/page/Page.java @@ -77,7 +77,7 @@ public final class Page implements GUIComponent { final int column, @NotNull final Player player, @NotNull final Menu menu) { - if (getPage(player, menu) != pageNumber) { + if (menu.getPage(player) != pageNumber) { return null; } @@ -105,32 +105,6 @@ public final class Page implements GUIComponent { return columns; } - /** - * Get the page. - * - * @param player The player. - * @param menu The menu. - * @return The page. - */ - public static int getPage(@NotNull final Player player, - @NotNull final Menu menu) { - Integer pageState = menu.getState(player, Page.PAGE_KEY); - return Objects.requireNonNullElse(pageState, 1); - } - - /** - * Get the page. - * - * @param player The player. - * @param menu The menu. - * @return The page. - */ - public static int getMaxPage(@NotNull final Player player, - @NotNull final Menu menu) { - Integer pageState = menu.getState(player, Page.MAX_PAGE_KEY); - return Objects.requireNonNullElse(pageState, Integer.MAX_VALUE); - } - /** * Create a new page builder. * diff --git a/eco-api/src/main/java/com/willfp/eco/core/gui/page/PageChanger.java b/eco-api/src/main/java/com/willfp/eco/core/gui/page/PageChanger.java index da752528..7737ad72 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/gui/page/PageChanger.java +++ b/eco-api/src/main/java/com/willfp/eco/core/gui/page/PageChanger.java @@ -35,12 +35,12 @@ public final class PageChanger implements GUIComponent { slot = Slot.builder(itemStack) .onLeftClick((event, slot, menu) -> { Player player = (Player) event.getWhoClicked(); - int page = Page.getPage(player, menu); + int page = menu.getPage(player); int newPage = Math.max( 1, Math.min( page + direction.getChange(), - Page.getMaxPage(player, menu) + menu.getMaxPage(player) ) ); @@ -72,8 +72,8 @@ public final class PageChanger implements GUIComponent { final int column, @NotNull final Player player, @NotNull final Menu menu) { - int page = Page.getPage(player, menu); - int maxPage = Page.getMaxPage(player, menu); + int page = menu.getPage(player); + int maxPage = menu.getMaxPage(player); if (page <= 1 && this.direction == Direction.BACKWARDS) { return null;