summaryrefslogtreecommitdiffstats
path: root/libraries
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-06-16 02:20:23 +0200
committerPetr Mrázek <peterix@gmail.com>2016-08-01 21:15:08 +0200
commit1f2bed2ef119094bdc156aa3a206b93dea5081d1 (patch)
treef154e39d3de3a3d71ed868cf396c4361b04e75c5 /libraries
parent57c84ec2b15d8aa6985681f79641f5989c2f049f (diff)
downloadMultiMC-1f2bed2ef119094bdc156aa3a206b93dea5081d1.tar
MultiMC-1f2bed2ef119094bdc156aa3a206b93dea5081d1.tar.gz
MultiMC-1f2bed2ef119094bdc156aa3a206b93dea5081d1.tar.lz
MultiMC-1f2bed2ef119094bdc156aa3a206b93dea5081d1.tar.xz
MultiMC-1f2bed2ef119094bdc156aa3a206b93dea5081d1.zip
NOISSUE implement direct java launch
Just running the Java process and giving it params on the command line
Diffstat (limited to 'libraries')
-rw-r--r--libraries/launcher/CMakeLists.txt1
-rw-r--r--libraries/launcher/org/multimc/EntryPoint.java8
-rw-r--r--libraries/launcher/org/multimc/Utils.java90
-rw-r--r--libraries/launcher/org/multimc/legacy/LegacyLauncher.java175
-rw-r--r--libraries/launcher/org/multimc/onesix/OneSixLauncher.java112
5 files changed, 0 insertions, 386 deletions
diff --git a/libraries/launcher/CMakeLists.txt b/libraries/launcher/CMakeLists.txt
index b62805e0..9c0e128b 100644
--- a/libraries/launcher/CMakeLists.txt
+++ b/libraries/launcher/CMakeLists.txt
@@ -17,7 +17,6 @@ set(SRC
# legacy applet wrapper thing.
# The launcher has to be there for silly FML/Forge relauncher.
net/minecraft/Launcher.java
- org/multimc/legacy/LegacyLauncher.java
org/multimc/LegacyFrame.java
# onesix launcher
diff --git a/libraries/launcher/org/multimc/EntryPoint.java b/libraries/launcher/org/multimc/EntryPoint.java
index d1fc54a8..1d46c023 100644
--- a/libraries/launcher/org/multimc/EntryPoint.java
+++ b/libraries/launcher/org/multimc/EntryPoint.java
@@ -14,7 +14,6 @@ package org.multimc;/*
* limitations under the License.
*/
-import org.multimc.legacy.LegacyLauncher;
import org.multimc.onesix.OneSixLauncher;
import org.simplericity.macify.eawt.Application;
import org.simplericity.macify.eawt.DefaultApplication;
@@ -83,13 +82,6 @@ public class EntryPoint
if(command.equals("launcher"))
{
- if(param.equals("legacy"))
- {
- m_launcher = new LegacyLauncher();
- Utils.log("Using legacy launcher.");
- Utils.log();
- return Action.Proceed;
- }
if(param.equals("onesix"))
{
m_launcher = new OneSixLauncher();
diff --git a/libraries/launcher/org/multimc/Utils.java b/libraries/launcher/org/multimc/Utils.java
index 32cf7919..86182831 100644
--- a/libraries/launcher/org/multimc/Utils.java
+++ b/libraries/launcher/org/multimc/Utils.java
@@ -186,95 +186,5 @@ public class Utils
{
System.out.println();
}
-
- /**
- * Pushes bytes from in to out. Closes both streams no matter what.
- * @param in the input stream
- * @param out the output stream
- * @throws IOException
- */
- private static void copyStream(InputStream in, OutputStream out) throws IOException
- {
- try
- {
- byte[] buffer = new byte[4096];
- int len;
-
- while((len = in.read(buffer)) >= 0)
- out.write(buffer, 0, len);
- } finally
- {
- in.close();
- out.close();
- }
- }
-
- /**
- * Replace a 'target' string 'suffix' with 'replacement'
- */
- public static String replaceSuffix (String target, String suffix, String replacement)
- {
- if (!target.endsWith(suffix))
- {
- return target;
- }
- String prefix = target.substring(0, target.length() - suffix.length());
- return prefix + replacement;
- }
-
- /**
- * Unzip zip file with natives 'source' into the folder 'targetFolder'
- *
- * Contains a hack for OSX. Yay.
- * @param source
- * @param targetFolder
- * @throws IOException
- */
- public static void unzipNatives(File source, File targetFolder) throws IOException
- {
- ZipFile zip = new ZipFile(source);
-
- boolean applyHacks = false;
- String[] javaVersionElements = System.getProperty("java.version").split("[.\\-+]");
- int major = Integer.parseInt(javaVersionElements[0]);
- if(major == 1)
- {
- major = Integer.parseInt(javaVersionElements[1]);
- }
- if (major >= 8)
- {
- applyHacks = true;
- }
-
- try
- {
- Enumeration entries = zip.entries();
-
- while (entries.hasMoreElements())
- {
- ZipEntry entry = (ZipEntry) entries.nextElement();
-
- String entryName = entry.getName();
- String fileName = entryName;
- if(applyHacks)
- {
- fileName = replaceSuffix(entryName, ".jnilib", ".dylib");
- }
- File targetFile = new File(targetFolder, fileName);
- if (targetFile.getParentFile() != null)
- {
- targetFile.getParentFile().mkdirs();
- }
-
- if (entry.isDirectory())
- continue;
-
- copyStream(zip.getInputStream(entry), new BufferedOutputStream(new FileOutputStream(targetFile)));
- }
- } finally
- {
- zip.close();
- }
- }
}
diff --git a/libraries/launcher/org/multimc/legacy/LegacyLauncher.java b/libraries/launcher/org/multimc/legacy/LegacyLauncher.java
deleted file mode 100644
index 347bb1a2..00000000
--- a/libraries/launcher/org/multimc/legacy/LegacyLauncher.java
+++ /dev/null
@@ -1,175 +0,0 @@
-package org.multimc.legacy;/*
- * Copyright 2012-2014 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.multimc.*;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.io.File;
-import java.lang.reflect.Field;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-public class LegacyLauncher implements Launcher
-{
- @Override
- public int launch(ParamBucket params)
- {
- String userName, sessionId, windowTitle, windowParams, lwjgl;
- String mainClass = "net.minecraft.client.Minecraft";
- try
- {
- userName = params.first("userName");
- sessionId = params.first("sessionId");
- windowTitle = params.first("windowTitle");
- windowParams = params.first("windowParams");
- lwjgl = params.first("lwjgl");
- } catch (NotFoundException e)
- {
- System.err.println("Not enough arguments.");
- return -1;
- }
-
- String cwd = System.getProperty("user.dir");
- Dimension winSize = new Dimension(854, 480);
- boolean maximize = false;
-
- String[] dimStrings = windowParams.split("x");
-
- if (windowParams.equalsIgnoreCase("max"))
- {
- maximize = true;
- }
- else if (dimStrings.length == 2)
- {
- try
- {
- winSize = new Dimension(Integer.parseInt(dimStrings[0]), Integer.parseInt(dimStrings[1]));
- } catch (NumberFormatException ignored) {}
- }
-
- File binDir = new File(cwd, "bin");
- File lwjglDir;
- if (lwjgl.equalsIgnoreCase("Mojang"))
- {
- lwjglDir = binDir;
- }
- else
- {
- lwjglDir = new File(lwjgl);
- }
-
- URL[] classpath;
- {
- try
- {
- classpath = new URL[]
- {
- new File(binDir, "minecraft.jar").toURI().toURL(),
- new File(lwjglDir, "lwjgl.jar").toURI().toURL(),
- new File(lwjglDir, "lwjgl_util.jar").toURI().toURL(),
- new File(lwjglDir, "jinput.jar").toURI().toURL(),
- };
- } catch (MalformedURLException e)
- {
- System.err.println("Class path entry is badly formed:");
- e.printStackTrace(System.err);
- return -1;
- }
- }
-
- String nativesDir = new File(lwjglDir, "natives").toString();
-
- System.setProperty("org.lwjgl.librarypath", nativesDir);
- System.setProperty("net.java.games.input.librarypath", nativesDir);
-
- // print the pretty things
- {
- Utils.log("Main Class:");
- Utils.log(" " + mainClass);
- Utils.log();
-
- Utils.log("Class Path:");
- for (URL s : classpath)
- {
- Utils.log(" " + s);
- }
- Utils.log();
-
- Utils.log("Native Path:");
- Utils.log(" " + nativesDir);
- Utils.log();
- }
-
- URLClassLoader cl = new URLClassLoader(classpath, LegacyLauncher.class.getClassLoader());
-
- // Get the Minecraft Class and set the base folder
- Class<?> mc;
- try
- {
- mc = cl.loadClass(mainClass);
-
- Field f = Utils.getMCPathField(mc);
-
- if (f == null)
- {
- System.err.println("Could not find Minecraft path field. Launch failed.");
- return -1;
- }
-
- 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:");
- e.printStackTrace(System.err);
- return -1;
- }
-
- System.setProperty("minecraft.applet.TargetDirectory", cwd);
-
- String[] mcArgs = new String[2];
- mcArgs[0] = userName;
- mcArgs[1] = sessionId;
-
- Utils.log("Launching with applet wrapper...");
- try
- {
- Class<?> MCAppletClass = cl.loadClass("net.minecraft.client.MinecraftApplet");
- 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
- {
- mc.getMethod("main", String[].class).invoke(null, (Object) mcArgs);
- } catch (Exception e1)
- {
- Utils.log("Failed to invoke the Minecraft main class:", "Fatal");
- e1.printStackTrace(System.err);
- return -1;
- }
- }
-
- return 0;
- }
-}
diff --git a/libraries/launcher/org/multimc/onesix/OneSixLauncher.java b/libraries/launcher/org/multimc/onesix/OneSixLauncher.java
index 179df0ee..e3e4c283 100644
--- a/libraries/launcher/org/multimc/onesix/OneSixLauncher.java
+++ b/libraries/launcher/org/multimc/onesix/OneSixLauncher.java
@@ -30,9 +30,6 @@ public class OneSixLauncher implements Launcher
{
// parameters, separated from ParamBucket
private List<String> libraries;
- private List<String> extlibs;
- private List<String> extlibs32;
- private List<String> extlibs64;
private List<String> mcparams;
private List<String> mods;
private List<String> jarmods;
@@ -56,28 +53,9 @@ public class OneSixLauncher implements Launcher
private void processParams(ParamBucket params) throws NotFoundException
{
libraries = params.all("cp");
- extlibs = params.allSafe("ext", new ArrayList<String>());
- extlibs32 = params.allSafe("ext32", new ArrayList<String>());
- extlibs64 = params.allSafe("ext64", new ArrayList<String>());
-
- // Unify the extracted native libs according to actual system architecture
- String property = System.getProperty("os.arch");
- boolean is_64 = property.equalsIgnoreCase("x86_64") || property.equalsIgnoreCase("amd64");
- if(is_64)
- {
- extlibs.addAll(extlibs64);
- }
- else
- {
- extlibs.addAll(extlibs32);
- }
-
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("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>());
nativePath = params.first("natives");
@@ -105,75 +83,6 @@ public class OneSixLauncher implements Launcher
}
}
- private void printStats()
- {
- Utils.log("Main Class:");
- Utils.log(" " + mainClass);
- Utils.log();
-
- Utils.log("Native path:");
- Utils.log(" " + nativePath);
- Utils.log();
-
- Utils.log("Traits:");
- Utils.log(" " + traits);
- Utils.log();
-
- Utils.log("Libraries:");
- for (String s : libraries)
- {
- File f = new File(s);
- if (f.exists())
- {
- Utils.log(" " + s);
- }
- else
- {
- Utils.log(" " + s + " (missing)", "Warning");
- }
- }
- Utils.log();
-
- if(mods.size() > 0)
- {
- Utils.log("Mods:");
- for (String s : mods)
- {
- Utils.log(" " + s);
- }
- 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();
- if(maximize)
- Utils.log("Window size: max (if available)");
- else
- Utils.log("Window size: " + Integer.toString(winSize.width) + " x " + Integer.toString(winSize.height));
- Utils.log();
- }
-
int legacyLaunch()
{
// Get the Minecraft Class and set the base folder
@@ -310,27 +219,6 @@ public class OneSixLauncher implements Launcher
return -1;
}
- // print the pretty things
- printStats();
-
- // extract native libs (depending on platform here... java!)
- Utils.log("Preparing native libraries...");
- for(String extlib: extlibs)
- {
- try
- {
- File extlibf = new File(extlib);
- Utils.log("Extracting " + extlibf.getName());
- Utils.unzipNatives(extlibf, new File(nativePath));
- } catch (IOException e)
- {
- System.err.println("Failed to extract native library:");
- e.printStackTrace(System.err);
- return -1;
- }
- }
- Utils.log();
-
// set the native libs path... the brute force way
try
{