diff --git a/src/main/java/dev/isxander/controlify/Controlify.java b/src/main/java/dev/isxander/controlify/Controlify.java index 2286dd3..4e327ea 100644 --- a/src/main/java/dev/isxander/controlify/Controlify.java +++ b/src/main/java/dev/isxander/controlify/Controlify.java @@ -149,7 +149,7 @@ public class Controlify implements ControlifyApi { public void discoverControllers() { if (!canDiscoverControllers) { - throw new IllegalStateException("Cannot discover controllers!"); + throw new IllegalStateException("Already discovered/cannot discover controllers"); } canDiscoverControllers = false; @@ -377,6 +377,12 @@ public class Controlify implements ControlifyApi { config().loadOrCreateControllerData(controller); + canDiscoverControllers = false; + if (config().globalSettings().delegateSetup) { + config().globalSettings().delegateSetup = false; + config().setDirty(); + } + if (controller.config().allowVibrations && !config().globalSettings().loadVibrationNatives) { controller.config().allowVibrations = false; config().setDirty(); @@ -395,8 +401,6 @@ public class Controlify implements ControlifyApi { config().saveIfDirty(); } - canDiscoverControllers = false; - if (minecraft.screen instanceof ControllerCarouselScreen controllerListScreen) { controllerListScreen.refreshControllers(); } @@ -526,7 +530,7 @@ public class Controlify implements ControlifyApi { } lastInputSwitchTime = Blaze3D.getTime(); - if (this.currentInputMode == InputMode.CONTROLLER) + if (this.currentInputMode.isController()) getCurrentController().ifPresent(Controller::clearState); ControlifyEvents.INPUT_MODE_CHANGED.invoker().onInputModeChanged(currentInputMode);