Skip to content

Commit a99f656

Browse files
committed
fix broken class loading
1 parent 89eff18 commit a99f656

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

src/main/java/com/falsepattern/falsetweaks/asm/CoreLoadingPlugin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@
3737
import org.spongepowered.asm.launch.GlobalProperties;
3838
import org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper;
3939

40-
import net.minecraft.launchwrapper.Launch;
41-
import net.minecraft.launchwrapper.LaunchClassLoader;
40+
import net.minecraft.launchwrapper.IClassTransformer;
4241

4342
import java.util.List;
4443
import java.util.Map;
@@ -77,12 +76,14 @@ private static void pleaseDontBreakMyThreadedRendering() {
7776
} catch (Throwable ignored) {}
7877
}
7978

79+
static IClassTransformer FIELD_HACK_TF;
80+
8081
@Override
8182
public String[] getASMTransformerClass() {
82-
8383
val mixinTweakClasses = GlobalProperties.<List<String>>get(MixinServiceLaunchWrapper.BLACKBOARD_KEY_TWEAKCLASSES);
8484
if (mixinTweakClasses != null) {
85-
mixinTweakClasses.add(Tags.ROOT_PKG + ".asm.MixinCompatHackTweaker");
85+
FIELD_HACK_TF = new FalseTweaksFieldHackTransformer();
86+
mixinTweakClasses.add(MixinCompatHackTweaker.class.getName());
8687
}
8788
return new String[]{Tags.ROOT_PKG + ".asm.FalseTweaksTransformer"};
8889
}

src/main/java/com/falsepattern/falsetweaks/asm/MixinCompatHackTweaker.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@
2323

2424
package com.falsepattern.falsetweaks.asm;
2525

26-
import com.falsepattern.falsetweaks.Tags;
26+
import lombok.SneakyThrows;
27+
import lombok.val;
2728

29+
import net.minecraft.launchwrapper.IClassTransformer;
2830
import net.minecraft.launchwrapper.ITweaker;
2931
import net.minecraft.launchwrapper.Launch;
3032
import net.minecraft.launchwrapper.LaunchClassLoader;
@@ -49,8 +51,12 @@ public String getLaunchTarget() {
4951
}
5052

5153
@Override
54+
@SneakyThrows
5255
public String[] getLaunchArguments() {
53-
Launch.classLoader.registerTransformer(Tags.ROOT_PKG + ".asm.FalseTweaksFieldHackTransformer");
56+
val f = LaunchClassLoader.class.getDeclaredField("transformers");
57+
f.setAccessible(true);
58+
val transformers = (List<IClassTransformer>) f.get(Launch.classLoader);
59+
transformers.add(CoreLoadingPlugin.FIELD_HACK_TF);
5460
return new String[0];
5561
}
5662
}

0 commit comments

Comments
 (0)