mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-09-03 05:29:10 +00:00
NOISSUE allow running legacy without the applet wrapper
Add 'noapplet' as a trait to do that.
This commit is contained in:
parent
afb0db24a8
commit
c19f6d4dcd
@ -111,34 +111,37 @@ public class OneSixLauncher implements Launcher
|
|||||||
|
|
||||||
System.setProperty("minecraft.applet.TargetDirectory", cwd);
|
System.setProperty("minecraft.applet.TargetDirectory", cwd);
|
||||||
|
|
||||||
String[] mcArgs = new String[2];
|
if(!traits.contains("noapplet"))
|
||||||
mcArgs[0] = userName;
|
|
||||||
mcArgs[1] = sessionId;
|
|
||||||
|
|
||||||
Utils.log("Launching with applet wrapper...");
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Class<?> MCAppletClass = cl.loadClass(appletClass);
|
Utils.log("Launching with applet wrapper...");
|
||||||
Applet mcappl = (Applet) MCAppletClass.newInstance();
|
|
||||||
LegacyFrame mcWindow = new LegacyFrame(windowTitle);
|
|
||||||
mcWindow.start(mcappl, userName, sessionId, winSize, maximize);
|
|
||||||
} catch (Exception e)
|
|
||||||
{
|
|
||||||
Utils.log("Applet wrapper failed:", "Error");
|
|
||||||
e.printStackTrace(System.err);
|
|
||||||
Utils.log();
|
|
||||||
Utils.log("Falling back to compatibility mode.");
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
mc.getMethod("main", String[].class).invoke(null, (Object) mcArgs);
|
Class<?> MCAppletClass = cl.loadClass(appletClass);
|
||||||
} catch (Exception e1)
|
Applet mcappl = (Applet) MCAppletClass.newInstance();
|
||||||
|
LegacyFrame mcWindow = new LegacyFrame(windowTitle);
|
||||||
|
mcWindow.start(mcappl, userName, sessionId, winSize, maximize);
|
||||||
|
return 0;
|
||||||
|
} catch (Exception e)
|
||||||
{
|
{
|
||||||
Utils.log("Failed to invoke the Minecraft main class:", "Fatal");
|
Utils.log("Applet wrapper failed:", "Error");
|
||||||
e1.printStackTrace(System.err);
|
e.printStackTrace(System.err);
|
||||||
return -1;
|
Utils.log();
|
||||||
|
Utils.log("Falling back to using main class.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
// init params for the main method to chomp on.
|
||||||
|
String[] paramsArray = mcparams.toArray(new String[mcparams.size()]);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
mc.getMethod("main", String[].class).invoke(null, (Object) paramsArray);
|
||||||
|
return 0;
|
||||||
|
} catch (Exception e)
|
||||||
|
{
|
||||||
|
Utils.log("Failed to invoke the Minecraft main class:", "Fatal");
|
||||||
|
e.printStackTrace(System.err);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int launchWithMainClass()
|
int launchWithMainClass()
|
||||||
@ -181,53 +184,7 @@ public class OneSixLauncher implements Launcher
|
|||||||
e.printStackTrace(System.err);
|
e.printStackTrace(System.err);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
final java.nio.ByteBuffer[] icons = IconLoader.load("icon.png");
|
|
||||||
new Thread() {
|
|
||||||
public void run() {
|
|
||||||
ClassLoader cl = ClassLoader.getSystemClassLoader();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Class<?> Display;
|
|
||||||
Method isCreated;
|
|
||||||
Method setTitle;
|
|
||||||
Method setIcon;
|
|
||||||
Field fieldWindowCreated;
|
|
||||||
Boolean created = false;
|
|
||||||
Display = cl.loadClass("org.lwjgl.opengl.Display");
|
|
||||||
fieldWindowCreated = Display.getDeclaredField("window_created");
|
|
||||||
fieldWindowCreated.setAccessible( true );
|
|
||||||
setTitle = Display.getMethod("setTitle", String.class);
|
|
||||||
setIcon = Display.getMethod("setIcon", java.nio.ByteBuffer[].class);
|
|
||||||
created = (Boolean) fieldWindowCreated.get( null );
|
|
||||||
// set the window title? Maybe?
|
|
||||||
while(!created)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Thread.sleep(150);
|
|
||||||
created = (Boolean) fieldWindowCreated.get( null );
|
|
||||||
} catch (InterruptedException ignored) {}
|
|
||||||
}
|
|
||||||
// Give it a bit more time ;)
|
|
||||||
Thread.sleep(150);
|
|
||||||
// set the title
|
|
||||||
setTitle.invoke(null,windowTitle);
|
|
||||||
// only set icon when there's actually something to set...
|
|
||||||
if(icons.length > 0)
|
|
||||||
{
|
|
||||||
setIcon.invoke(null,(Object)icons);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
System.err.println("Couldn't set window icon or title.");
|
|
||||||
e.printStackTrace(System.err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.start();
|
|
||||||
*/
|
|
||||||
// init params for the main method to chomp on.
|
// init params for the main method to chomp on.
|
||||||
String[] paramsArray = mcparams.toArray(new String[mcparams.size()]);
|
String[] paramsArray = mcparams.toArray(new String[mcparams.size()]);
|
||||||
try
|
try
|
||||||
|
Loading…
Reference in New Issue
Block a user