From 80d281de9515d548ef6676f86d67460c229a0ea3 Mon Sep 17 00:00:00 2001 From: GaLi <3096147684@qq.com> Date: Fri, 8 Aug 2025 23:19:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E6=A0=B7=E6=9D=BF?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=99=A8=E9=A1=B5=E7=A0=81=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mixin/GuiExPatternProviderMixin.java | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java index 915f8e8..c1cff42 100644 --- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java @@ -54,10 +54,11 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen= 0); - } + // 更新按钮可见性 - 始终显示,支持循环翻页 + if (nextPage != null && prevPage != null) { + this.nextPage.setVisibility(true); + this.prevPage.setVisibility(true); + } // 调整槽位位置 this.adjustSlotPositions(page); @@ -189,34 +190,33 @@ public abstract class GuiExPatternProviderMixin extends PatternProviderScreen SLOTS_PER_PAGE) { // 前进后退按钮 - this.prevPage = new ActionEPPButton((b) -> { - int currentPage = getCurrentPage(); - if (currentPage > 0) { - // 发送网络包更新页码 - // 这里简化处理,直接调用setPage方法 - try { - ContainerExPatternProvider menu1 = this.getMenu(); - java.lang.reflect.Method setPageMethod = menu1.getClass().getMethod("setPage", int.class); - setPageMethod.invoke(menu1, currentPage - 1); - } catch (Exception e) { - // 忽略反射错误 - } - } - }, Icon.ARROW_LEFT); + this.prevPage = new ActionEPPButton((b) -> { + int currentPage = getCurrentPage(); + int maxPage = getMaxPage(); + // 循环翻页:第一页向前翻到最后一页 + int newPage = (currentPage - 1 + maxPage) % maxPage; + try { + ContainerExPatternProvider menu1 = this.getMenu(); + java.lang.reflect.Method setPageMethod = menu1.getClass().getMethod("setPage", int.class); + setPageMethod.invoke(menu1, newPage); + } catch (Exception e) { + // 忽略反射错误 + } + }, Icon.ARROW_LEFT); - this.nextPage = new ActionEPPButton((b) -> { - int currentPage = getCurrentPage(); - int maxPage = getMaxPage(); - if (currentPage + 1 < maxPage) { - try { - ContainerExPatternProvider menu1 = this.getMenu(); - java.lang.reflect.Method setPageMethod = menu1.getClass().getMethod("setPage", int.class); - setPageMethod.invoke(menu1, currentPage + 1); - } catch (Exception e) { - // 忽略反射错误 - } - } - }, Icon.ARROW_RIGHT); + this.nextPage = new ActionEPPButton((b) -> { + int currentPage = getCurrentPage(); + int maxPage = getMaxPage(); + // 循环翻页:最后一页向后翻到第一页 + int newPage = (currentPage + 1) % maxPage; + try { + ContainerExPatternProvider menu1 = this.getMenu(); + java.lang.reflect.Method setPageMethod = menu1.getClass().getMethod("setPage", int.class); + setPageMethod.invoke(menu1, newPage); + } catch (Exception e) { + // 忽略反射错误 + } + }, Icon.ARROW_RIGHT); this.addToLeftToolbar(this.nextPage); this.addToLeftToolbar(this.prevPage);