diff --git a/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractPagedGui.java b/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractPagedGui.java index 6214bae..e72d3ba 100644 --- a/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractPagedGui.java +++ b/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractPagedGui.java @@ -70,6 +70,12 @@ public abstract class AbstractPagedGui extends AbstractGui implements PagedGu return Math.max(0, Math.min(page, getPageAmount() - 1)); } + private void correctCurrentPage() { + int correctedPage = correctPage(currentPage); + if (correctedPage != currentPage) + setPage(correctedPage); + } + @Override public boolean hasNextPage() { return currentPage < getPageAmount() - 1 || infinitePages; @@ -81,6 +87,7 @@ public abstract class AbstractPagedGui extends AbstractGui implements PagedGu } protected void update() { + correctCurrentPage(); updateControlItems(); updatePageContent(); } diff --git a/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractScrollGui.java b/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractScrollGui.java index f506b08..acb431b 100644 --- a/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractScrollGui.java +++ b/invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractScrollGui.java @@ -80,6 +80,12 @@ public abstract class AbstractScrollGui extends AbstractGui implements Scroll return Math.max(0, Math.min(line, getMaxLine())); } + private void correctCurrentLine() { + int correctedLine = correctLine(currentLine); + if (correctedLine != currentLine) + setCurrentLine(correctedLine); + } + @Override public boolean canScroll(int lines) { if (lines == 0 || (infiniteLines && lines > 0) || (lines < 0 && getCurrentLine() > 0)) return true; @@ -104,6 +110,7 @@ public abstract class AbstractScrollGui extends AbstractGui implements Scroll } protected void update() { + correctCurrentLine(); updateControlItems(); updateContent(); }