diff --git a/invui-core/src/main/java/xyz/xenondevs/invui/gui/PagedItemsGuiImpl.java b/invui-core/src/main/java/xyz/xenondevs/invui/gui/PagedItemsGuiImpl.java index 0d6063b..6ebac02 100644 --- a/invui-core/src/main/java/xyz/xenondevs/invui/gui/PagedItemsGuiImpl.java +++ b/invui-core/src/main/java/xyz/xenondevs/invui/gui/PagedItemsGuiImpl.java @@ -42,19 +42,22 @@ final class PagedItemsGuiImpl extends AbstractPagedGui { @Override public void bake() { - List items = content; int contentSize = getContentListSlots().length; - List> pages = new ArrayList<>(); + List items = content; - int pageAmount = items.size() / contentSize; - for (int pageIdx = 0; pageIdx < pageAmount; pageIdx++) { - int from = pageIdx * contentSize; - int to = Math.min(from + contentSize, items.size()); + List> pages = new ArrayList<>(); + List page = new ArrayList<>(contentSize); + + for (Item item : content) { + page.add(new SlotElement.ItemSlotElement(item)); - ArrayList page = new ArrayList<>(contentSize); - for (int i = from; i < to; i++) { - page.add(new SlotElement.ItemSlotElement(items.get(i))); + if (page.size() >= contentSize) { + pages.add(page); + page = new ArrayList<>(contentSize); } + } + + if (!page.isEmpty()) { pages.add(page); }