aboutsummaryrefslogtreecommitdiff
path: root/libraries/launcher/org/prismlauncher/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/launcher/org/prismlauncher/launcher')
-rw-r--r--libraries/launcher/org/prismlauncher/launcher/Launcher.java3
-rw-r--r--libraries/launcher/org/prismlauncher/launcher/LauncherFactory.java13
-rw-r--r--libraries/launcher/org/prismlauncher/launcher/LauncherProvider.java4
-rw-r--r--libraries/launcher/org/prismlauncher/launcher/impl/AbstractLauncher.java18
-rw-r--r--libraries/launcher/org/prismlauncher/launcher/impl/LegacyLauncher.java7
5 files changed, 21 insertions, 24 deletions
diff --git a/libraries/launcher/org/prismlauncher/launcher/Launcher.java b/libraries/launcher/org/prismlauncher/launcher/Launcher.java
index 1cea255c..6f5c17b8 100644
--- a/libraries/launcher/org/prismlauncher/launcher/Launcher.java
+++ b/libraries/launcher/org/prismlauncher/launcher/Launcher.java
@@ -16,7 +16,8 @@
package org.prismlauncher.launcher;
-
public interface Launcher {
+
void launch() throws Throwable;
+
}
diff --git a/libraries/launcher/org/prismlauncher/launcher/LauncherFactory.java b/libraries/launcher/org/prismlauncher/launcher/LauncherFactory.java
index 6c601171..761a4595 100644
--- a/libraries/launcher/org/prismlauncher/launcher/LauncherFactory.java
+++ b/libraries/launcher/org/prismlauncher/launcher/LauncherFactory.java
@@ -35,7 +35,6 @@
package org.prismlauncher.launcher;
-
import org.prismlauncher.launcher.impl.LegacyLauncher;
import org.prismlauncher.launcher.impl.StandardLauncher;
import org.prismlauncher.utils.Parameters;
@@ -43,10 +42,10 @@ import org.prismlauncher.utils.Parameters;
import java.util.HashMap;
import java.util.Map;
-
public final class LauncherFactory {
+
private static final Map<String, LauncherProvider> launcherRegistry = new HashMap<>();
-
+
static {
launcherRegistry.put("standard", new LauncherProvider() {
@Override
@@ -63,15 +62,15 @@ public final class LauncherFactory {
}
private LauncherFactory() {
}
-
+
public static Launcher createLauncher(Parameters parameters) {
String name = parameters.getString("launcher");
-
+
LauncherProvider launcherProvider = launcherRegistry.get(name);
-
+
if (launcherProvider == null)
throw new IllegalArgumentException("Invalid launcher type: " + name);
-
+
return launcherProvider.provide(parameters);
}
}
diff --git a/libraries/launcher/org/prismlauncher/launcher/LauncherProvider.java b/libraries/launcher/org/prismlauncher/launcher/LauncherProvider.java
index b6d1caab..9b453c7b 100644
--- a/libraries/launcher/org/prismlauncher/launcher/LauncherProvider.java
+++ b/libraries/launcher/org/prismlauncher/launcher/LauncherProvider.java
@@ -35,10 +35,10 @@
package org.prismlauncher.launcher;
-
import org.prismlauncher.utils.Parameters;
-
public interface LauncherProvider {
+
Launcher provide(Parameters parameters);
+
}
diff --git a/libraries/launcher/org/prismlauncher/launcher/impl/AbstractLauncher.java b/libraries/launcher/org/prismlauncher/launcher/impl/AbstractLauncher.java
index 637c5da7..5aab40ff 100644
--- a/libraries/launcher/org/prismlauncher/launcher/impl/AbstractLauncher.java
+++ b/libraries/launcher/org/prismlauncher/launcher/impl/AbstractLauncher.java
@@ -15,7 +15,6 @@
package org.prismlauncher.launcher.impl;
-
import org.prismlauncher.exception.ParseException;
import org.prismlauncher.launcher.Launcher;
import org.prismlauncher.utils.Parameters;
@@ -26,9 +25,8 @@ import java.lang.invoke.MethodType;
import java.util.ArrayList;
import java.util.List;
-
public abstract class AbstractLauncher implements Launcher {
-
+
private static final int DEFAULT_WINDOW_WIDTH = 854;
private static final int DEFAULT_WINDOW_HEIGHT = 480;
@@ -44,21 +42,21 @@ public abstract class AbstractLauncher implements Launcher {
protected final String serverAddress, serverPort;
protected final ClassLoader classLoader;
-
+
protected AbstractLauncher(Parameters params) {
classLoader = ClassLoader.getSystemClassLoader();
-
+
mcParams = params.getList("param", new ArrayList<String>());
mainClass = params.getString("mainClass", "net.minecraft.client.Minecraft");
-
+
serverAddress = params.getString("serverAddress", null);
serverPort = params.getString("serverPort", null);
-
+
String windowParams = params.getString("windowParams", null);
-
+
if ("max".equals(windowParams) || windowParams == null) {
maximize = windowParams != null;
-
+
width = DEFAULT_WINDOW_WIDTH;
height = DEFAULT_WINDOW_HEIGHT;
} else {
@@ -82,7 +80,7 @@ public abstract class AbstractLauncher implements Launcher {
protected Class<?> loadMain() throws ClassNotFoundException {
return classLoader.loadClass(mainClass);
}
-
+
protected void loadAndInvokeMain() throws Throwable {
invokeMain(loadMain());
}
diff --git a/libraries/launcher/org/prismlauncher/launcher/impl/LegacyLauncher.java b/libraries/launcher/org/prismlauncher/launcher/impl/LegacyLauncher.java
index 181156c6..57e29605 100644
--- a/libraries/launcher/org/prismlauncher/launcher/impl/LegacyLauncher.java
+++ b/libraries/launcher/org/prismlauncher/launcher/impl/LegacyLauncher.java
@@ -15,7 +15,6 @@
package org.prismlauncher.launcher.impl;
-
import org.prismlauncher.applet.LegacyFrame;
import org.prismlauncher.utils.LegacyUtils;
import org.prismlauncher.utils.Parameters;
@@ -45,15 +44,15 @@ public final class LegacyLauncher extends AbstractLauncher {
public LegacyLauncher(Parameters params) {
super(params);
-
+
user = params.getString("userName");
session = params.getString("sessionId");
title = params.getString("windowTitle", "Minecraft");
appletClass = params.getString("appletClass", "net.minecraft.client.MinecraftApplet");
-
+
List<String> traits = params.getList("traits", Collections.<String>emptyList());
noApplet = traits.contains("noapplet");
-
+
cwd = System.getProperty("user.dir");
}