forked from Clones/Controlify
🐛 Fix rare crash to do with delegate_setup config option
This commit is contained in:
@ -149,7 +149,7 @@ public class Controlify implements ControlifyApi {
|
|||||||
|
|
||||||
public void discoverControllers() {
|
public void discoverControllers() {
|
||||||
if (!canDiscoverControllers) {
|
if (!canDiscoverControllers) {
|
||||||
throw new IllegalStateException("Cannot discover controllers!");
|
throw new IllegalStateException("Already discovered/cannot discover controllers");
|
||||||
}
|
}
|
||||||
canDiscoverControllers = false;
|
canDiscoverControllers = false;
|
||||||
|
|
||||||
@ -377,6 +377,12 @@ public class Controlify implements ControlifyApi {
|
|||||||
|
|
||||||
config().loadOrCreateControllerData(controller);
|
config().loadOrCreateControllerData(controller);
|
||||||
|
|
||||||
|
canDiscoverControllers = false;
|
||||||
|
if (config().globalSettings().delegateSetup) {
|
||||||
|
config().globalSettings().delegateSetup = false;
|
||||||
|
config().setDirty();
|
||||||
|
}
|
||||||
|
|
||||||
if (controller.config().allowVibrations && !config().globalSettings().loadVibrationNatives) {
|
if (controller.config().allowVibrations && !config().globalSettings().loadVibrationNatives) {
|
||||||
controller.config().allowVibrations = false;
|
controller.config().allowVibrations = false;
|
||||||
config().setDirty();
|
config().setDirty();
|
||||||
@ -395,8 +401,6 @@ public class Controlify implements ControlifyApi {
|
|||||||
config().saveIfDirty();
|
config().saveIfDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
canDiscoverControllers = false;
|
|
||||||
|
|
||||||
if (minecraft.screen instanceof ControllerCarouselScreen controllerListScreen) {
|
if (minecraft.screen instanceof ControllerCarouselScreen controllerListScreen) {
|
||||||
controllerListScreen.refreshControllers();
|
controllerListScreen.refreshControllers();
|
||||||
}
|
}
|
||||||
@ -526,7 +530,7 @@ public class Controlify implements ControlifyApi {
|
|||||||
}
|
}
|
||||||
lastInputSwitchTime = Blaze3D.getTime();
|
lastInputSwitchTime = Blaze3D.getTime();
|
||||||
|
|
||||||
if (this.currentInputMode == InputMode.CONTROLLER)
|
if (this.currentInputMode.isController())
|
||||||
getCurrentController().ifPresent(Controller::clearState);
|
getCurrentController().ifPresent(Controller::clearState);
|
||||||
|
|
||||||
ControlifyEvents.INPUT_MODE_CHANGED.invoker().onInputModeChanged(currentInputMode);
|
ControlifyEvents.INPUT_MODE_CHANGED.invoker().onInputModeChanged(currentInputMode);
|
||||||
|
Reference in New Issue
Block a user