forked from Clones/Controlify
Fix F3+Esc crashing on controller mode (close #156)
This commit is contained in:
@ -6,6 +6,7 @@ import dev.isxander.controlify.screenop.compat.vanilla.PauseScreenProcessor;
|
|||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.client.gui.screens.PauseScreen;
|
import net.minecraft.client.gui.screens.PauseScreen;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.Unique;
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
@ -13,9 +14,10 @@ import org.spongepowered.asm.mixin.Unique;
|
|||||||
@Mixin(PauseScreen.class)
|
@Mixin(PauseScreen.class)
|
||||||
public class PauseScreenMixin implements ScreenProcessorProvider {
|
public class PauseScreenMixin implements ScreenProcessorProvider {
|
||||||
@Shadow private @Nullable Button disconnectButton;
|
@Shadow private @Nullable Button disconnectButton;
|
||||||
|
@Shadow @Final private boolean showPauseMenu;
|
||||||
|
|
||||||
@Unique private final PauseScreenProcessor processor
|
@Unique private final PauseScreenProcessor processor =
|
||||||
= new PauseScreenProcessor((PauseScreen) (Object) this, () -> disconnectButton);
|
new PauseScreenProcessor((PauseScreen) (Object) this, showPauseMenu, () -> disconnectButton);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ScreenProcessor<?> screenProcessor() {
|
public ScreenProcessor<?> screenProcessor() {
|
||||||
|
@ -14,9 +14,11 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
public class PauseScreenProcessor extends ScreenProcessor<PauseScreen> {
|
public class PauseScreenProcessor extends ScreenProcessor<PauseScreen> {
|
||||||
private final Supplier<Button> disconnectButtonSupplier;
|
private final Supplier<Button> disconnectButtonSupplier;
|
||||||
|
private final boolean showButtons;
|
||||||
|
|
||||||
public PauseScreenProcessor(PauseScreen screen, Supplier<Button> disconnectButtonSupplier) {
|
public PauseScreenProcessor(PauseScreen screen, boolean showButtons, Supplier<Button> disconnectButtonSupplier) {
|
||||||
super(screen);
|
super(screen);
|
||||||
|
this.showButtons = showButtons;
|
||||||
this.disconnectButtonSupplier = disconnectButtonSupplier;
|
this.disconnectButtonSupplier = disconnectButtonSupplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,23 +38,25 @@ public class PauseScreenProcessor extends ScreenProcessor<PauseScreen> {
|
|||||||
public void onWidgetRebuild() {
|
public void onWidgetRebuild() {
|
||||||
super.onWidgetRebuild();
|
super.onWidgetRebuild();
|
||||||
|
|
||||||
ButtonGuideApi.addGuideToButtonBuiltin(
|
if (showButtons) {
|
||||||
(AbstractButton) getWidget("menu.returnToGame").orElseThrow(),
|
ButtonGuideApi.addGuideToButtonBuiltin(
|
||||||
bindings -> bindings.GUI_BACK,
|
(AbstractButton) getWidget("menu.returnToGame").orElseThrow(),
|
||||||
ButtonRenderPosition.TEXT,
|
bindings -> bindings.GUI_BACK,
|
||||||
ButtonGuidePredicate.ALWAYS
|
ButtonRenderPosition.TEXT,
|
||||||
);
|
ButtonGuidePredicate.ALWAYS
|
||||||
ButtonGuideApi.addGuideToButtonBuiltin(
|
);
|
||||||
(AbstractButton) getWidget("menu.options").orElseThrow(),
|
ButtonGuideApi.addGuideToButtonBuiltin(
|
||||||
bindings -> bindings.GUI_ABSTRACT_ACTION_1,
|
(AbstractButton) getWidget("menu.options").orElseThrow(),
|
||||||
ButtonRenderPosition.TEXT,
|
bindings -> bindings.GUI_ABSTRACT_ACTION_1,
|
||||||
ButtonGuidePredicate.ALWAYS
|
ButtonRenderPosition.TEXT,
|
||||||
);
|
ButtonGuidePredicate.ALWAYS
|
||||||
ButtonGuideApi.addGuideToButtonBuiltin(
|
);
|
||||||
disconnectButtonSupplier.get(),
|
ButtonGuideApi.addGuideToButtonBuiltin(
|
||||||
bindings -> bindings.GUI_ABSTRACT_ACTION_2,
|
disconnectButtonSupplier.get(),
|
||||||
ButtonRenderPosition.TEXT,
|
bindings -> bindings.GUI_ABSTRACT_ACTION_2,
|
||||||
ButtonGuidePredicate.ALWAYS
|
ButtonRenderPosition.TEXT,
|
||||||
);
|
ButtonGuidePredicate.ALWAYS
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user