From 380506018a77f67a87b7ff0ec4ef70613bc09bc9 Mon Sep 17 00:00:00 2001 From: ByThePowerOfScience <16433721+ByThePowerOfScience@users.noreply.github.com> Date: Thu, 8 Sep 2022 22:14:46 -0400 Subject: [PATCH 1/3] Make MixinProcessor Public Fixes crash with loaders invoking the class mid-init to modify other mods. As far as I know it's the only way to modify other mods with Mixin, so it really shouldn't crash on newer Mixin versions. --- .../org/spongepowered/asm/mixin/transformer/MixinProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java index 043c22523..3c3c27058 100644 --- a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java +++ b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java @@ -70,7 +70,7 @@ /** * Heart of the Mixin pipeline */ -class MixinProcessor { +public class MixinProcessor { /** * Phase during which an error occurred, delegates to functionality in From be4143d13cc041a52cc030e713ea1316c9bcd4d0 Mon Sep 17 00:00:00 2001 From: ByThePowerOfScience <16433721+ByThePowerOfScience@users.noreply.github.com> Date: Thu, 8 Sep 2022 22:21:11 -0400 Subject: [PATCH 2/3] Update MixinTransformer.java --- .../spongepowered/asm/mixin/transformer/MixinTransformer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinTransformer.java b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinTransformer.java index c6bde16de..012089655 100644 --- a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinTransformer.java +++ b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinTransformer.java @@ -42,7 +42,7 @@ /** * Transformer which manages the mixin configuration and application process */ -final class MixinTransformer extends TreeTransformer implements IMixinTransformer { +public final class MixinTransformer extends TreeTransformer implements IMixinTransformer { /** * Impl of mixin transformer factory From d9a80ef3b74067fc63506397c7e12f0ef6e640eb Mon Sep 17 00:00:00 2001 From: ByThePowerOfScience <16433721+ByThePowerOfScience@users.noreply.github.com> Date: Thu, 8 Sep 2022 22:24:26 -0400 Subject: [PATCH 3/3] Update MixinProcessor.java Fixes crash caused by mods accessing this via reflection. --- .../asm/mixin/transformer/MixinProcessor.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java index 3c3c27058..697505fcd 100644 --- a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java +++ b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinProcessor.java @@ -505,7 +505,15 @@ private void selectConfigs(MixinEnvironment environment) { Collections.sort(this.pendingConfigs); } - + + /** + * Literally only here to prevent a crash because some mods use reflection to access this method. + */ + @Deprecated + private int prepareConfigs(MixinEnvironment environment) { + this.prepareConfigs(environment, this.extensions); + } + /** * Prepare mixin configs *