From b15ee17ccd62e05938b596e10fae27d45cecb667 Mon Sep 17 00:00:00 2001 From: Wide-Cat Date: Sat, 25 May 2024 20:28:30 +0100 Subject: [PATCH 1/2] Prevent the ViaFabricPlus settings button overlapping with ours in the multiplayer menu. --- build.gradle | 5 +++++ gradle.properties | 3 +++ .../meteorclient/MixinPlugin.java | 5 +++++ .../viafabricplus/GeneralSettingsMixin.java | 21 +++++++++++++++++++ src/main/resources/fabric.mod.json | 3 ++- .../meteor-client-viafabricplus.mixins.json | 12 +++++++++++ 6 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java create mode 100644 src/main/resources/meteor-client-viafabricplus.mixins.json diff --git a/build.gradle b/build.gradle index 97453581de..b46ec23a52 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,10 @@ repositories { name = "vram" url = "https://maven.vram.io//" } + maven { + name = "ViaVersion" + url = "https://repo.viaversion.com" + } mavenCentral() } @@ -58,6 +62,7 @@ dependencies { modCompileOnly("maven.modrinth:iris:${project.iris_version}") { transitive = false } //modCompileOnly("io.vram:canvas-fabric-mc119:1.0.+") { transitive = false } // TODO: 1.19.3 modCompileOnly("maven.modrinth:indium:${project.indium_version}") { transitive = false } + modCompileOnly("de.florianmichael:ViaFabricPlus:${project.viafabricplus_version}") { transitive = false } // Baritone (https://github.com/MeteorDevelopment/baritone) modCompileOnly "meteordevelopment:baritone:${project.baritone_version}-SNAPSHOT" diff --git a/gradle.properties b/gradle.properties index cad87af402..8e046fac85 100644 --- a/gradle.properties +++ b/gradle.properties @@ -42,3 +42,6 @@ reflections_version=0.10.2 # Netty (https://github.com/netty/netty) netty_version=4.1.90.Final + +# ViaFabricPlus (https://github.com/ViaVersion/ViaFabricPlus) +viafabricplus_version=3.2.1 diff --git a/src/main/java/meteordevelopment/meteorclient/MixinPlugin.java b/src/main/java/meteordevelopment/meteorclient/MixinPlugin.java index c4d672e2f9..ab7d7bb59d 100644 --- a/src/main/java/meteordevelopment/meteorclient/MixinPlugin.java +++ b/src/main/java/meteordevelopment/meteorclient/MixinPlugin.java @@ -29,6 +29,7 @@ public class MixinPlugin implements IMixinConfigPlugin { private static boolean isLithiumPresent; public static boolean isIrisPresent; private static boolean isIndiumPresent; + private static boolean isVFPPresent; @Override public void onLoad(String mixinPackage) { @@ -74,6 +75,7 @@ public void onLoad(String mixinPackage) { isLithiumPresent = FabricLoader.getInstance().isModLoaded("lithium"); isIrisPresent = FabricLoader.getInstance().isModLoaded("iris"); isIndiumPresent = FabricLoader.getInstance().isModLoaded("indium"); + isVFPPresent = FabricLoader.getInstance().isModLoaded("viafabricplus"); loaded = true; } @@ -106,6 +108,9 @@ else if (mixinClassName.startsWith(mixinPackage + ".lithium")) { else if (mixinClassName.startsWith(mixinPackage + ".indium")) { return isIndiumPresent; } + else if (mixinClassName.startsWith(mixinPackage + ".viafabricplus")) { + return isVFPPresent; + } return true; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java new file mode 100644 index 0000000000..2bab3594bb --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java @@ -0,0 +1,21 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.mixin.viafabricplus; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(GeneralSettings.class) +public class GeneralSettingsMixin { + // specifies the '2' value on this line: + // public final ModeSetting multiplayerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.multiplayer_screen_button_orientation"), 2, ORIENTATION_OPTIONS); + @ModifyExpressionValue(method = "", at = @At(value = "CONSTANT", args = "intValue=2", ordinal = 1)) + private int modifyDefaultPosition(int original) { + return 4; + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 2817bcfbad..482ee94175 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,7 +30,8 @@ "meteor-client-sodium.mixins.json", "meteor-client-canvas.mixins.json", "meteor-client-lithium.mixins.json", - "meteor-client-indium.mixins.json" + "meteor-client-indium.mixins.json", + "meteor-client-viafabricplus.mixins.json" ], "accessWidener": "meteor-client.accesswidener", "custom": { diff --git a/src/main/resources/meteor-client-viafabricplus.mixins.json b/src/main/resources/meteor-client-viafabricplus.mixins.json new file mode 100644 index 0000000000..38868b7bcd --- /dev/null +++ b/src/main/resources/meteor-client-viafabricplus.mixins.json @@ -0,0 +1,12 @@ +{ + "required": false, + "package": "meteordevelopment.meteorclient.mixin.viafabricplus", + "compatibilityLevel": "JAVA_21", + "plugin": "meteordevelopment.meteorclient.MixinPlugin", + "client": [ + "GeneralSettingsMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} From 9f20f23ee97fc099c36a5f9ea64bfd1e8229c5e1 Mon Sep 17 00:00:00 2001 From: Wide-Cat Date: Sat, 25 May 2024 20:47:58 +0100 Subject: [PATCH 2/2] fix warning --- .../meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java index 2bab3594bb..b85ee55887 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/viafabricplus/GeneralSettingsMixin.java @@ -14,7 +14,7 @@ public class GeneralSettingsMixin { // specifies the '2' value on this line: // public final ModeSetting multiplayerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.multiplayer_screen_button_orientation"), 2, ORIENTATION_OPTIONS); - @ModifyExpressionValue(method = "", at = @At(value = "CONSTANT", args = "intValue=2", ordinal = 1)) + @ModifyExpressionValue(method = "", at = @At(value = "CONSTANT", args = "intValue=2", ordinal = 1), remap = false) private int modifyDefaultPosition(int original) { return 4; }