Moved #getPage #getMaxPage to Menu

This commit is contained in:
Auxilor
2022-10-02 12:20:57 +01:00
parent 3b4aa59bfb
commit debb39105d
3 changed files with 28 additions and 31 deletions

View File

@@ -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.
*

View File

@@ -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.
*

View File

@@ -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;