From 63ebf2dc618e29b6c59961766f0e0d0822140b0e Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 7 May 2023 12:46:21 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Remove=20vanilla=20overrid?= =?UTF-8?q?e=20from=20show=20player=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlify/bindings/ControllerBindings.java | 1 - .../controlify/ingame/InGameInputHandler.java | 9 +++++++++ .../controlify/mixins/core/GuiMixin.java | 16 ++++++++++++++++ src/main/resources/controlify.mixins.json | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/main/java/dev/isxander/controlify/mixins/core/GuiMixin.java diff --git a/src/main/java/dev/isxander/controlify/bindings/ControllerBindings.java b/src/main/java/dev/isxander/controlify/bindings/ControllerBindings.java index 661d632..7cf4d6e 100644 --- a/src/main/java/dev/isxander/controlify/bindings/ControllerBindings.java +++ b/src/main/java/dev/isxander/controlify/bindings/ControllerBindings.java @@ -240,7 +240,6 @@ public class ControllerBindings { .identifier("controlify", "show_player_list") .defaultBind(GamepadBinds.DPAD_RIGHT) .category(MISC_CATEGORY) - .vanillaOverride(options.keyPlayerList, () -> false) .build()); register(VMOUSE_MOVE_UP = ControllerBindingBuilder.create(controller) .identifier("controlify", "vmouse_move_up") diff --git a/src/main/java/dev/isxander/controlify/ingame/InGameInputHandler.java b/src/main/java/dev/isxander/controlify/ingame/InGameInputHandler.java index f81fa71..c4f905e 100644 --- a/src/main/java/dev/isxander/controlify/ingame/InGameInputHandler.java +++ b/src/main/java/dev/isxander/controlify/ingame/InGameInputHandler.java @@ -18,6 +18,7 @@ public class InGameInputHandler { private final Minecraft minecraft; private double lookInputX, lookInputY; + private boolean shouldShowPlayerList; public InGameInputHandler(Controller controller) { this.controller = controller; @@ -38,6 +39,8 @@ public class InGameInputHandler { } protected void handleKeybinds() { + shouldShowPlayerList = false; + if (Minecraft.getInstance().screen != null) return; @@ -63,6 +66,8 @@ public class InGameInputHandler { if (controller.bindings().TOGGLE_HUD_VISIBILITY.justPressed()) { minecraft.options.hideGui = !minecraft.options.hideGui; } + + shouldShowPlayerList = controller.bindings().SHOW_PLAYER_LIST.held(); } protected void handlePlayerLookInput() { @@ -131,6 +136,10 @@ public class InGameInputHandler { } } + public boolean shouldShowPlayerList() { + return this.shouldShowPlayerList; + } + public record FunctionalLookInputModifier(BiFunction, Float> x, BiFunction, Float> y) implements LookInputModifier { @Override public float modifyX(float x, Controller controller) { diff --git a/src/main/java/dev/isxander/controlify/mixins/core/GuiMixin.java b/src/main/java/dev/isxander/controlify/mixins/core/GuiMixin.java new file mode 100644 index 0000000..34422b5 --- /dev/null +++ b/src/main/java/dev/isxander/controlify/mixins/core/GuiMixin.java @@ -0,0 +1,16 @@ +package dev.isxander.controlify.mixins.core; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import dev.isxander.controlify.Controlify; +import dev.isxander.controlify.ingame.InGameInputHandler; +import net.minecraft.client.gui.Gui; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(Gui.class) +public class GuiMixin { + @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/KeyMapping;isDown()Z")) + private boolean shouldShowPlayerList(boolean keyDown) { + return keyDown || Controlify.instance().inGameInputHandler().map(InGameInputHandler::shouldShowPlayerList).orElse(false); + } +} diff --git a/src/main/resources/controlify.mixins.json b/src/main/resources/controlify.mixins.json index 2ed4398..5654cc5 100644 --- a/src/main/resources/controlify.mixins.json +++ b/src/main/resources/controlify.mixins.json @@ -23,6 +23,7 @@ "compat.yacl.SliderControllerElementMixin", "compat.yacl.YACLScreenMixin", "core.ClientPacketListenerMixin", + "core.GuiMixin", "core.KeyboardHandlerMixin", "core.MinecraftMixin", "core.MouseHandlerMixin",