From 48c92084da080b2ae4325e7509da655c53f0446c Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 23 Sep 2013 13:32:53 -0400 Subject: [PATCH] Fix injection of tweaker into system --- .../cpw/mods/fml/relauncher/CoreModManager.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fml/common/cpw/mods/fml/relauncher/CoreModManager.java b/fml/common/cpw/mods/fml/relauncher/CoreModManager.java index f345fc95d5..7fc9adde7f 100644 --- a/fml/common/cpw/mods/fml/relauncher/CoreModManager.java +++ b/fml/common/cpw/mods/fml/relauncher/CoreModManager.java @@ -17,6 +17,8 @@ import java.io.FilenameFilter; import java.io.IOException; import java.lang.reflect.Method; import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -233,11 +235,17 @@ public class CoreModManager } } + private static Method ADDURL; private static void handleCascadingTweak(File coreMod, JarFile jar, String cascadedTweaker, LaunchClassLoader classLoader) { try { - classLoader.addURL(coreMod.toURI().toURL()); + // Have to manually stuff the tweaker into the parent classloader + if (ADDURL == null) + { + ADDURL = URLClassLoader.class.getDeclaredMethod("addURL", URL.class); + } + ADDURL.invoke(classLoader.getParent(), coreMod.toURI().toURL()); CoreModManager.tweaker.injectCascadingTweak(cascadedTweaker); } catch (Exception e) @@ -281,7 +289,7 @@ public class CoreModManager { return reparsedCoremods; } - + private static FMLPluginWrapper loadCoreMod(LaunchClassLoader classLoader, String coreModClass, File location) { String coreModName = coreModClass.substring(coreModClass.lastIndexOf('.')+1);