From a8a87765885905b603a9c121ed5260da51ae3a77 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Thu, 22 Feb 2024 23:32:11 +0100 Subject: Fix static loading --- .../nea/kowalski/init/EventClassTransformer.java | 1 + .../moe/nea/kowalski/init/KowalskiTweaker.java | 23 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'src/main/java/moe/nea/kowalski/init') diff --git a/src/main/java/moe/nea/kowalski/init/EventClassTransformer.java b/src/main/java/moe/nea/kowalski/init/EventClassTransformer.java index a80a5b5..c28116b 100644 --- a/src/main/java/moe/nea/kowalski/init/EventClassTransformer.java +++ b/src/main/java/moe/nea/kowalski/init/EventClassTransformer.java @@ -35,6 +35,7 @@ public class EventClassTransformer implements IClassTransformer { continue; } method.instructions.insert(insn, buildCallKowalski()); + break; } } diff --git a/src/main/java/moe/nea/kowalski/init/KowalskiTweaker.java b/src/main/java/moe/nea/kowalski/init/KowalskiTweaker.java index 4cb836c..5af17ee 100644 --- a/src/main/java/moe/nea/kowalski/init/KowalskiTweaker.java +++ b/src/main/java/moe/nea/kowalski/init/KowalskiTweaker.java @@ -1,20 +1,41 @@ package moe.nea.kowalski.init; import net.minecraft.launchwrapper.ITweaker; +import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; +import net.minecraftforge.fml.relauncher.CoreModManager; +import org.spongepowered.asm.launch.MixinBootstrap; import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; import java.util.List; public class KowalskiTweaker implements ITweaker { @Override public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { +// ((List) Launch.blackboard.get("TweakClasses")).add("org.spongepowered.asm.launch.MixinTweaker"); + URL location = KowalskiTweaker.class.getProtectionDomain().getCodeSource().getLocation(); + if (location == null) return; + if (!"file".equals(location.getProtocol())) return; + try { + MixinBootstrap.getPlatform().addContainer(location.toURI()); + String file = new File(location.toURI()).getName(); + CoreModManager.getIgnoredMods().remove(file); + CoreModManager.getReparseableCoremods().add(file); + } catch (URISyntaxException e) { + System.err.println("Kowalski could not re-add itself as mod."); + e.printStackTrace(); + } + } + static { + Launch.classLoader.registerTransformer("moe.nea.kowalski.init.EventClassTransformer"); } @Override public void injectIntoClassLoader(LaunchClassLoader classLoader) { -classLoader.registerTransformer("moe.nea.kowalski.init.EventClassTransformer"); + } @Override -- cgit