diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java index a762646..21df7d7 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java @@ -86,7 +86,7 @@ public class MidnightControlsClient extends MidnightControls { int period = 1; // repeat every 0.001 sec. (1000 times a second) Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { - public void run() { // TODO: Add a try/catch here after the alpha testing period + public void run() { try { if (lateInitDone && client.isRunning()) { if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && (client.isWindowFocused() || MidnightControlsConfig.unfocusedInput)) { diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java index a7192aa..6fb92b2 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java @@ -33,17 +33,24 @@ import static eu.midnightdust.midnightcontrols.MidnightControls.id; @Mixin(GameOptionsScreen.class) public abstract class GameOptionsScreenMixin extends Screen { @Shadow @Nullable protected OptionListWidget body; - @Unique TextIconButtonWidget midnightcontrols$button = TextIconButtonWidget.builder(Text.translatable("midnightcontrols.menu.title.controller"), (button -> this.client.setScreen(new MidnightControlsSettingsScreen(this, false))), true) + @Unique TextIconButtonWidget midnightcontrols$button = TextIconButtonWidget.builder(Text.translatable("midnightcontrols.menu.title.controller"), + (button -> this.client.setScreen(new MidnightControlsSettingsScreen(this, false))), true) .dimension(20,20).texture(id("icon/controller"), 20, 20).build(); protected GameOptionsScreenMixin(Text title) { super(title); } - @Inject(method = "init", at = @At("TAIL")) + @Inject(method = "initBody", at = @At("TAIL")) public void midnightcontrols$addMCButton(CallbackInfo ci) { if (this.getClass().toString().equals(ControlsOptionsScreen.class.toString())) { this.midnightcontrols$setButtonPos(); + this.addSelectableChild(midnightcontrols$button); + } + } + @Inject(method = "init", at = @At("TAIL")) + public void midnightcontrols$drawMCButton(CallbackInfo ci) { + if (this.getClass().toString().equals(ControlsOptionsScreen.class.toString())) { this.addDrawableChild(midnightcontrols$button); } }