diff options
Diffstat (limited to 'libraries/launcher/org/prismlauncher/launcher')
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"); } |