From bd9bb7e69db7e26088cb6e537b1371bb4cc193c1 Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 3 Sep 2023 23:15:27 +0100 Subject: [PATCH] Fix F3+Esc crashing on controller mode (close #156) --- .../screenop/vanilla/PauseScreenMixin.java | 6 ++- .../compat/vanilla/PauseScreenProcessor.java | 42 ++++++++++--------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/mixins/feature/screenop/vanilla/PauseScreenMixin.java b/src/main/java/dev/isxander/controlify/mixins/feature/screenop/vanilla/PauseScreenMixin.java index 4956f0c..26a94bc 100644 --- a/src/main/java/dev/isxander/controlify/mixins/feature/screenop/vanilla/PauseScreenMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/feature/screenop/vanilla/PauseScreenMixin.java @@ -6,6 +6,7 @@ import dev.isxander.controlify.screenop.compat.vanilla.PauseScreenProcessor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.PauseScreen; import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -13,9 +14,10 @@ import org.spongepowered.asm.mixin.Unique; @Mixin(PauseScreen.class) public class PauseScreenMixin implements ScreenProcessorProvider { @Shadow private @Nullable Button disconnectButton; + @Shadow @Final private boolean showPauseMenu; - @Unique private final PauseScreenProcessor processor - = new PauseScreenProcessor((PauseScreen) (Object) this, () -> disconnectButton); + @Unique private final PauseScreenProcessor processor = + new PauseScreenProcessor((PauseScreen) (Object) this, showPauseMenu, () -> disconnectButton); @Override public ScreenProcessor screenProcessor() { diff --git a/src/main/java/dev/isxander/controlify/screenop/compat/vanilla/PauseScreenProcessor.java b/src/main/java/dev/isxander/controlify/screenop/compat/vanilla/PauseScreenProcessor.java index 227f76a..f6ea75a 100644 --- a/src/main/java/dev/isxander/controlify/screenop/compat/vanilla/PauseScreenProcessor.java +++ b/src/main/java/dev/isxander/controlify/screenop/compat/vanilla/PauseScreenProcessor.java @@ -14,9 +14,11 @@ import java.util.function.Supplier; public class PauseScreenProcessor extends ScreenProcessor { private final Supplier