Add per compat project event listeners
[no changelog]
This commit is contained in:
@@ -7,16 +7,19 @@ import org.objectweb.asm.tree.ClassNode;
|
||||
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
|
||||
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class MixinPlugin implements IMixinConfigPlugin {
|
||||
|
||||
AutoDiscoveryPlugin autoDiscoveryPlugin = new AutoDiscoveryPlugin();
|
||||
|
||||
public static String mixinPackage;
|
||||
@Override
|
||||
public void onLoad(String mixinPackage) {
|
||||
MixinExtrasBootstrap.init();
|
||||
MixinPlugin.mixinPackage = mixinPackage;
|
||||
autoDiscoveryPlugin.setMixinPackage(mixinPackage);
|
||||
}
|
||||
|
||||
@@ -40,7 +43,8 @@ public class MixinPlugin implements IMixinConfigPlugin {
|
||||
|
||||
@Override
|
||||
public List<String> getMixins() {
|
||||
return autoDiscoveryPlugin.getMixins();
|
||||
return autoDiscoveryPlugin.getMixins().stream().filter(it -> this.shouldApplyMixin(null, it))
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,8 +52,10 @@ public class MixinPlugin implements IMixinConfigPlugin {
|
||||
|
||||
}
|
||||
|
||||
public static List<String> appliedMixins = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
|
||||
|
||||
appliedMixins.add(mixinClassName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,8 @@ public class SectionBuilderRiser extends RiserUtils {
|
||||
|
||||
private void handle(ClassNode classNode) {
|
||||
for (MethodNode method : classNode.methods) {
|
||||
if (method.name.endsWith("$fabric-renderer-indigo$hookChunkBuildTessellate") &&
|
||||
if ((method.name.endsWith("$fabric-renderer-indigo$hookBuildRenderBlock")
|
||||
|| method.name.endsWith("$fabric-renderer-indigo$hookChunkBuildTessellate")) &&
|
||||
method.name.startsWith("redirect$")) {
|
||||
handleIndigo(method);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user