diff --git a/src/main/java/dev/isxander/controlify/Controlify.java b/src/main/java/dev/isxander/controlify/Controlify.java index 3986799..a8b3be9 100644 --- a/src/main/java/dev/isxander/controlify/Controlify.java +++ b/src/main/java/dev/isxander/controlify/Controlify.java @@ -116,7 +116,7 @@ public class Controlify implements ControlifyApi { this.onControllerDisconnect(jid); } }); - } catch (Exception e) { + } catch (Throwable e) { e.printStackTrace(); } }); @@ -203,7 +203,7 @@ public class Controlify implements ControlifyApi { FabricLoader.getInstance().getEntrypoints("controlify", ControlifyEntrypoint.class).forEach(entrypoint -> { try { entrypoint.onControllersDiscovered(this); - } catch (Exception e) { + } catch (Throwable e) { Log.LOGGER.error("Failed to run `onControllersDiscovered` on Controlify entrypoint: " + entrypoint.getClass().getName(), e); } }); diff --git a/src/main/java/dev/isxander/controlify/hid/ControllerHIDService.java b/src/main/java/dev/isxander/controlify/hid/ControllerHIDService.java index 694dcad..5571ef5 100644 --- a/src/main/java/dev/isxander/controlify/hid/ControllerHIDService.java +++ b/src/main/java/dev/isxander/controlify/hid/ControllerHIDService.java @@ -48,13 +48,21 @@ public class ControllerHIDService { } public ControllerHIDInfo fetchType(int jid) { - ControllerHIDInfo info = fetchType0(jid); + ControllerHIDInfo info; + try { + info = fetchType0(jid); + } catch (Throwable e) { + Log.LOGGER.error("Failed to fetch controller type!", e); + info = new ControllerHIDInfo(ControllerType.UNKNOWN, Optional.empty()); + } + if (DebugProperties.PRINT_VID_PID) { info.hidDevice.ifPresent(hid -> { var hex = HexFormat.of().withPrefix("0x"); Log.LOGGER.info("VID: {}, PID: {}", hex.toHexDigits(hid.vendorID()), hex.toHexDigits(hid.productID())); }); } + return info; }