11package org .polyfrost .oneconfig .internal ;
22
3+ import com .bawnorton .mixinsquared .MixinSquaredBootstrap ;
4+ import com .bawnorton .mixinsquared .adjuster .MixinAnnotationAdjusterRegistrar ;
5+ import com .bawnorton .mixinsquared .api .MixinAnnotationAdjuster ;
6+ import com .bawnorton .mixinsquared .api .MixinCanceller ;
7+ import com .bawnorton .mixinsquared .canceller .MixinCancellerRegistrar ;
38import com .llamalad7 .mixinextras .MixinExtrasBootstrap ;
49import org .objectweb .asm .tree .ClassNode ;
510import org .spongepowered .asm .mixin .extensibility .IMixinConfigPlugin ;
611import org .spongepowered .asm .mixin .extensibility .IMixinInfo ;
712
813import java .util .List ;
14+ import java .util .ServiceLoader ;
915import java .util .Set ;
1016
1117public class OneConfigEarlyMixinInit implements IMixinConfigPlugin {
18+ //#if FORGE-LIKE
19+ private static final ServiceLoader <MixinCanceller > CANCELLERS = ServiceLoader .load (MixinCanceller .class );
20+ private static final ServiceLoader <MixinAnnotationAdjuster > ANNOTATION_ADJUSTERS = ServiceLoader .load (MixinAnnotationAdjuster .class );
21+ //#endif
22+
23+
24+ public static void load () {
25+ //#if FORGE-LIKE
26+ CANCELLERS .forEach (MixinCancellerRegistrar ::register );
27+ ANNOTATION_ADJUSTERS .forEach (MixinAnnotationAdjusterRegistrar ::register );
28+ //#else
29+ //$$ net.fabricmc.loader.api.FabricLoader.getInstance().getEntrypointContainers("mixinsquared", MixinCanceller.class).forEach(container -> {
30+ //$$ String id = container.getProvider().getMetadata().getId();
31+ //$$ try {
32+ //$$ MixinCanceller canceller = container.getEntrypoint();
33+ //$$ MixinCancellerRegistrar.register(canceller);
34+ //$$ } catch (Throwable e) {
35+ //$$ System.err.printf("Mod %s provides a broken MixinCanceller implementation:\n", id);
36+ //$$ e.printStackTrace(System.err);
37+ //$$ }
38+ //$$ });
39+ //$$ net.fabricmc.loader.api.FabricLoader.getInstance().getEntrypointContainers("mixinsquared-adjuster", MixinAnnotationAdjuster.class).forEach(container -> {
40+ //$$ String id = container.getProvider().getMetadata().getId();
41+ //$$ try {
42+ //$$ MixinAnnotationAdjuster annotationAdjuster = container.getEntrypoint();
43+ //$$ MixinAnnotationAdjusterRegistrar.register(annotationAdjuster);
44+ //$$ } catch (Throwable e) {
45+ //$$ System.err.printf("Mod %s provides a broken MixinAnnotationAdjuster implementation:\n", id);
46+ //$$ e.printStackTrace(System.err);
47+ //$$ }
48+ //$$ });
49+ //#endif
50+ }
51+
1252 @ Override
1353 public void onLoad (String mixinPackage ) {
54+ MixinSquaredBootstrap .init ();
55+ load ();
1456 MixinExtrasBootstrap .init ();
1557 }
1658
@@ -31,6 +73,7 @@ public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
3173
3274 @ Override
3375 public List <String > getMixins () {
76+ MixinSquaredBootstrap .reOrderExtensions ();
3477 return null ;
3578 }
3679
0 commit comments