Moved #getPage #getMaxPage to Menu
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user