caramelChat icon indicating copy to clipboard operation
caramelChat copied to clipboard

Fix crash under Wayland when pressing Ctrl+A/C/X/V while previewing

Open rsp4jack opened this issue 4 months ago • 0 comments

Ctrl+ACXV pressed while previewing under Wayland is processed by Minecraft, which is not expected in previewing state and usually results a crash like: (mixins removed from stacktrace)

java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 0
	at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) ~[?:?] {}
	at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) ~[?:?] {}
	at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4865) ~[?:?] 
	at java.base/java.lang.String.substring(String.java:2834) ~[?:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.gui.components.EditBox.getHighlighted(EditBox.java:112) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?
	at TRANSFORMER/[email protected]/net.minecraft.client.gui.components.EditBox.keyPressed(EditBox.java:280) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.client.gui.components.events.ContainerEventHandler.keyPressed(ContainerEventHandler.java:80) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?]
	at TRANSFORMER/[email protected]/net.minecraft.client.gui.screens.Screen.keyPressed(Screen.java:134) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.KeyboardHandler.lambda$keyPress$5(KeyboardHandler.java:411) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.gui.screens.Screen.wrapScreenError(Screen.java:451) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.KeyboardHandler.keyPress(KeyboardHandler.java:407) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.KeyboardHandler.lambda$setup$8(KeyboardHandler.java:515) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:98) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.KeyboardHandler.lambda$setup$9(KeyboardHandler.java:515) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at MC-BOOTSTRAP/[email protected]+5/org.lwjgl.glfw.GLFWKeyCallbackI.callback(GLFWKeyCallbackI.java:44) ~[lwjgl-glfw-3.3.3.jar%2395!/:build 5] {}
	at MC-BOOTSTRAP/[email protected]+5/org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.3.jar%23107!/:build 5] {}
	at MC-BOOTSTRAP/[email protected]+5/org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3509) ~[lwjgl-glfw-3.3.3.jar%2395!/:build 5] 
	at TRANSFORMER/[email protected]/com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(RenderSystem.java:162) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1220) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:807) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 
	at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:230) ~[client-1.21.1-20240808.144430-srg.jar%23318!/:?] 

or

com.sun.jna.Native$1 uncaughtException
java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 0
<i lost the stacktrace owo>

This PR simply ignores the shortcuts when previewing under Wayland.

rsp4jack avatar Jul 29 '25 14:07 rsp4jack