From 74b4c411603758adaf2090c51a72a145f518207e Mon Sep 17 00:00:00 2001 From: Eldrinn-Elantey <46845681+Eldrinn-Elantey@users.noreply.github.com> Date: Wed, 10 Jun 2026 04:00:42 +0400 Subject: [PATCH] Fix cursor jumping when closing rank editor GUI closeScreen() was always called before displayGuiScreen(prevScreen), triggering setIngameFocus() which grabbed and centered the mouse. setCursorPosition then tried to restore the cursor but had inverted Y (LWJGL2 getY is bottom-origin, setCursorPosition is top-origin). Fixed by skipping closeScreen() when a previous screen is being opened, making cursor restoration unnecessary. --- src/main/java/serverutils/lib/gui/GuiBase.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/serverutils/lib/gui/GuiBase.java b/src/main/java/serverutils/lib/gui/GuiBase.java index 9c8afbb5..a493b987 100644 --- a/src/main/java/serverutils/lib/gui/GuiBase.java +++ b/src/main/java/serverutils/lib/gui/GuiBase.java @@ -18,7 +18,6 @@ import net.minecraft.util.StatCollector; import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; import com.gtnewhorizon.gtnhlib.util.FilesUtil; @@ -146,12 +145,11 @@ public GuiScreen getPrevScreen() { @Override public final void closeGui(boolean openPrevScreen) { - int mx = Mouse.getX(); - int my = Mouse.getY(); - Minecraft mc = Minecraft.getMinecraft(); - if (mc.thePlayer != null) { + if (openPrevScreen) { + mc.displayGuiScreen(getPrevScreen()); + } else if (mc.thePlayer != null) { mc.thePlayer.closeScreen(); if (mc.currentScreen == null) { @@ -159,11 +157,6 @@ public final void closeGui(boolean openPrevScreen) { } } - if (openPrevScreen) { - mc.displayGuiScreen(getPrevScreen()); - Mouse.setCursorPosition(mx, my); - } - onClosed(); }