Search in sources :

Example 1 with MinotarFaceImageStore

use of net.technicpack.launchercore.image.face.MinotarFaceImageStore in project LauncherV3 by TechnicPack.

the class LauncherMain method startLauncher.

private static void startLauncher(final TechnicSettings settings, StartupParameters startupParameters, final LauncherDirectories directories, ResourceLoader resources) {
    UIManager.put("ComboBox.disabledBackground", LauncherFrame.COLOR_FORMELEMENT_INTERNAL);
    UIManager.put("ComboBox.disabledForeground", LauncherFrame.COLOR_GREY_TEXT);
    System.setProperty("xr.load.xml-reader", "org.ccil.cowan.tagsoup.Parser");
    // Remove all log files older than a week
    new Thread(() -> {
        Iterator<File> files = FileUtils.iterateFiles(new File(directories.getLauncherDirectory(), "logs"), new String[] { "log" }, false);
        while (files.hasNext()) {
            File logFile = files.next();
            if (logFile.exists() && (new DateTime(logFile.lastModified())).isBefore(DateTime.now().minusWeeks(1))) {
                logFile.delete();
            }
        }
    }).start();
    final SplashScreen splash = new SplashScreen(resources.getImage("launch_splash.png"), 0);
    Color bg = LauncherFrame.COLOR_FORMELEMENT_INTERNAL;
    splash.getContentPane().setBackground(new Color(bg.getRed(), bg.getGreen(), bg.getBlue(), 255));
    splash.pack();
    splash.setLocationRelativeTo(null);
    splash.setVisible(true);
    JavaVersionRepository javaVersions = new JavaVersionRepository();
    (new InstalledJavaSource()).enumerateVersions(javaVersions);
    FileJavaSource javaVersionFile = FileJavaSource.load(new File(settings.getTechnicRoot(), "javaVersions.json"));
    javaVersionFile.enumerateVersions(javaVersions);
    javaVersions.selectVersion(settings.getJavaVersion(), settings.getJavaBitness());
    TechnicUserStore users = TechnicUserStore.load(new File(directories.getLauncherDirectory(), "users.json"));
    MicrosoftAuthenticator microsoftAuthenticator = new MicrosoftAuthenticator(new File(directories.getLauncherDirectory(), "oauth"));
    MojangAuthenticator mojangAuthenticator = new MojangAuthenticator(users.getClientToken());
    UserModel userModel = new UserModel(users, mojangAuthenticator, microsoftAuthenticator);
    IModpackResourceType iconType = new IconResourceType();
    IModpackResourceType logoType = new LogoResourceType();
    IModpackResourceType backgroundType = new BackgroundResourceType();
    PackResourceMapper iconMapper = new PackResourceMapper(directories, resources.getImage("icon.png"), iconType);
    ImageRepository<ModpackModel> iconRepo = new ImageRepository<>(iconMapper, new PackImageStore(iconType));
    ImageRepository<ModpackModel> logoRepo = new ImageRepository<>(new PackResourceMapper(directories, resources.getImage("modpack/ModImageFiller.png"), logoType), new PackImageStore(logoType));
    ImageRepository<ModpackModel> backgroundRepo = new ImageRepository<>(new PackResourceMapper(directories, null, backgroundType), new PackImageStore(backgroundType));
    ImageRepository<IUserType> skinRepo = new ImageRepository<>(new TechnicFaceMapper(directories, resources), new MinotarFaceImageStore("https://minotar.net/"));
    ImageRepository<AuthorshipInfo> avatarRepo = new ImageRepository<>(new TechnicAvatarMapper(directories, resources), new WebAvatarImageStore());
    HttpSolderApi httpSolder = new HttpSolderApi(settings.getClientId());
    ISolderApi solder = new CachedSolderApi(directories, httpSolder, 60 * 60);
    HttpPlatformApi httpPlatform = new HttpPlatformApi("https://api.technicpack.net/", buildNumber.getBuildNumber());
    IPlatformApi platform = new ModpackCachePlatformApi(httpPlatform, 60 * 60, directories);
    IPlatformSearchApi platformSearch = new HttpPlatformSearchApi("https://api.technicpack.net/", buildNumber.getBuildNumber());
    IInstalledPackRepository packStore = TechnicInstalledPackStore.load(new File(directories.getLauncherDirectory(), "installedPacks"));
    IAuthoritativePackSource packInfoRepository = new PlatformPackInfoRepository(platform, solder);
    ArrayList<IMigrator> migrators = new ArrayList<IMigrator>(1);
    migrators.add(new InitialV3Migrator(platform));
    migrators.add(new ResetJvmArgsIfDefaultString());
    SettingsFactory.migrateSettings(settings, packStore, directories, users, migrators);
    PackLoader packList = new PackLoader(directories, packStore, packInfoRepository);
    ModpackSelector selector = new ModpackSelector(resources, packList, new SolderPackSource("https://solder.technicpack.net/api/", solder), solder, platform, platformSearch, iconRepo);
    selector.setBorder(BorderFactory.createEmptyBorder());
    userModel.addAuthListener(selector);
    resources.registerResource(selector);
    DiscoverInfoPanel discoverInfoPanel = new DiscoverInfoPanel(resources, startupParameters.getDiscoverUrl(), platform, directories, selector);
    MinecraftLauncher launcher = new MinecraftLauncher(platform, directories, userModel, javaVersions, buildNumber);
    ModpackInstaller modpackInstaller = new ModpackInstaller(platform, settings.getClientId());
    Installer installer = new Installer(startupParameters, directories, modpackInstaller, launcher, settings, iconMapper);
    IDiscordApi discordApi = new HttpDiscordApi("https://discord.com/api/");
    discordApi = new CacheDiscordApi(discordApi, 600, 60);
    final LauncherFrame frame = new LauncherFrame(resources, skinRepo, userModel, settings, selector, iconRepo, logoRepo, backgroundRepo, installer, avatarRepo, platform, directories, packStore, startupParameters, discoverInfoPanel, javaVersions, javaVersionFile, buildNumber, discordApi);
    userModel.addAuthListener(frame);
    ActionListener listener = e -> {
        splash.dispose();
        if (settings.getLaunchToModpacks())
            frame.selectTab("modpacks");
    };
    discoverInfoPanel.setLoadListener(listener);
    LoginFrame login = new LoginFrame(resources, settings, userModel, skinRepo);
    userModel.addAuthListener(login);
    userModel.addAuthListener(user -> {
        if (user == null)
            splash.dispose();
    });
    userModel.startupAuth();
    Utils.sendTracking("runLauncher", "run", buildNumber.getBuildNumber(), settings.getClientId());
}
Also used : PackImageStore(net.technicpack.launchercore.modpacks.resources.PackImageStore) CommandLineBuildNumber(net.technicpack.launcher.autoupdate.CommandLineBuildNumber) IModpackResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.IModpackResourceType) Utils(net.technicpack.utilslib.Utils) SSLContext(javax.net.ssl.SSLContext) IPlatformApi(net.technicpack.platform.IPlatformApi) JavaVersionRepository(net.technicpack.launchercore.launch.java.JavaVersionRepository) IconResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.IconResourceType) LoggerOutputStream(net.technicpack.ui.components.LoggerOutputStream) JavaUtils(net.technicpack.utilslib.JavaUtils) HttpPlatformApi(net.technicpack.platform.http.HttpPlatformApi) KeyStoreException(java.security.KeyStoreException) MinecraftLauncher(net.technicpack.minecraftcore.launch.MinecraftLauncher) IInstalledPackRepository(net.technicpack.launchercore.modpacks.sources.IInstalledPackRepository) InetAddress(java.net.InetAddress) ResetJvmArgsIfDefaultString(net.technicpack.launcher.settings.migration.ResetJvmArgsIfDefaultString) IDiscordApi(net.technicpack.discord.IDiscordApi) HttpPlatformSearchApi(net.technicpack.platform.http.HttpPlatformSearchApi) WebAvatarImageStore(net.technicpack.launchercore.image.face.WebAvatarImageStore) InstallerFrame(net.technicpack.launcher.ui.InstallerFrame) ConsoleFrame(net.technicpack.ui.components.ConsoleFrame) Path(java.nio.file.Path) RotatingFileHandler(net.technicpack.launchercore.logging.RotatingFileHandler) PackResourceMapper(net.technicpack.launchercore.modpacks.resources.PackResourceMapper) SettingsFactory(net.technicpack.launcher.settings.SettingsFactory) ISolderApi(net.technicpack.solder.ISolderApi) TrustManagerFactory(javax.net.ssl.TrustManagerFactory) CacheDiscordApi(net.technicpack.discord.CacheDiscordApi) ConsoleHandler(net.technicpack.ui.components.ConsoleHandler) KeyStore(java.security.KeyStore) Relauncher(net.technicpack.autoupdate.Relauncher) TechnicSettings(net.technicpack.launcher.settings.TechnicSettings) InitialV3Migrator(net.technicpack.launcher.settings.migration.InitialV3Migrator) HttpSolderApi(net.technicpack.solder.http.HttpSolderApi) KeyManagementException(java.security.KeyManagementException) Logger(java.util.logging.Logger) BuildLogFormatter(net.technicpack.launchercore.logging.BuildLogFormatter) Collectors(java.util.stream.Collectors) BackgroundResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.BackgroundResourceType) Certificate(java.security.cert.Certificate) IMigrator(net.technicpack.launcher.settings.migration.IMigrator) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) Installer(net.technicpack.launcher.launch.Installer) SplashScreen(net.technicpack.ui.controls.installation.SplashScreen) FileJavaSource(net.technicpack.launchercore.launch.java.source.FileJavaSource) Handler(java.util.logging.Handler) HttpDiscordApi(net.technicpack.discord.HttpDiscordApi) ModpackSelector(net.technicpack.launcher.ui.components.modpacks.ModpackSelector) UserModel(net.technicpack.launchercore.auth.UserModel) IAuthoritativePackSource(net.technicpack.launchercore.modpacks.sources.IAuthoritativePackSource) MinotarFaceImageStore(net.technicpack.launchercore.image.face.MinotarFaceImageStore) java.util(java.util) ActionListener(java.awt.event.ActionListener) MicrosoftAuthenticator(net.technicpack.minecraftcore.microsoft.auth.MicrosoftAuthenticator) ResourceLoader(net.technicpack.ui.lang.ResourceLoader) StartupParameters(net.technicpack.launcher.settings.StartupParameters) Level(java.util.logging.Level) IUserStore(net.technicpack.launchercore.auth.IUserStore) LauncherFrame(net.technicpack.launcher.ui.LauncherFrame) DownloadException(net.technicpack.launchercore.exception.DownloadException) IPlatformSearchApi(net.technicpack.platform.IPlatformSearchApi) HttpUpdateStream(net.technicpack.autoupdate.http.HttpUpdateStream) IUserType(net.technicpack.launchercore.auth.IUserType) DiscoverInfoPanel(net.technicpack.launcher.ui.components.discover.DiscoverInfoPanel) ModpackCachePlatformApi(net.technicpack.platform.cache.ModpackCachePlatformApi) PackLoader(net.technicpack.launchercore.modpacks.PackLoader) AuthorshipInfo(net.technicpack.platform.io.AuthorshipInfo) net.technicpack.launcher.io(net.technicpack.launcher.io) LogoResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.LogoResourceType) Console(net.technicpack.ui.components.Console) HttpsURLConnection(javax.net.ssl.HttpsURLConnection) CachedSolderApi(net.technicpack.solder.cache.CachedSolderApi) InstalledJavaSource(net.technicpack.launchercore.launch.java.source.InstalledJavaSource) ModpackModel(net.technicpack.launchercore.modpacks.ModpackModel) Files(java.nio.file.Files) IBuildNumber(net.technicpack.autoupdate.IBuildNumber) TechnicRelauncher(net.technicpack.launcher.autoupdate.TechnicRelauncher) JCommander(com.beust.jcommander.JCommander) DateTime(org.joda.time.DateTime) PlatformPackInfoRepository(net.technicpack.platform.PlatformPackInfoRepository) FileUtils(org.apache.commons.io.FileUtils) CertificateException(java.security.cert.CertificateException) UnknownHostException(java.net.UnknownHostException) VersionFileBuildNumber(net.technicpack.launcher.autoupdate.VersionFileBuildNumber) MojangAuthenticator(net.technicpack.minecraftcore.mojang.auth.MojangAuthenticator) java.awt(java.awt) ModpackInstaller(net.technicpack.launchercore.install.ModpackInstaller) LoginFrame(net.technicpack.launcher.ui.LoginFrame) java.io(java.io) Paths(java.nio.file.Paths) ImageRepository(net.technicpack.launchercore.image.ImageRepository) LauncherDirectories(net.technicpack.launchercore.install.LauncherDirectories) SolderPackSource(net.technicpack.solder.SolderPackSource) TechnicConstants(net.technicpack.launchercore.TechnicConstants) OperatingSystem(net.technicpack.utilslib.OperatingSystem) javax.swing(javax.swing) DiscoverInfoPanel(net.technicpack.launcher.ui.components.discover.DiscoverInfoPanel) MinotarFaceImageStore(net.technicpack.launchercore.image.face.MinotarFaceImageStore) PackLoader(net.technicpack.launchercore.modpacks.PackLoader) HttpPlatformApi(net.technicpack.platform.http.HttpPlatformApi) ResetJvmArgsIfDefaultString(net.technicpack.launcher.settings.migration.ResetJvmArgsIfDefaultString) LogoResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.LogoResourceType) DateTime(org.joda.time.DateTime) IAuthoritativePackSource(net.technicpack.launchercore.modpacks.sources.IAuthoritativePackSource) ImageRepository(net.technicpack.launchercore.image.ImageRepository) BackgroundResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.BackgroundResourceType) PackResourceMapper(net.technicpack.launchercore.modpacks.resources.PackResourceMapper) AuthorshipInfo(net.technicpack.platform.io.AuthorshipInfo) IInstalledPackRepository(net.technicpack.launchercore.modpacks.sources.IInstalledPackRepository) CachedSolderApi(net.technicpack.solder.cache.CachedSolderApi) IMigrator(net.technicpack.launcher.settings.migration.IMigrator) LauncherFrame(net.technicpack.launcher.ui.LauncherFrame) MinecraftLauncher(net.technicpack.minecraftcore.launch.MinecraftLauncher) FileJavaSource(net.technicpack.launchercore.launch.java.source.FileJavaSource) IPlatformApi(net.technicpack.platform.IPlatformApi) IDiscordApi(net.technicpack.discord.IDiscordApi) WebAvatarImageStore(net.technicpack.launchercore.image.face.WebAvatarImageStore) ActionListener(java.awt.event.ActionListener) MicrosoftAuthenticator(net.technicpack.minecraftcore.microsoft.auth.MicrosoftAuthenticator) PackImageStore(net.technicpack.launchercore.modpacks.resources.PackImageStore) ModpackCachePlatformApi(net.technicpack.platform.cache.ModpackCachePlatformApi) HttpPlatformSearchApi(net.technicpack.platform.http.HttpPlatformSearchApi) PlatformPackInfoRepository(net.technicpack.platform.PlatformPackInfoRepository) Installer(net.technicpack.launcher.launch.Installer) ModpackInstaller(net.technicpack.launchercore.install.ModpackInstaller) MojangAuthenticator(net.technicpack.minecraftcore.mojang.auth.MojangAuthenticator) JavaVersionRepository(net.technicpack.launchercore.launch.java.JavaVersionRepository) UserModel(net.technicpack.launchercore.auth.UserModel) SolderPackSource(net.technicpack.solder.SolderPackSource) ModpackInstaller(net.technicpack.launchercore.install.ModpackInstaller) SplashScreen(net.technicpack.ui.controls.installation.SplashScreen) ISolderApi(net.technicpack.solder.ISolderApi) LoginFrame(net.technicpack.launcher.ui.LoginFrame) ModpackSelector(net.technicpack.launcher.ui.components.modpacks.ModpackSelector) HttpSolderApi(net.technicpack.solder.http.HttpSolderApi) ResetJvmArgsIfDefaultString(net.technicpack.launcher.settings.migration.ResetJvmArgsIfDefaultString) IconResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.IconResourceType) InitialV3Migrator(net.technicpack.launcher.settings.migration.InitialV3Migrator) InstalledJavaSource(net.technicpack.launchercore.launch.java.source.InstalledJavaSource) IUserType(net.technicpack.launchercore.auth.IUserType) IPlatformSearchApi(net.technicpack.platform.IPlatformSearchApi) ModpackModel(net.technicpack.launchercore.modpacks.ModpackModel) HttpDiscordApi(net.technicpack.discord.HttpDiscordApi) CacheDiscordApi(net.technicpack.discord.CacheDiscordApi) IModpackResourceType(net.technicpack.launchercore.modpacks.resources.resourcetype.IModpackResourceType)

Aggregations

JCommander (com.beust.jcommander.JCommander)1 java.awt (java.awt)1 ActionListener (java.awt.event.ActionListener)1 java.io (java.io)1 InetAddress (java.net.InetAddress)1 UnknownHostException (java.net.UnknownHostException)1 Files (java.nio.file.Files)1 Path (java.nio.file.Path)1 Paths (java.nio.file.Paths)1 KeyManagementException (java.security.KeyManagementException)1 KeyStore (java.security.KeyStore)1 KeyStoreException (java.security.KeyStoreException)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 Certificate (java.security.cert.Certificate)1 CertificateException (java.security.cert.CertificateException)1 java.util (java.util)1 Handler (java.util.logging.Handler)1 Level (java.util.logging.Level)1 Logger (java.util.logging.Logger)1 Collectors (java.util.stream.Collectors)1