diff --git a/gradle.properties b/gradle.properties index 1104bfa..f76eefc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.20.5+build.1 loader_version=0.15.10 # Mod Properties -mod_version = 1.9.4 +mod_version = 1.9.5 maven_group = eu.midnightdust archives_base_name = midnightcontrols modrinth_id = bXX9h73M diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/MidnightControlsMixinPlugin.java b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/MidnightControlsMixinPlugin.java index 4db407f..6fb28c5 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/MidnightControlsMixinPlugin.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/MidnightControlsMixinPlugin.java @@ -9,6 +9,7 @@ package eu.midnightdust.midnightcontrols.client.compat; +import eu.midnightdust.lib.util.PlatformFunctions; import net.fabricmc.loader.api.FabricLoader; import org.jetbrains.annotations.NotNull; import org.objectweb.asm.tree.ClassNode; @@ -22,23 +23,16 @@ import java.util.Set; /** * This plugin is only present for the conditional mixins. * - * @author LambdAurora - * @version 1.5.0 + * @author LambdAurora & Motschen + * @version 1.6.0 * @since 1.2.0 */ public class MidnightControlsMixinPlugin implements IMixinConfigPlugin { - private final HashMap conditionalMixins = new HashMap<>(); - - public MidnightControlsMixinPlugin() { - //this.putConditionalMixin("SodiumOptionsGUIAccessor", FabricLoader.getInstance().isModLoaded("sodium")); - } - - private void putConditionalMixin(@NotNull String path, boolean condition) { - this.conditionalMixins.put("eu.midnightdust.midnightcontrols.client.compat.mixin." + path, condition); - } + private String mixinPackage; @Override public void onLoad(String mixinPackage) { + this.mixinPackage = mixinPackage + "."; } @Override @@ -48,7 +42,13 @@ public class MidnightControlsMixinPlugin implements IMixinConfigPlugin { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - return this.conditionalMixins.getOrDefault(mixinClassName, Boolean.TRUE); + final String mixinName = mixinClassName.substring(this.mixinPackage.length()); + final String packageName = mixinName.substring(0, mixinName.lastIndexOf('.')); + + if (packageName.startsWith("sodium") && !PlatformFunctions.isModLoaded("sodium")) + return false; + + return true; } @Override diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/SodiumCompat.java b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/SodiumCompat.java index f2eb2b1..36029bc 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/SodiumCompat.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/SodiumCompat.java @@ -2,7 +2,7 @@ package eu.midnightdust.midnightcontrols.client.compat; import eu.midnightdust.midnightcontrols.MidnightControls; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; -import eu.midnightdust.midnightcontrols.client.compat.mixin.SodiumOptionsGUIAccessor; +import eu.midnightdust.midnightcontrols.client.compat.mixin.sodium.SodiumOptionsGUIAccessor; import me.jellysquid.mods.sodium.client.gui.SodiumOptionsGUI; import net.minecraft.client.gui.screen.Screen; diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/SodiumOptionsGUIAccessor.java b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/sodium/SodiumOptionsGUIAccessor.java similarity index 89% rename from src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/SodiumOptionsGUIAccessor.java rename to src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/sodium/SodiumOptionsGUIAccessor.java index eaed0c3..aa2d835 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/SodiumOptionsGUIAccessor.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/compat/mixin/sodium/SodiumOptionsGUIAccessor.java @@ -1,4 +1,4 @@ -package eu.midnightdust.midnightcontrols.client.compat.mixin; +package eu.midnightdust.midnightcontrols.client.compat.mixin.sodium; import me.jellysquid.mods.sodium.client.gui.SodiumOptionsGUI; import me.jellysquid.mods.sodium.client.gui.options.OptionPage; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index bdea610..4bdc606 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -53,13 +53,10 @@ "depends": { "fabricloader": ">=0.11.3", "fabric": ">=0.71.0", - "minecraft": "~1.20", + "minecraft": ">=1.20.5", "spruceui": ">=3.2.0", "java": ">=17" }, - "recommends": { - "modmenu": ">=1.12.2" - }, "suggests": { "kontrolo": "*" }, diff --git a/src/main/resources/midnightcontrols_compat.mixins.json b/src/main/resources/midnightcontrols_compat.mixins.json index 89110a5..12d13ab 100644 --- a/src/main/resources/midnightcontrols_compat.mixins.json +++ b/src/main/resources/midnightcontrols_compat.mixins.json @@ -4,7 +4,7 @@ "plugin": "eu.midnightdust.midnightcontrols.client.compat.MidnightControlsMixinPlugin", "compatibilityLevel": "JAVA_16", "client": [ - "SodiumOptionsGUIAccessor" + "sodium.SodiumOptionsGUIAccessor" ], "injectors": { "defaultRequire": 1