1
0
forked from Clones/Controlify

🐛 Potentially resolve client hang on shutdown issue (relates to #125)

This commit is contained in:
isXander
2023-08-06 23:55:19 +01:00
parent 4e732b7d8b
commit 8d3ce1d573
2 changed files with 11 additions and 0 deletions

View File

@ -31,6 +31,7 @@ import dev.isxander.controlify.utils.Log;
import dev.isxander.controlify.utils.ToastUtils; import dev.isxander.controlify.utils.ToastUtils;
import dev.isxander.controlify.virtualmouse.VirtualMouseHandler; import dev.isxander.controlify.virtualmouse.VirtualMouseHandler;
import dev.isxander.controlify.wireless.LowBatteryNotifier; import dev.isxander.controlify.wireless.LowBatteryNotifier;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
@ -105,6 +106,9 @@ public class Controlify implements ControlifyApi {
} }
ClientTickEvents.START_CLIENT_TICK.register(this::tick); ClientTickEvents.START_CLIENT_TICK.register(this::tick);
ClientLifecycleEvents.CLIENT_STOPPING.register(minecraft -> {
controllerHIDService().stop();
});
// listen for new controllers // listen for new controllers
GLFW.glfwSetJoystickCallback((jid, event) -> { GLFW.glfwSetJoystickCallback((jid, event) -> {

View File

@ -47,6 +47,13 @@ public class ControllerHIDService {
} }
} }
public void stop() {
if (!disabled && services != null) {
services.shutdown();
disabled = true;
}
}
public ControllerHIDInfo fetchType(int jid) { public ControllerHIDInfo fetchType(int jid) {
ControllerHIDInfo info; ControllerHIDInfo info;
try { try {