Skip to content

Commit

Permalink
fix broken class loading
Browse files Browse the repository at this point in the history
  • Loading branch information
FalsePattern committed Dec 2, 2024
1 parent 89eff18 commit a99f656
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@
import org.spongepowered.asm.launch.GlobalProperties;
import org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper;

import net.minecraft.launchwrapper.Launch;
import net.minecraft.launchwrapper.LaunchClassLoader;
import net.minecraft.launchwrapper.IClassTransformer;

import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -77,12 +76,14 @@ private static void pleaseDontBreakMyThreadedRendering() {
} catch (Throwable ignored) {}
}

static IClassTransformer FIELD_HACK_TF;

@Override
public String[] getASMTransformerClass() {

val mixinTweakClasses = GlobalProperties.<List<String>>get(MixinServiceLaunchWrapper.BLACKBOARD_KEY_TWEAKCLASSES);
if (mixinTweakClasses != null) {
mixinTweakClasses.add(Tags.ROOT_PKG + ".asm.MixinCompatHackTweaker");
FIELD_HACK_TF = new FalseTweaksFieldHackTransformer();
mixinTweakClasses.add(MixinCompatHackTweaker.class.getName());
}
return new String[]{Tags.ROOT_PKG + ".asm.FalseTweaksTransformer"};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@

package com.falsepattern.falsetweaks.asm;

import com.falsepattern.falsetweaks.Tags;
import lombok.SneakyThrows;
import lombok.val;

import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.ITweaker;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.launchwrapper.LaunchClassLoader;
Expand All @@ -49,8 +51,12 @@ public String getLaunchTarget() {
}

@Override
@SneakyThrows
public String[] getLaunchArguments() {
Launch.classLoader.registerTransformer(Tags.ROOT_PKG + ".asm.FalseTweaksFieldHackTransformer");
val f = LaunchClassLoader.class.getDeclaredField("transformers");
f.setAccessible(true);
val transformers = (List<IClassTransformer>) f.get(Launch.classLoader);
transformers.add(CoreLoadingPlugin.FIELD_HACK_TF);
return new String[0];
}
}

0 comments on commit a99f656

Please sign in to comment.