GH-1016 print mods, jar mods and core mods on start

Needs some work - jar mods just have the uuid name
This commit is contained in:
Petr Mrázek 2015-05-31 09:06:24 +02:00
parent 99f248ecd4
commit 9920062003
2 changed files with 54 additions and 21 deletions

View File

@ -33,6 +33,8 @@ public class OneSixLauncher implements Launcher
private List<String> extlibs; private List<String> extlibs;
private List<String> mcparams; private List<String> mcparams;
private List<String> mods; private List<String> mods;
private List<String> jarmods;
private List<String> coremods;
private List<String> traits; private List<String> traits;
private String appletClass; private String appletClass;
private String mainClass; private String mainClass;
@ -40,12 +42,12 @@ public class OneSixLauncher implements Launcher
private String userName, sessionId; private String userName, sessionId;
private String windowTitle; private String windowTitle;
private String windowParams; private String windowParams;
// secondary parameters // secondary parameters
private Dimension winSize; private Dimension winSize;
private boolean maximize; private boolean maximize;
private String cwd; private String cwd;
// the much abused system classloader, for convenience (for further abuse) // the much abused system classloader, for convenience (for further abuse)
private ClassLoader cl; private ClassLoader cl;
@ -56,7 +58,9 @@ public class OneSixLauncher implements Launcher
mcparams = params.allSafe("param", new ArrayList<String>() ); mcparams = params.allSafe("param", new ArrayList<String>() );
mainClass = params.firstSafe("mainClass", "net.minecraft.client.Minecraft"); mainClass = params.firstSafe("mainClass", "net.minecraft.client.Minecraft");
appletClass = params.firstSafe("appletClass", "net.minecraft.client.MinecraftApplet"); 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>()); traits = params.allSafe("traits", new ArrayList<String>());
natives = params.first("natives"); natives = params.first("natives");
@ -64,7 +68,7 @@ public class OneSixLauncher implements Launcher
sessionId = params.first("sessionId"); sessionId = params.first("sessionId");
windowTitle = params.firstSafe("windowTitle", "Minecraft"); windowTitle = params.firstSafe("windowTitle", "Minecraft");
windowParams = params.firstSafe("windowParams", "854x480"); windowParams = params.firstSafe("windowParams", "854x480");
cwd = System.getProperty("user.dir"); cwd = System.getProperty("user.dir");
winSize = new Dimension(854, 480); winSize = new Dimension(854, 480);
maximize = false; maximize = false;
@ -115,7 +119,7 @@ public class OneSixLauncher implements Launcher
if(mods.size() > 0) if(mods.size() > 0)
{ {
Utils.log("Class Path Mods:"); Utils.log("Mods:");
for (String s : mods) for (String s : mods)
{ {
Utils.log(" " + s); Utils.log(" " + s);
@ -123,6 +127,26 @@ public class OneSixLauncher implements Launcher
Utils.log(); 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("Params:");
Utils.log(" " + mcparams.toString()); Utils.log(" " + mcparams.toString());
Utils.log(); Utils.log();
@ -190,7 +214,7 @@ public class OneSixLauncher implements Launcher
} }
return 0; return 0;
} }
int launchWithMainClass() int launchWithMainClass()
{ {
// window size, title and state, onesix // window size, title and state, onesix
@ -207,7 +231,7 @@ public class OneSixLauncher implements Launcher
mcparams.add("--height"); mcparams.add("--height");
mcparams.add(Integer.toString(winSize.height)); mcparams.add(Integer.toString(winSize.height));
} }
// Get the Minecraft Class. // Get the Minecraft Class.
Class<?> mc; Class<?> mc;
try try
@ -292,7 +316,7 @@ public class OneSixLauncher implements Launcher
} }
return 0; return 0;
} }
@Override @Override
public int launch(ParamBucket params) public int launch(ParamBucket params)
{ {
@ -307,17 +331,11 @@ public class OneSixLauncher implements Launcher
return -1; return -1;
} }
// do some horrible black magic with the classpath // add libraries to classpath
if(!Utils.addToClassPath(libraries))
{ {
List<String> allJars = new ArrayList<String>(); System.err.println("Halting launch due to previous errors.");
allJars.addAll(mods); return -1;
allJars.addAll(libraries);
if(!Utils.addToClassPath(allJars))
{
System.err.println("Halting launch due to previous errors.");
return -1;
}
} }
// print the pretty things // print the pretty things
@ -343,7 +361,7 @@ public class OneSixLauncher implements Launcher
} }
} }
Utils.log(); Utils.log();
// set the native libs path... the brute force way // set the native libs path... the brute force way
try try
{ {
@ -361,10 +379,10 @@ public class OneSixLauncher implements Launcher
e.printStackTrace(System.err); e.printStackTrace(System.err);
return -1; return -1;
} }
// grab the system classloader and ... // grab the system classloader and ...
cl = ClassLoader.getSystemClassLoader(); cl = ClassLoader.getSystemClassLoader();
if (traits.contains("legacyLaunch") || traits.contains("alphaLaunch") ) if (traits.contains("legacyLaunch") || traits.contains("alphaLaunch") )
{ {
// legacy launch uses the applet wrapper // legacy launch uses the applet wrapper

View File

@ -134,6 +134,21 @@ BaseProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session)
if (!m_version) if (!m_version)
return nullptr; 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. // libraries and class path.
{ {
auto libs = m_version->getActiveNormalLibs(); auto libs = m_version->getActiveNormalLibs();