From f54c0e83eda5becc260deb5299dc4cf132475dde Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:03:52 +0200 Subject: [PATCH] fix button in open link gui not being centered --- .../hodgepodge/config/FixesConfig.java | 5 ++ .../mitchej123/hodgepodge/mixins/Mixins.java | 5 ++ .../minecraft/MixinGuiConfirmOpenLink.java | 46 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiConfirmOpenLink.java diff --git a/src/main/java/com/mitchej123/hodgepodge/config/FixesConfig.java b/src/main/java/com/mitchej123/hodgepodge/config/FixesConfig.java index ba5ad7ac..82a15733 100644 --- a/src/main/java/com/mitchej123/hodgepodge/config/FixesConfig.java +++ b/src/main/java/com/mitchej123/hodgepodge/config/FixesConfig.java @@ -358,6 +358,11 @@ public class FixesConfig { // settings public static int limitRecursiveBlockUpdateDepth; + @Config.Comment("Fix the buttons not being centered in the GuiConfirmOpenLink") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean fixButtonsGuiConfirmOpenLink; + @Config.Comment("Fix an array out of bounds caused by the GameSettings getKeyDisplayString method") @Config.DefaultBoolean(true) @Config.RequiresMcRestart diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java index 336a79a2..ce0ee0e2 100644 --- a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java @@ -431,6 +431,11 @@ public enum Mixins { .addMixinClasses("minecraft.MixinWorldServer_LimitUpdateRecursion") .setApplyIf(() -> FixesConfig.limitRecursiveBlockUpdateDepth >= 0)), + FIX_BUTTON_POS_GUIOPENLINK(new Builder("Fix the buttons not being centered in the GuiConfirmOpenLink") + .setPhase(Phase.EARLY).setSide(Side.CLIENT).addTargetedMod(TargetedMod.VANILLA) + .addMixinClasses("minecraft.MixinGuiConfirmOpenLink") + .setApplyIf(() -> FixesConfig.fixButtonsGuiConfirmOpenLink)), + // Ic2 adjustments IC2_UNPROTECTED_GET_BLOCK_FIX(new Builder("IC2 Kinetic Fix").setPhase(Phase.EARLY).setSide(Side.BOTH) .addMixinClasses("ic2.MixinIc2WaterKinetic").setApplyIf(() -> FixesConfig.fixIc2UnprotectedGetBlock) diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiConfirmOpenLink.java b/src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiConfirmOpenLink.java new file mode 100644 index 00000000..f53717f8 --- /dev/null +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiConfirmOpenLink.java @@ -0,0 +1,46 @@ +package com.mitchej123.hodgepodge.mixins.early.minecraft; + +import net.minecraft.client.gui.GuiConfirmOpenLink; +import net.minecraft.client.gui.GuiScreen; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(GuiConfirmOpenLink.class) +public class MixinGuiConfirmOpenLink extends GuiScreen { + + @ModifyArg( + method = "initGui", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/GuiButton;<init>(IIIIILjava/lang/String;)V", + ordinal = 0), + index = 1) + private int hodgepodge$fixButton0(int xPos) { + return this.width / 2 - 50 - 105; + } + + @ModifyArg( + method = "initGui", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/GuiButton;<init>(IIIIILjava/lang/String;)V", + ordinal = 1), + index = 1) + private int hodgepodge$fixButton1(int xPos) { + return this.width / 2 - 50; + } + + @ModifyArg( + method = "initGui", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/GuiButton;<init>(IIIIILjava/lang/String;)V", + ordinal = 2), + index = 1) + private int hodgepodge$fixButton2(int xPos) { + return this.width / 2 - 50 + 105; + } + +}