MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / LauncherFactory

Class LauncherFactory

libraries/launcher/org/polymc/LauncherFactory.java:44–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42import java.util.Map;
43
44public final class LauncherFactory {
45
46 private static final LauncherFactory INSTANCE = new LauncherFactory();
47
48 private final Map<String, LauncherProvider> launcherRegistry = new HashMap<>();
49
50 private LauncherFactory() {
51 launcherRegistry.put("onesix", new LauncherProvider() {
52 @Override
53 public Launcher provide(Parameters parameters) {
54 return new OneSixLauncher(parameters);
55 }
56 });
57 }
58
59 public Launcher createLauncher(Parameters parameters) {
60 String name = parameters.first("launcher");
61
62 LauncherProvider launcherProvider = launcherRegistry.get(name);
63
64 if (launcherProvider == null)
65 throw new IllegalArgumentException("Invalid launcher type: " + name);
66
67 return launcherProvider.provide(parameters);
68 }
69
70 public static LauncherFactory getInstance() {
71 return INSTANCE;
72 }
73
74 public interface LauncherProvider {
75
76 Launcher provide(Parameters parameters);
77
78 }
79
80}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected