From 69a9ca39ad0685663092a4455de3865715f0122e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 8 May 2014 19:05:07 +0200 Subject: Add builtin Minecraft versions for legacy --- .../org/multimc/onesix/OneSixLauncher.java | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'depends/launcher') diff --git a/depends/launcher/org/multimc/onesix/OneSixLauncher.java b/depends/launcher/org/multimc/onesix/OneSixLauncher.java index 784c3522..4a0c9589 100644 --- a/depends/launcher/org/multimc/onesix/OneSixLauncher.java +++ b/depends/launcher/org/multimc/onesix/OneSixLauncher.java @@ -22,11 +22,7 @@ import java.io.File; import java.awt.*; import java.io.IOException; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; import java.util.List; @@ -38,6 +34,7 @@ public class OneSixLauncher implements Launcher private List mcparams; private List mods; private List traits; + private String appletClass; private String mainClass; private String natives; private String userName, sessionId; @@ -57,7 +54,8 @@ public class OneSixLauncher implements Launcher libraries = params.all("cp"); extlibs = params.all("ext"); mcparams = params.all("param"); - mainClass = params.first("mainClass"); + mainClass = params.firstSafe("mainClass", "net.minecraft.client.Minecraft"); + appletClass = params.firstSafe("appletClass", "net.minecraft.client.MinecraftApplet"); mods = params.allSafe("mods", new ArrayList()); traits = params.allSafe("traits", new ArrayList()); natives = params.first("natives"); @@ -134,12 +132,13 @@ public class OneSixLauncher implements Launcher if (f == null) { - System.err.println("Could not find Minecraft path field. Launch failed."); - return -1; + System.err.println("Could not find Minecraft path field."); + } + else + { + f.setAccessible(true); + f.set(null, new File(cwd)); } - - f.setAccessible(true); - f.set(null, new File(cwd)); } catch (Exception e) { System.err.println("Could not set base folder. Failed to find/access Minecraft main class:"); @@ -156,7 +155,7 @@ public class OneSixLauncher implements Launcher Utils.log("Launching with applet wrapper..."); try { - Class MCAppletClass = cl.loadClass("net.minecraft.client.MinecraftApplet"); + Class MCAppletClass = cl.loadClass(appletClass); Applet mcappl = (Applet) MCAppletClass.newInstance(); LegacyFrame mcWindow = new LegacyFrame(windowTitle); mcWindow.start(mcappl, userName, sessionId, winSize, maximize); @@ -307,7 +306,7 @@ public class OneSixLauncher implements Launcher // grab the system classloader and ... cl = ClassLoader.getSystemClassLoader(); - if (traits.contains("legacyLaunch")) + if (traits.contains("legacyLaunch") || traits.contains("alphaLaunch") ) { // legacy launch uses the applet wrapper return legacyLaunch(); -- cgit v1.2.3