From 3969d9312e82b9f3c07b2bf9a2af370575d16c41 Mon Sep 17 00:00:00 2001 From: isXander Date: Fri, 5 May 2023 17:34:51 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20crashes=20with=20some=20un?= =?UTF-8?q?mapped=20joysticks.=20(close=20#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../joystick/mapping/UnmappedJoystickMapping.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/controller/joystick/mapping/UnmappedJoystickMapping.java b/src/main/java/dev/isxander/controlify/controller/joystick/mapping/UnmappedJoystickMapping.java index 2d6c171..e52de5d 100644 --- a/src/main/java/dev/isxander/controlify/controller/joystick/mapping/UnmappedJoystickMapping.java +++ b/src/main/java/dev/isxander/controlify/controller/joystick/mapping/UnmappedJoystickMapping.java @@ -7,6 +7,10 @@ import dev.isxander.controlify.controller.joystick.render.JoystickRenderer; import net.minecraft.network.chat.Component; import org.lwjgl.glfw.GLFW; +import java.nio.ByteBuffer; +import java.nio.FloatBuffer; +import java.util.Optional; + public class UnmappedJoystickMapping implements JoystickMapping { public static final UnmappedJoystickMapping EMPTY = new UnmappedJoystickMapping(0, 0, 0); @@ -33,9 +37,9 @@ public class UnmappedJoystickMapping implements JoystickMapping { public UnmappedJoystickMapping(int joystickId) { this( - GLFW.glfwGetJoystickAxes(joystickId).limit(), - GLFW.glfwGetJoystickButtons(joystickId).limit(), - GLFW.glfwGetJoystickHats(joystickId).limit() + Optional.ofNullable(GLFW.glfwGetJoystickAxes(joystickId)).map(FloatBuffer::limit).orElse(0), + Optional.ofNullable(GLFW.glfwGetJoystickButtons(joystickId)).map(ByteBuffer::limit).orElse(0), + Optional.ofNullable(GLFW.glfwGetJoystickHats(joystickId)).map(ByteBuffer::limit).orElse(0) ); }