From a1043558dd598a27c77d71f4ff142d4a6da8c5d0 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 13 Oct 2025 20:57:13 +0200 Subject: [PATCH] 1.21.9 compatibility --- gradle.properties | 10 +++--- src/main/java/com/ui_utils/MainClient.java | 8 +++-- .../ui_utils/mixin/BookEditScreenMixin.java | 7 +++-- .../com/ui_utils/mixin/BookScreenMixin.java | 7 +++-- .../ui_utils/mixin/HandledScreenMixin.java | 31 ++++++++++++------- .../java/com/ui_utils/mixin/ScreenMixin.java | 7 +++-- 6 files changed, 42 insertions(+), 28 deletions(-) diff --git a/gradle.properties b/gradle.properties index f0c9177..d5f84ca 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,14 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.7 -yarn_mappings=1.21.7+build.6 -loader_version=0.16.14 +minecraft_version=1.21.9 +yarn_mappings=1.21.9+build.1 +loader_version=0.17.0 # Fabric API -fabric_version=0.128.2+1.21.7 +fabric_version=0.130.0+1.21.9 # Mod Properties -mod_version = 2.4.0 +mod_version = 2.4.1 #x.y.z diff --git a/src/main/java/com/ui_utils/MainClient.java b/src/main/java/com/ui_utils/MainClient.java index 6e50a03..af360cb 100644 --- a/src/main/java/com/ui_utils/MainClient.java +++ b/src/main/java/com/ui_utils/MainClient.java @@ -16,6 +16,7 @@ import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; +import net.minecraft.client.util.MacWindowUtil; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.c2s.play.ButtonClickC2SPacket; import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; @@ -24,6 +25,7 @@ import net.minecraft.screen.sync.ItemStackHash; import net.minecraft.text.Text; import net.minecraft.text.TextCodecs; +import net.minecraft.util.Identifier; import org.jetbrains.annotations.NotNull; import org.lwjgl.glfw.GLFW; import org.slf4j.Logger; @@ -49,7 +51,7 @@ public void onInitializeClient() { UpdateUtils.checkForUpdates(); // register "restore screen" key - restoreScreenKey = KeyBindingHelper.registerKeyBinding(new KeyBinding("Restore Screen", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_V, "UI Utils")); + restoreScreenKey = KeyBindingHelper.registerKeyBinding(new KeyBinding("Restore Screen", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_V, new KeyBinding.Category(Identifier.of("UI Utils")))); // register event for END_CLIENT_TICK ClientTickEvents.END_CLIENT_TICK.register((client) -> { @@ -63,7 +65,7 @@ public void onInitializeClient() { }); // set java.awt.headless to false if os is not mac (allows for JFrame guis to be used) - if (!MinecraftClient.IS_SYSTEM_MAC) { + if (!MacWindowUtil.IS_MAC) { System.setProperty("java.awt.headless", "false"); monospace = new Font(Font.MONOSPACED, Font.PLAIN, 10); darkWhite = new Color(220, 220, 220); @@ -441,7 +443,7 @@ public static void createWidgets(MinecraftClient mc, Screen screen) { frame.add(buttonClickButton); frame.setVisible(true); }).width(115).position(5, 185).build(); - fabricatePacketButton.active = !MinecraftClient.IS_SYSTEM_MAC; + fabricatePacketButton.active = !MacWindowUtil.IS_MAC; screen.addDrawableChild(fabricatePacketButton); screen.addDrawableChild(ButtonWidget.builder(Text.of("Copy GUI Title JSON"), (button) -> { diff --git a/src/main/java/com/ui_utils/mixin/BookEditScreenMixin.java b/src/main/java/com/ui_utils/mixin/BookEditScreenMixin.java index 1a78367..fe386c9 100644 --- a/src/main/java/com/ui_utils/mixin/BookEditScreenMixin.java +++ b/src/main/java/com/ui_utils/mixin/BookEditScreenMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.BookEditScreen; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.input.KeyInput; import net.minecraft.text.Text; import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; @@ -32,8 +33,8 @@ public void init(CallbackInfo ci) { // create chat box TextFieldWidget addressField = new TextFieldWidget(textRenderer, 5, 245, 160, 20, Text.of("Chat ...")) { @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ENTER) { + public boolean keyPressed(KeyInput input) { + if (input.key() == GLFW.GLFW_KEY_ENTER) { if (this.getText().equals("^toggleuiutils")) { SharedVariables.enabled = !SharedVariables.enabled; if (mc.player != null) { @@ -54,7 +55,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { this.setText(""); } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(input); } }; addressField.setText(""); diff --git a/src/main/java/com/ui_utils/mixin/BookScreenMixin.java b/src/main/java/com/ui_utils/mixin/BookScreenMixin.java index 87b9a19..25ec803 100644 --- a/src/main/java/com/ui_utils/mixin/BookScreenMixin.java +++ b/src/main/java/com/ui_utils/mixin/BookScreenMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.BookScreen; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.input.KeyInput; import net.minecraft.text.Text; import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; @@ -32,8 +33,8 @@ public void init(CallbackInfo ci) { // create chat box TextFieldWidget addressField = new TextFieldWidget(textRenderer, 5, 245, 160, 20, Text.of("Chat ...")) { @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ENTER) { + public boolean keyPressed(KeyInput input) { + if (input.key() == GLFW.GLFW_KEY_ENTER) { if (this.getText().equals("^toggleuiutils")) { SharedVariables.enabled = !SharedVariables.enabled; if (mc.player != null) { @@ -54,7 +55,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { this.setText(""); } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(input); } }; addressField.setText(""); diff --git a/src/main/java/com/ui_utils/mixin/HandledScreenMixin.java b/src/main/java/com/ui_utils/mixin/HandledScreenMixin.java index 7d8a900..54f32eb 100644 --- a/src/main/java/com/ui_utils/mixin/HandledScreenMixin.java +++ b/src/main/java/com/ui_utils/mixin/HandledScreenMixin.java @@ -5,6 +5,8 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.input.KeyInput; +import net.minecraft.client.util.InputUtil; import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.SlotActionType; import net.minecraft.text.Text; @@ -29,7 +31,7 @@ private HandledScreenMixin() { } @Shadow - protected abstract boolean handleHotbarKeyPressed(int keyCode, int scanCode); + protected abstract boolean handleHotbarKeyPressed(KeyInput input); @Shadow protected abstract void onMouseClick(Slot slot, int slotId, int button, SlotActionType actionType); @Shadow @@ -51,8 +53,8 @@ public void init(CallbackInfo ci) { // create chat box this.addressField = new TextFieldWidget(this.textRenderer, 5, 245, 160, 20, Text.of("Chat ...")) { @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ENTER) { + public boolean keyPressed(KeyInput input) { + if (input.key() == GLFW.GLFW_KEY_ENTER) { if (this.getText().equals("^toggleuiutils")) { SharedVariables.enabled = !SharedVariables.enabled; if (mc.player != null) { @@ -74,7 +76,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { this.setText(""); } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(input); } }; this.addressField.setText(""); @@ -85,21 +87,28 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Inject(at = @At("HEAD"), method = "keyPressed", cancellable = true) - public void keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable cir) { + public void keyPressed(KeyInput input, CallbackInfoReturnable cir) { cir.cancel(); - if (super.keyPressed(keyCode, scanCode, modifiers)) { + if (super.keyPressed(input)) { cir.setReturnValue(true); - } else if (MainClient.mc.options.inventoryKey.matchesKey(keyCode, scanCode) && (this.addressField == null || !this.addressField.isSelected())) { + } else if (MainClient.mc.options.inventoryKey.matchesKey(input) && (this.addressField == null || !this.addressField.isSelected())) { // Crashes if address field does not exist (because of ui utils disabled, this is a temporary fix.) this.close(); cir.setReturnValue(true); } else { - this.handleHotbarKeyPressed(keyCode, scanCode); + this.handleHotbarKeyPressed(input); if (this.focusedSlot != null && this.focusedSlot.hasStack()) { - if (mc.options.pickItemKey.matchesKey(keyCode, scanCode)) { + if (mc.options.pickItemKey.matchesKey(input)) { this.onMouseClick(this.focusedSlot, this.focusedSlot.id, 0, SlotActionType.CLONE); - } else if (mc.options.dropKey.matchesKey(keyCode, scanCode)) { - this.onMouseClick(this.focusedSlot, this.focusedSlot.id, hasControlDown() ? 1 : 0, SlotActionType.THROW); + } else if (mc.options.dropKey.matchesKey(input)) { + + this.onMouseClick(this.focusedSlot, this.focusedSlot.id, InputUtil.isKeyPressed( + MinecraftClient.getInstance().getWindow(), + GLFW.GLFW_KEY_LEFT_CONTROL + ) || InputUtil.isKeyPressed( + MinecraftClient.getInstance().getWindow(), + GLFW.GLFW_KEY_RIGHT_CONTROL + ) ? 1 : 0, SlotActionType.THROW); } } diff --git a/src/main/java/com/ui_utils/mixin/ScreenMixin.java b/src/main/java/com/ui_utils/mixin/ScreenMixin.java index 69439f2..fcb93a6 100644 --- a/src/main/java/com/ui_utils/mixin/ScreenMixin.java +++ b/src/main/java/com/ui_utils/mixin/ScreenMixin.java @@ -9,6 +9,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.LecternScreen; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.input.KeyInput; import net.minecraft.text.Text; import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Mixin; @@ -51,8 +52,8 @@ public void init(MinecraftClient client, int width, int height, CallbackInfo ci) // create chat box this.addressField = new TextFieldWidget(textRenderer, 5, 245, 160, 20, Text.of("Chat ...")) { @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ENTER) { + public boolean keyPressed(KeyInput input) { + if (input.key() == GLFW.GLFW_KEY_ENTER) { if (this.getText().equals("^toggleuiutils")) { SharedVariables.enabled = !SharedVariables.enabled; if (mc.player != null) { @@ -73,7 +74,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { this.setText(""); } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(input); } }; this.addressField.setText("");