From 3139306088f8d3cad1b4906c3bbd1b412b9bda6f Mon Sep 17 00:00:00 2001 From: nea Date: Tue, 30 May 2023 19:05:16 +0200 Subject: Auto discover mixins --- .../java/moe/nea/firmament/init/MixinPlugin.java | 42 ++++++---------------- 1 file changed, 10 insertions(+), 32 deletions(-) (limited to 'src/main/java/moe/nea/firmament') diff --git a/src/main/java/moe/nea/firmament/init/MixinPlugin.java b/src/main/java/moe/nea/firmament/init/MixinPlugin.java index d61d428..79a1789 100644 --- a/src/main/java/moe/nea/firmament/init/MixinPlugin.java +++ b/src/main/java/moe/nea/firmament/init/MixinPlugin.java @@ -18,47 +18,25 @@ package moe.nea.firmament.init; -import org.objectweb.asm.tree.ClassNode; -import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; -import org.spongepowered.asm.mixin.extensibility.IMixinInfo; +import com.unascribed.lib39.core.api.AutoMixin; import java.util.List; -import java.util.Set; -public class MixinPlugin implements IMixinConfigPlugin { - @Override - public void onLoad(String mixinPackage) { - - } - - @Override - public String getRefMapperConfig() { - return null; - } +// TODO: replace AutoMixin with KSP plugin? +public class MixinPlugin extends AutoMixin { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - return Boolean.getBoolean("firmament.debug") || - !mixinClassName.startsWith("moe.nea.firmament.mixins.devenv"); - } - - @Override - public void acceptTargets(Set myTargets, Set otherTargets) { - + if (!Boolean.getBoolean("firmament.debug") && mixinClassName.contains("devenv.")) { + return false; + } + return super.shouldApplyMixin(targetClassName, mixinClassName); } @Override public List getMixins() { - return null; - } - - @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - - } - - @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - + var autoDiscoveredMixins = super.getMixins(); + autoDiscoveredMixins.removeIf(it -> !shouldApplyMixin(null, it)); + return autoDiscoveredMixins; } } -- cgit