From d36da0963c995f954dc65a2fc635509cbb7bdf23 Mon Sep 17 00:00:00 2001 From: MrJeremyFisher Date: Wed, 24 Jun 2026 18:41:43 -0400 Subject: [PATCH] Fix auto scrolling --- .../snitchmod/common/JalistAutoPaginator.java | 16 ++++++++-------- .../civ/snitchmod/common/SnitchMod.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/JalistAutoPaginator.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/JalistAutoPaginator.java index 8a816f4..1b1e175 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/JalistAutoPaginator.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/JalistAutoPaginator.java @@ -8,6 +8,7 @@ import net.minecraft.world.item.Items; import java.util.HashSet; +import java.util.List; import java.util.Set; public class JalistAutoPaginator { @@ -57,7 +58,7 @@ public void startAutoPagination() { logToChat("Starting JAList auto-pagination... This will read all pages automatically."); // Start the first page click immediately - mc.execute(this::clickNextPage); + mc.execute(() -> clickNextPage(((AbstractContainerScreen) mc.screen).getMenu().getItems())); } public void stopAutoPagination() { @@ -89,7 +90,7 @@ public void stopAutoPagination() { } } - public void onJalistPageLoaded(int snitchCount) { + public void onJalistPageLoaded(List stacks, int snitchCount) { if (!isActive) return; pagesProcessed++; @@ -102,7 +103,7 @@ public void onJalistPageLoaded(int snitchCount) { } // Click next page instantly on page load for maximum speed - mc.execute(this::clickNextPage); + mc.execute(() -> clickNextPage(stacks)); } public void addSnitchEntry(String group, long dormantTs, long cullTs) { @@ -122,7 +123,7 @@ public void addSnitchEntry(String group, long dormantTs, long cullTs) { } } - private void clickNextPage() { + private void clickNextPage(List stacks) { if (!isActive || waitingForNextPage) { return; } @@ -140,13 +141,12 @@ private void clickNextPage() { // Get the next page button (arrow in slot 53) var container = containerScreen.getMenu(); - - if (container.slots.size() <= NEXT_PAGE_SLOT) { + if (stacks.size() <= NEXT_PAGE_SLOT) { stopAutoPagination(); return; } - - ItemStack nextPageItem = container.getSlot(NEXT_PAGE_SLOT).getItem(); + + ItemStack nextPageItem = stacks.get(NEXT_PAGE_SLOT); // Check if there's a next page (should be an arrow item) if (nextPageItem.isEmpty() || !isArrowItem(nextPageItem)) { diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/SnitchMod.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/SnitchMod.java index 523df50..a3366aa 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/SnitchMod.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/SnitchMod.java @@ -332,7 +332,7 @@ public void handleWindowItems(List stacks) { if (jalistEntries.size() > 0) { // Notify auto-paginator that this page was processed if (JalistAutoPaginator.getInstance().isActive()) { - JalistAutoPaginator.getInstance().onJalistPageLoaded(jalistEntries.size()); + JalistAutoPaginator.getInstance().onJalistPageLoaded(stacks, jalistEntries.size()); } else { logToChat(Component.literal("Found " + jalistEntries.size() + " snitches on JAList page")); }