From 6d96b396037a1d89b955d2714d55173f3e333e65 Mon Sep 17 00:00:00 2001 From: Exterminate Date: Wed, 16 Sep 2026 15:32:00 +1000 Subject: [PATCH 1/5] 26.3 compatibility --- .../kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java index 8d487e47..09a45d09 100644 --- a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java +++ b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java @@ -37,7 +37,7 @@ public void onInitialize() { // However, some things (like resources) may still be uninitialized. API.LOGGER.info("Loading " + API.NAME + " " + API.VERSION); API.preInit(getClass()); - registerKeybindingsFromGUIs(); + //registerKeybindingsFromGUIs(); HudElementRegistry.attachElementBefore(VanillaHudElements.PLAYER_LIST, Identifier.fromNamespaceAndPath(API.MODID, "hud_layer"), eventHandler::onInGameOverlayRender); ClientTickEvents.START_CLIENT_TICK.register(eventHandler::onClientTickStart); From f24ca61bfa2ad96d7049b909f6d044ecf4af6405 Mon Sep 17 00:00:00 2001 From: Exterminate Date: Wed, 16 Sep 2026 15:34:18 +1000 Subject: [PATCH 2/5] Fix settings loading --- .../main/java/io/github/kurrycat/mpkmod/settings/Settings.java | 1 - 1 file changed, 1 deletion(-) diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java b/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java index fbd92af9..3a112a69 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java @@ -82,7 +82,6 @@ public static void loadSettings() { if (settings == null) { if (JSONConfig.optionsFile.exists()) { JSONConfig.optionsFile.delete(); - saveSettings(); } else { saveSettings(); } From e84f22f32c236ecbdaf50b2a53c64c63df1e37b3 Mon Sep 17 00:00:00 2001 From: Exterminate Date: Wed, 16 Sep 2026 15:34:40 +1000 Subject: [PATCH 3/5] also save --- .../main/java/io/github/kurrycat/mpkmod/settings/Settings.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java b/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java index 3a112a69..fbd92af9 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/settings/Settings.java @@ -82,6 +82,7 @@ public static void loadSettings() { if (settings == null) { if (JSONConfig.optionsFile.exists()) { JSONConfig.optionsFile.delete(); + saveSettings(); } else { saveSettings(); } From 110965393537941b89bb291a515956e35f3406e5 Mon Sep 17 00:00:00 2001 From: Exterminate Date: Wed, 16 Sep 2026 15:37:17 +1000 Subject: [PATCH 4/5] forgor --- .../kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java index 09a45d09..8d487e47 100644 --- a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java +++ b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKMod.java @@ -37,7 +37,7 @@ public void onInitialize() { // However, some things (like resources) may still be uninitialized. API.LOGGER.info("Loading " + API.NAME + " " + API.VERSION); API.preInit(getClass()); - //registerKeybindingsFromGUIs(); + registerKeybindingsFromGUIs(); HudElementRegistry.attachElementBefore(VanillaHudElements.PLAYER_LIST, Identifier.fromNamespaceAndPath(API.MODID, "hud_layer"), eventHandler::onInGameOverlayRender); ClientTickEvents.START_CLIENT_TICK.register(eventHandler::onClientTickStart); From bf33c8fd598211727125029ee66520bc9cdd8c8b Mon Sep 17 00:00:00 2001 From: Exterminate Date: Wed, 7 Oct 2026 21:27:45 +1100 Subject: [PATCH 5/5] fix mouse button issues --- .../kurrycat/mpkmod/gui/ComponentScreen.java | 18 +++++++++--------- .../kurrycat/mpkmod/gui/MPKGuiScreen.java | 7 ++++--- .../io/github/kurrycat/mpkmod/util/Mouse.java | 19 ++++++++++++++++++- fabric-26.3/build.gradle | 6 +++--- .../fabric_26_3/EventHandler.java | 4 ++-- .../fabric_26_3/MPKGuiScreen.java | 6 +++--- .../forge_1_12_2/MPKGuiScreen.java | 6 +++--- .../compatibility/forge_1_8/MPKGuiScreen.java | 6 +++--- gradle.properties | 2 +- 9 files changed, 46 insertions(+), 28 deletions(-) diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/gui/ComponentScreen.java b/common/src/main/java/io/github/kurrycat/mpkmod/gui/ComponentScreen.java index 97f097f4..a39b07f1 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/gui/ComponentScreen.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/gui/ComponentScreen.java @@ -90,14 +90,14 @@ public void onKeyEvent(int keyCode, int scanCode, int modifiers, boolean isCharT } } - public void onMouseClicked(Vector2D mouse, int mouseButton) { + public void onMouseClicked(Vector2D mouse, Mouse.Button mouseButton) { super.onMouseClicked(mouse, mouseButton); - if (handleMouseInput(Mouse.State.DOWN, mouse, Mouse.Button.fromInt(mouseButton))) return; + if (handleMouseInput(Mouse.State.DOWN, mouse, mouseButton)) return; if (movableComponents.isEmpty()) return; - if (Mouse.Button.LEFT.equals(mouseButton)) { + if (Mouse.Button.LEFT.equals(mouseButton.value)) { highlighted.clear(); lastClickedPos = mouse; @@ -111,7 +111,7 @@ public void onMouseClicked(Vector2D mouse, int mouseButton) { selected.add(clicked); holding.add(clicked); } - } else if (Mouse.Button.RIGHT.equals(mouseButton)) { + } else if (Mouse.Button.RIGHT.equals(mouseButton.value)) { highlighted.clear(); if (lastClickedPos != null && lastClicked == null) { lastClickedPos = null; @@ -207,24 +207,24 @@ public void onMouseClicked(Vector2D mouse, int mouseButton) { } } - public void onMouseClickMove(Vector2D mouse, int mouseButton, long timeSinceLastClick) { + public void onMouseClickMove(Vector2D mouse, Mouse.Button mouseButton, long timeSinceLastClick) { super.onMouseClickMove(mouse, mouseButton, timeSinceLastClick); - if (handleMouseInput(Mouse.State.DRAG, mouse, Mouse.Button.fromInt(mouseButton))) return; + if (handleMouseInput(Mouse.State.DRAG, mouse, mouseButton)) return; if (movableComponents.isEmpty()) return; selected = selected.stream().filter(c -> holding.contains(c)).collect(Collectors.toCollection(HashSet::new)); } - public void onMouseReleased(Vector2D mouse, int mouseButton) { + public void onMouseReleased(Vector2D mouse, Mouse.Button mouseButton) { super.onMouseReleased(mouse, mouseButton); - if (handleMouseInput(Mouse.State.UP, mouse, Mouse.Button.fromInt(mouseButton))) return; + if (handleMouseInput(Mouse.State.UP, mouse, mouseButton)) return; if (movableComponents.isEmpty()) return; - if (Mouse.Button.LEFT.equals(mouseButton) && lastClickedPos != null) { + if (Mouse.Button.LEFT.equals(mouseButton.value) && lastClickedPos != null) { boolean moved = lastClickedPos.sub(mouse).lengthSqr() > 3 * 3; if (!moved && lastClicked != null) { selected.clear(); diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/gui/MPKGuiScreen.java b/common/src/main/java/io/github/kurrycat/mpkmod/gui/MPKGuiScreen.java index 74b8c4d4..931350f1 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/gui/MPKGuiScreen.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/gui/MPKGuiScreen.java @@ -3,6 +3,7 @@ import io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft; import io.github.kurrycat.mpkmod.compatibility.MCClasses.Renderer2D; import io.github.kurrycat.mpkmod.gui.components.ComponentHolder; +import io.github.kurrycat.mpkmod.util.Mouse; import io.github.kurrycat.mpkmod.util.Vector2D; import java.awt.*; @@ -59,13 +60,13 @@ public void onGuiResized(Vector2D screenSize) { public void onKeyEvent(int keyCode, int scanCode, int modifiers, boolean pressed) { } - public void onMouseClicked(Vector2D mouse, int mouseButton) { + public void onMouseClicked(Vector2D mouse, Mouse.Button mouseButton) { } - public void onMouseClickMove(Vector2D mouse, int mouseButton, long timeSinceLastClick) { + public void onMouseClickMove(Vector2D mouse, Mouse.Button mouseButton, long timeSinceLastClick) { } - public void onMouseReleased(Vector2D mouse, int mouseButton) { + public void onMouseReleased(Vector2D mouse, Mouse.Button mouseButton) { } /** diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/util/Mouse.java b/common/src/main/java/io/github/kurrycat/mpkmod/util/Mouse.java index e2245d70..a9e2544b 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/util/Mouse.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/util/Mouse.java @@ -22,7 +22,24 @@ public boolean equals(int v) { public static Button fromInt(int v) { for (Button b : values()) if (b.value == v) return b; - return null; + return NONE; + } + + public static Button fromIntLatest(int v) { + switch (v) { + case 1: + return LEFT; + case 2: + return WHEEL; + case 3: + return RIGHT; + case 4: // TODO Test 4 & 5 + return BUTTON_4; + case 5: + return BUTTON_5; + default: + return NONE; + } } } diff --git a/fabric-26.3/build.gradle b/fabric-26.3/build.gradle index bcbc7711..bdf03210 100644 --- a/fabric-26.3/build.gradle +++ b/fabric-26.3/build.gradle @@ -22,8 +22,8 @@ dependencies { implementation include("net.fabricmc.fabric-api:fabric-api:${project.fabric_version}") - compileOnly "com.viaversion:viafabricplus-api:5.0.1" // TODO: Update - compileOnly "com.terraformersmc:modmenu:21.0.0-beta.1" // TODO: Update + compileOnly "com.viaversion:viafabricplus-api:5.1.1" + compileOnly "com.terraformersmc:modmenu:21.0.0" implementation "com.github.MPKMod.MPKNetworkAPI:common:${project.networkApiVersion}" } @@ -46,7 +46,7 @@ publishMods { modrinth { projectId = "412tAvWq" accessToken = providers.environmentVariable("MODRINTH_TOKEN") - minecraftVersions.add("26.2") + minecraftVersions.add("26.3") } /*github { repository = "MPKMod/MPKMod2" diff --git a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/EventHandler.java b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/EventHandler.java index b8877596..2078605c 100644 --- a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/EventHandler.java +++ b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/EventHandler.java @@ -87,8 +87,8 @@ public void onMouseScroll(double vertical, double x, double y) { public void onMouseButton(MouseButtonInfo input, int action, double x, double y) { API.Events.onMouseInput( - io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(input.button()), - input.button() == -1 ? io.github.kurrycat.mpkmod.util.Mouse.State.NONE : + io.github.kurrycat.mpkmod.util.Mouse.Button.fromIntLatest(input.button()), + input.button() == 0 ? io.github.kurrycat.mpkmod.util.Mouse.State.NONE : (action == 1 ? io.github.kurrycat.mpkmod.util.Mouse.State.DOWN : io.github.kurrycat.mpkmod.util.Mouse.State.UP), (int) x, (int) y, 0, 0, 0, System.nanoTime() diff --git a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKGuiScreen.java b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKGuiScreen.java index 6f519684..3403023a 100644 --- a/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKGuiScreen.java +++ b/fabric-26.3/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_26_3/MPKGuiScreen.java @@ -57,19 +57,19 @@ public boolean isPauseScreen() { @Override public boolean mouseClicked(MouseButtonEvent click, boolean doubled) { - eventReceiver.onMouseClicked(new Vector2D(click.x(), click.y()), click.button()); + eventReceiver.onMouseClicked(new Vector2D(click.x(), click.y()), io.github.kurrycat.mpkmod.util.Mouse.Button.fromIntLatest(click.button())); return super.mouseClicked(click, doubled); } @Override public boolean mouseReleased(MouseButtonEvent click) { - eventReceiver.onMouseReleased(new Vector2D(click.x(), click.y()), click.button()); + eventReceiver.onMouseReleased(new Vector2D(click.x(), click.y()), io.github.kurrycat.mpkmod.util.Mouse.Button.fromIntLatest(click.button())); return super.mouseReleased(click); } @Override public boolean mouseDragged(MouseButtonEvent click, double offsetX, double offsetY) { - eventReceiver.onMouseClickMove(new Vector2D(click.x(), click.y()), click.button(), 0); + eventReceiver.onMouseClickMove(new Vector2D(click.x(), click.y()), io.github.kurrycat.mpkmod.util.Mouse.Button.fromIntLatest(click.button()), 0); return super.mouseDragged(click, offsetX, offsetY); } diff --git a/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/MPKGuiScreen.java b/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/MPKGuiScreen.java index e0ebd63d..b4261ecf 100644 --- a/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/MPKGuiScreen.java +++ b/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/MPKGuiScreen.java @@ -77,19 +77,19 @@ protected void keyTyped(char typedChar, int keyCode) throws IOException { @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); - eventReceiver.onMouseClicked(new Vector2D(mouseX, mouseY), mouseButton); + eventReceiver.onMouseClicked(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(mouseButton)); } @Override protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { super.mouseClickMove(mouseX, mouseY, clickedMouseButton, timeSinceLastClick); - eventReceiver.onMouseClickMove(new Vector2D(mouseX, mouseY), clickedMouseButton, timeSinceLastClick); + eventReceiver.onMouseClickMove(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(clickedMouseButton), timeSinceLastClick); } @Override protected void mouseReleased(int mouseX, int mouseY, int state) { super.mouseReleased(mouseX, mouseY, state); - eventReceiver.onMouseReleased(new Vector2D(mouseX, mouseY), state); + eventReceiver.onMouseReleased(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(state)); } @Override diff --git a/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/MPKGuiScreen.java b/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/MPKGuiScreen.java index 729cb671..8cc3235d 100644 --- a/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/MPKGuiScreen.java +++ b/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/MPKGuiScreen.java @@ -77,19 +77,19 @@ protected void keyTyped(char typedChar, int keyCode) throws IOException { @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); - eventReceiver.onMouseClicked(new Vector2D(mouseX, mouseY), mouseButton); + eventReceiver.onMouseClicked(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(mouseButton)); } @Override protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { super.mouseClickMove(mouseX, mouseY, clickedMouseButton, timeSinceLastClick); - eventReceiver.onMouseClickMove(new Vector2D(mouseX, mouseY), clickedMouseButton, timeSinceLastClick); + eventReceiver.onMouseClickMove(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(clickedMouseButton), timeSinceLastClick); } @Override protected void mouseReleased(int mouseX, int mouseY, int state) { super.mouseReleased(mouseX, mouseY, state); - eventReceiver.onMouseReleased(new Vector2D(mouseX, mouseY), state); + eventReceiver.onMouseReleased(new Vector2D(mouseX, mouseY), io.github.kurrycat.mpkmod.util.Mouse.Button.fromInt(state)); } @Override diff --git a/gradle.properties b/gradle.properties index cb892fa6..63fd7072 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ $group=io.github.kurrycat.mpkmod $jitpackGroup=com.github.mpkmod -$version=2.3.4 +$version=2.3.5 $apiVersion=1.0 $modBaseName=mpkmod $commonBaseName=mpkmod-common