aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoricelimetea <fr3shtea@outlook.com>2022-05-03 00:25:26 +0100
committericelimetea <fr3shtea@outlook.com>2022-05-03 00:25:26 +0100
commiteeb5297284494c03f3b8e3927c5ed6cc3ca09a41 (patch)
treee20d809a3fbb9154a064edd1d20bb2c22a9ae390
parent8de63b60b1a9d0ba16f5d45f3198c13637151749 (diff)
downloadPrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.tar.gz
PrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.tar.bz2
PrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.zip
Use only Java 7 features (in order to deal with #515)
-rw-r--r--libraries/launcher/org/multimc/LauncherFactory.java23
-rw-r--r--libraries/launcher/org/multimc/applet/LegacyFrame.java19
-rw-r--r--libraries/launcher/org/multimc/impl/OneSixLauncher.java4
-rw-r--r--libraries/launcher/org/multimc/utils/ParamBucket.java11
4 files changed, 38 insertions, 19 deletions
diff --git a/libraries/launcher/org/multimc/LauncherFactory.java b/libraries/launcher/org/multimc/LauncherFactory.java
index b5d0dd5b..2b370058 100644
--- a/libraries/launcher/org/multimc/LauncherFactory.java
+++ b/libraries/launcher/org/multimc/LauncherFactory.java
@@ -5,30 +5,39 @@ import org.multimc.utils.ParamBucket;
import java.util.HashMap;
import java.util.Map;
-import java.util.function.Function;
public final class LauncherFactory {
private static final LauncherFactory INSTANCE = new LauncherFactory();
- private final Map<String, Function<ParamBucket, Launcher>> launcherRegistry = new HashMap<>();
+ private final Map<String, LauncherProvider> launcherRegistry = new HashMap<>();
private LauncherFactory() {
- launcherRegistry.put("onesix", OneSixLauncher::new);
+ launcherRegistry.put("onesix", new LauncherProvider() {
+ @Override
+ public Launcher provide(ParamBucket parameters) {
+ return new OneSixLauncher(parameters);
+ }
+ });
}
public Launcher createLauncher(String name, ParamBucket parameters) {
- Function<ParamBucket, Launcher> launcherCreator =
- launcherRegistry.get(name);
+ LauncherProvider launcherProvider = launcherRegistry.get(name);
- if (launcherCreator == null)
+ if (launcherProvider == null)
throw new IllegalArgumentException("Invalid launcher type: " + name);
- return launcherCreator.apply(parameters);
+ return launcherProvider.provide(parameters);
}
public static LauncherFactory getInstance() {
return INSTANCE;
}
+ public interface LauncherProvider {
+
+ Launcher provide(ParamBucket parameters);
+
+ }
+
}
diff --git a/libraries/launcher/org/multimc/applet/LegacyFrame.java b/libraries/launcher/org/multimc/applet/LegacyFrame.java
index a5e6c170..d250ce26 100644
--- a/libraries/launcher/org/multimc/applet/LegacyFrame.java
+++ b/libraries/launcher/org/multimc/applet/LegacyFrame.java
@@ -141,16 +141,19 @@ public final class LegacyFrame extends Frame {
@Override
public void windowClosing(WindowEvent e) {
- new Thread(() -> {
- try {
- Thread.sleep(30000L);
- } catch (InterruptedException localInterruptedException) {
- localInterruptedException.printStackTrace();
- }
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(30000L);
+ } catch (InterruptedException localInterruptedException) {
+ localInterruptedException.printStackTrace();
+ }
- LOGGER.info("Forcing exit!");
+ LOGGER.info("Forcing exit!");
- System.exit(0);
+ System.exit(0);
+ }
}).start();
if (appletWrap != null) {
diff --git a/libraries/launcher/org/multimc/impl/OneSixLauncher.java b/libraries/launcher/org/multimc/impl/OneSixLauncher.java
index d2596a69..19253dc0 100644
--- a/libraries/launcher/org/multimc/impl/OneSixLauncher.java
+++ b/libraries/launcher/org/multimc/impl/OneSixLauncher.java
@@ -58,10 +58,10 @@ public final class OneSixLauncher implements Launcher {
public OneSixLauncher(ParamBucket params) {
classLoader = ClassLoader.getSystemClassLoader();
- mcParams = params.allSafe("param", Collections.emptyList());
+ mcParams = params.allSafe("param", Collections.<String>emptyList());
mainClass = params.firstSafe("mainClass", "net.minecraft.client.Minecraft");
appletClass = params.firstSafe("appletClass", "net.minecraft.client.MinecraftApplet");
- traits = params.allSafe("traits", Collections.emptyList());
+ traits = params.allSafe("traits", Collections.<String>emptyList());
userName = params.first("userName");
sessionId = params.first("sessionId");
diff --git a/libraries/launcher/org/multimc/utils/ParamBucket.java b/libraries/launcher/org/multimc/utils/ParamBucket.java
index 26ff8eef..5dbb8775 100644
--- a/libraries/launcher/org/multimc/utils/ParamBucket.java
+++ b/libraries/launcher/org/multimc/utils/ParamBucket.java
@@ -28,8 +28,15 @@ public final class ParamBucket {
private final Map<String, List<String>> paramsMap = new HashMap<>();
public void add(String key, String value) {
- paramsMap.computeIfAbsent(key, k -> new ArrayList<>())
- .add(value);
+ List<String> params = paramsMap.get(key);
+
+ if (params == null) {
+ params = new ArrayList<>();
+
+ paramsMap.put(key, params);
+ }
+
+ params.add(value);
}
public List<String> all(String key) throws ParameterNotFoundException {