diff options
-rw-r--r-- | depends/launcher/org/multimc/onesix/OneSixLauncher.java | 60 | ||||
-rw-r--r-- | logic/minecraft/OneSixInstance.cpp | 15 |
2 files changed, 54 insertions, 21 deletions
diff --git a/depends/launcher/org/multimc/onesix/OneSixLauncher.java b/depends/launcher/org/multimc/onesix/OneSixLauncher.java index 6314ef0e..8ef6376d 100644 --- a/depends/launcher/org/multimc/onesix/OneSixLauncher.java +++ b/depends/launcher/org/multimc/onesix/OneSixLauncher.java @@ -33,6 +33,8 @@ public class OneSixLauncher implements Launcher private List<String> extlibs; private List<String> mcparams; private List<String> mods; + private List<String> jarmods; + private List<String> coremods; private List<String> traits; private String appletClass; private String mainClass; @@ -40,12 +42,12 @@ public class OneSixLauncher implements Launcher private String userName, sessionId; private String windowTitle; private String windowParams; - + // secondary parameters private Dimension winSize; private boolean maximize; private String cwd; - + // the much abused system classloader, for convenience (for further abuse) private ClassLoader cl; @@ -56,7 +58,9 @@ public class OneSixLauncher implements Launcher mcparams = params.allSafe("param", new ArrayList<String>() ); mainClass = params.firstSafe("mainClass", "net.minecraft.client.Minecraft"); appletClass = params.firstSafe("appletClass", "net.minecraft.client.MinecraftApplet"); - mods = params.allSafe("mods", new ArrayList<String>()); + mods = params.allSafe("mod", new ArrayList<String>()); + jarmods = params.allSafe("jarmod", new ArrayList<String>()); + coremods = params.allSafe("coremod", new ArrayList<String>()); traits = params.allSafe("traits", new ArrayList<String>()); natives = params.first("natives"); @@ -64,7 +68,7 @@ public class OneSixLauncher implements Launcher sessionId = params.first("sessionId"); windowTitle = params.firstSafe("windowTitle", "Minecraft"); windowParams = params.firstSafe("windowParams", "854x480"); - + cwd = System.getProperty("user.dir"); winSize = new Dimension(854, 480); maximize = false; @@ -115,7 +119,7 @@ public class OneSixLauncher implements Launcher if(mods.size() > 0) { - Utils.log("Class Path Mods:"); + Utils.log("Mods:"); for (String s : mods) { Utils.log(" " + s); @@ -123,6 +127,26 @@ public class OneSixLauncher implements Launcher Utils.log(); } + if(coremods.size() > 0) + { + Utils.log("Core Mods:"); + for (String s : coremods) + { + Utils.log(" " + s); + } + Utils.log(); + } + + if(jarmods.size() > 0) + { + Utils.log("Jar Mods:"); + for (String s : jarmods) + { + Utils.log(" " + s); + } + Utils.log(); + } + Utils.log("Params:"); Utils.log(" " + mcparams.toString()); Utils.log(); @@ -190,7 +214,7 @@ public class OneSixLauncher implements Launcher } return 0; } - + int launchWithMainClass() { // window size, title and state, onesix @@ -207,7 +231,7 @@ public class OneSixLauncher implements Launcher mcparams.add("--height"); mcparams.add(Integer.toString(winSize.height)); } - + // Get the Minecraft Class. Class<?> mc; try @@ -292,7 +316,7 @@ public class OneSixLauncher implements Launcher } return 0; } - + @Override public int launch(ParamBucket params) { @@ -307,17 +331,11 @@ public class OneSixLauncher implements Launcher return -1; } - // do some horrible black magic with the classpath + // add libraries to classpath + if(!Utils.addToClassPath(libraries)) { - List<String> allJars = new ArrayList<String>(); - allJars.addAll(mods); - allJars.addAll(libraries); - - if(!Utils.addToClassPath(allJars)) - { - System.err.println("Halting launch due to previous errors."); - return -1; - } + System.err.println("Halting launch due to previous errors."); + return -1; } // print the pretty things @@ -343,7 +361,7 @@ public class OneSixLauncher implements Launcher } } Utils.log(); - + // set the native libs path... the brute force way try { @@ -361,10 +379,10 @@ public class OneSixLauncher implements Launcher e.printStackTrace(System.err); return -1; } - + // grab the system classloader and ... cl = ClassLoader.getSystemClassLoader(); - + if (traits.contains("legacyLaunch") || traits.contains("alphaLaunch") ) { // legacy launch uses the applet wrapper diff --git a/logic/minecraft/OneSixInstance.cpp b/logic/minecraft/OneSixInstance.cpp index b2b8698f..74c28a8f 100644 --- a/logic/minecraft/OneSixInstance.cpp +++ b/logic/minecraft/OneSixInstance.cpp @@ -134,6 +134,21 @@ BaseProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session) if (!m_version) return nullptr; + for(auto & mod: loaderModList()->allMods()) + { + launchScript += "mod " + mod.filename().absoluteFilePath() + "\n";; + } + + for(auto & coremod: coreModList()->allMods()) + { + launchScript += "coremod " + coremod.filename().absoluteFilePath() + "\n";; + } + + for(auto & jarmod: m_version->jarMods) + { + launchScript += "jarmod " + jarmod->name + "\n";; + } + // libraries and class path. { auto libs = m_version->getActiveNormalLibs(); |