diff options
author | Linnea Gräf <nea@nea.moe> | 2024-02-22 23:32:11 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-02-22 23:32:11 +0100 |
commit | a8a87765885905b603a9c121ed5260da51ae3a77 (patch) | |
tree | dcbe2349b3c7e3dd1566af871e6f57e431461d75 /src/main/java/moe/nea/kowalski/init | |
parent | aef074886b587745bd814fe965d55e7b4cf11a07 (diff) | |
download | Kowalski-master.tar.gz Kowalski-master.tar.bz2 Kowalski-master.zip |
Diffstat (limited to 'src/main/java/moe/nea/kowalski/init')
-rw-r--r-- | src/main/java/moe/nea/kowalski/init/EventClassTransformer.java | 1 | ||||
-rw-r--r-- | src/main/java/moe/nea/kowalski/init/KowalskiTweaker.java | 23 |
2 files changed, 23 insertions, 1 deletions
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<String> args, File gameDir, File assetsDir, String profile) { +// ((List<String>) 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 |