Apply mixins conditionally & bump version

This commit is contained in:
Martin Prokoph
2024-04-29 20:51:50 +02:00
parent a5554ee21d
commit 00780e13fd
6 changed files with 17 additions and 20 deletions

View File

@@ -8,7 +8,7 @@ yarn_mappings=1.20.5+build.1
loader_version=0.15.10 loader_version=0.15.10
# Mod Properties # Mod Properties
mod_version = 1.9.4 mod_version = 1.9.5
maven_group = eu.midnightdust maven_group = eu.midnightdust
archives_base_name = midnightcontrols archives_base_name = midnightcontrols
modrinth_id = bXX9h73M modrinth_id = bXX9h73M

View File

@@ -9,6 +9,7 @@
package eu.midnightdust.midnightcontrols.client.compat; package eu.midnightdust.midnightcontrols.client.compat;
import eu.midnightdust.lib.util.PlatformFunctions;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.ClassNode;
@@ -22,23 +23,16 @@ import java.util.Set;
/** /**
* This plugin is only present for the conditional mixins. * This plugin is only present for the conditional mixins.
* *
* @author LambdAurora * @author LambdAurora & Motschen
* @version 1.5.0 * @version 1.6.0
* @since 1.2.0 * @since 1.2.0
*/ */
public class MidnightControlsMixinPlugin implements IMixinConfigPlugin { public class MidnightControlsMixinPlugin implements IMixinConfigPlugin {
private final HashMap<String, Boolean> conditionalMixins = new HashMap<>(); private String mixinPackage;
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);
}
@Override @Override
public void onLoad(String mixinPackage) { public void onLoad(String mixinPackage) {
this.mixinPackage = mixinPackage + ".";
} }
@Override @Override
@@ -48,7 +42,13 @@ public class MidnightControlsMixinPlugin implements IMixinConfigPlugin {
@Override @Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { 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 @Override

View File

@@ -2,7 +2,7 @@ package eu.midnightdust.midnightcontrols.client.compat;
import eu.midnightdust.midnightcontrols.MidnightControls; import eu.midnightdust.midnightcontrols.MidnightControls;
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; 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 me.jellysquid.mods.sodium.client.gui.SodiumOptionsGUI;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;

View File

@@ -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.SodiumOptionsGUI;
import me.jellysquid.mods.sodium.client.gui.options.OptionPage; import me.jellysquid.mods.sodium.client.gui.options.OptionPage;

View File

@@ -53,13 +53,10 @@
"depends": { "depends": {
"fabricloader": ">=0.11.3", "fabricloader": ">=0.11.3",
"fabric": ">=0.71.0", "fabric": ">=0.71.0",
"minecraft": "~1.20", "minecraft": ">=1.20.5",
"spruceui": ">=3.2.0", "spruceui": ">=3.2.0",
"java": ">=17" "java": ">=17"
}, },
"recommends": {
"modmenu": ">=1.12.2"
},
"suggests": { "suggests": {
"kontrolo": "*" "kontrolo": "*"
}, },

View File

@@ -4,7 +4,7 @@
"plugin": "eu.midnightdust.midnightcontrols.client.compat.MidnightControlsMixinPlugin", "plugin": "eu.midnightdust.midnightcontrols.client.compat.MidnightControlsMixinPlugin",
"compatibilityLevel": "JAVA_16", "compatibilityLevel": "JAVA_16",
"client": [ "client": [
"SodiumOptionsGUIAccessor" "sodium.SodiumOptionsGUIAccessor"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1