Improve Console window output.

-> Log Pre- and Post-Launch command happenings
-> Enable the java part to specify the level

TODO: fix logging with mc 1.7's log4j logging infrastructure

Signed-off-by: Orochimarufan <orochimarufan.x3@gmail.com>
This commit is contained in:
Orochimarufan
2014-01-17 22:55:10 +01:00
parent 7b96d74d3b
commit 188d0d5886
10 changed files with 249 additions and 83 deletions

View File

@ -71,15 +71,15 @@ public class EntryPoint
if(param.equals("legacy"))
{
m_launcher = new LegacyLauncher();
System.out.println("Using legacy launcher.");
System.out.println();
Utils.log("Using legacy launcher.");
Utils.log();
return Action.Launch;
}
if(param.equals("onesix"))
{
m_launcher = new OneSixLauncher();
System.out.println("Using onesix launcher.");
System.out.println();
Utils.log("Using onesix launcher.");
Utils.log();
return Action.Launch;
}
else

View File

@ -153,4 +153,27 @@ public class Utils
}
return null;
}
/**
* Log to the MultiMC console
*
* @param message A String containing the message
* @param level A String containing the level name. See MinecraftProcess::getLevel()
*/
public static void log(String message, String level)
{
// Kinda dirty
String tag = "!![" + level + "]!";
System.out.println(tag + message.replace("\n", "\n" + tag));
}
public static void log(String message)
{
log(message, "MultiMC");
}
public static void log()
{
System.out.println();
}
}

View File

@ -102,20 +102,20 @@ public class LegacyLauncher implements Launcher
// print the pretty things
{
System.out.println("Main Class:");
System.out.println(mainClass);
System.out.println();
Utils.log("Main Class:");
Utils.log(" " + mainClass);
Utils.log();
System.out.println("Class Path:");
Utils.log("Class Path:");
for (URL s : classpath)
{
System.out.println(s);
Utils.log(" " + s);
}
System.out.println();
Utils.log();
System.out.println("Native Path:");
System.out.println(nativesDir);
System.out.println();
Utils.log("Native Path:");
Utils.log(" " + nativesDir);
Utils.log();
}
URLClassLoader cl = new URLClassLoader(classpath, LegacyLauncher.class.getClassLoader());
@ -149,7 +149,7 @@ public class LegacyLauncher implements Launcher
mcArgs[0] = userName;
mcArgs[1] = sessionId;
System.out.println("Launching with applet wrapper...");
Utils.log("Launching with applet wrapper...");
try
{
Class<?> MCAppletClass = cl.loadClass("net.minecraft.client.MinecraftApplet");
@ -158,16 +158,16 @@ public class LegacyLauncher implements Launcher
mcWindow.start(mcappl, userName, sessionId, winSize, maximize);
} catch (Exception e)
{
System.err.println("Applet wrapper failed:");
Utils.log("Applet wrapper failed:", "Error");
e.printStackTrace(System.err);
System.err.println();
System.out.println("Falling back to compatibility mode.");
Utils.log();
Utils.log("Falling back to compatibility mode.");
try
{
mc.getMethod("main", String[].class).invoke(null, (Object) mcArgs);
} catch (Exception e1)
{
System.err.println("Failed to invoke the Minecraft main class:");
Utils.log("Failed to invoke the Minecraft main class:", "Fatal");
e1.printStackTrace(System.err);
return -1;
}

View File

@ -74,37 +74,37 @@ public class OneSixLauncher implements Launcher
// print the pretty things
{
System.out.println("Main Class:");
System.out.println(mainClass);
System.out.println();
Utils.log("Main Class:");
Utils.log(" " + mainClass);
Utils.log();
System.out.println("Native paths:");
Utils.log("Native paths:");
for (String s : allNativePaths)
{
System.out.println(s);
Utils.log(" " + s);
}
System.out.println();
Utils.log();
System.out.println("Libraries:");
Utils.log("Libraries:");
for (String s : libraries)
{
System.out.println(s);
Utils.log(" " + s);
}
System.out.println();
Utils.log();
if(mods.size() > 0)
{
System.out.println("Class Path Mods:");
Utils.log("Class Path Mods:");
for (String s : mods)
{
System.out.println(s);
Utils.log(" " + s);
}
System.out.println();
Utils.log();
}
System.out.println("Params:");
System.out.println(mcparams.toString());
System.out.println();
Utils.log("Params:");
Utils.log(" " + mcparams.toString());
Utils.log();
}
final ClassLoader cl = ClassLoader.getSystemClassLoader();