diff options
author | Linnea Gräf <nea@nea.moe> | 2025-05-10 14:22:53 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-05-10 14:22:53 +0200 |
commit | 6e06fa744d3f5f35b85ef1479b316d13413919e9 (patch) | |
tree | 8d188ac8fdaf8e6874214b3f7c7a47ab7b57e368 /src/main/java/moe/nea/firmament/init | |
parent | 3cd70b1b1e262af80f48cc56c56b666d9c30a565 (diff) | |
download | Firmament-master.tar.gz Firmament-master.tar.bz2 Firmament-master.zip |
Diffstat (limited to 'src/main/java/moe/nea/firmament/init')
-rw-r--r-- | src/main/java/moe/nea/firmament/init/MixinPlugin.java | 81 |
1 files changed, 47 insertions, 34 deletions
diff --git a/src/main/java/moe/nea/firmament/init/MixinPlugin.java b/src/main/java/moe/nea/firmament/init/MixinPlugin.java index 513efef..d48139b 100644 --- a/src/main/java/moe/nea/firmament/init/MixinPlugin.java +++ b/src/main/java/moe/nea/firmament/init/MixinPlugin.java @@ -8,56 +8,69 @@ import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; public class MixinPlugin implements IMixinConfigPlugin { - AutoDiscoveryPlugin autoDiscoveryPlugin = new AutoDiscoveryPlugin(); + AutoDiscoveryPlugin autoDiscoveryPlugin = new AutoDiscoveryPlugin(); public static List<MixinPlugin> instances = new ArrayList<>(); public String mixinPackage; - @Override - public void onLoad(String mixinPackage) { - MixinExtrasBootstrap.init(); + + @Override + public void onLoad(String mixinPackage) { + MixinExtrasBootstrap.init(); instances.add(this); - this.mixinPackage = mixinPackage; - autoDiscoveryPlugin.setMixinPackage(mixinPackage); - } + this.mixinPackage = mixinPackage; + autoDiscoveryPlugin.setMixinPackage(mixinPackage); + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!Boolean.getBoolean("firmament.debug") && mixinClassName.contains("devenv.")) { + return false; + } + return true; + } - @Override - public String getRefMapperConfig() { - return null; - } + @Override + public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) { - @Override - public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if (!Boolean.getBoolean("firmament.debug") && mixinClassName.contains("devenv.")) { - return false; - } - return true; - } + } - @Override - public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) { + @Override + public List<String> getMixins() { + return autoDiscoveryPlugin.getMixins().stream().filter(it -> this.shouldApplyMixin(null, it)) + .toList(); + } - } + @Override + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - @Override - public List<String> getMixins() { - return autoDiscoveryPlugin.getMixins().stream().filter(it -> this.shouldApplyMixin(null, it)) - .toList(); - } + } - @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + public Set<String> getAppliedFullPathMixins() { + return new HashSet<>(appliedMixins); + } - } + public Set<String> getExpectedFullPathMixins() { + return getMixins() + .stream() + .map(it -> mixinPackage + "." + it) + .collect(Collectors.toSet()); + } - public List<String> appliedMixins = new ArrayList<>(); + public List<String> appliedMixins = new ArrayList<>(); - @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - appliedMixins.add(mixinClassName); - } + @Override + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + appliedMixins.add(mixinClassName); + } } |