Exemplo n.º 1
0
        /// <summary>
        /// 获取Forge下载
        /// </summary>
        /// <param name="downloadSource">下载源</param>
        /// <param name="forge">Forge信息</param>
        /// <returns></returns>
        public static DownloadTask GetForgeDownloadURL(DownloadSource downloadSource, APIModules.JWForge forge, MCVersion mc)
        {
            string local  = PathManager.TempDirectory + "\\forge-" + forge.Build + ".jar";
            string Source = BMCLUrl;

            switch (downloadSource)
            {
            case DownloadSource.Mojang:
                Source = BMCLUrl;
                break;

            case DownloadSource.BMCLAPI:
                Source = BMCLUrl;
                break;

            case DownloadSource.MCBBS:
                Source = MCBBSUrl;
                break;
            }

            Source += $"maven/net/minecraftforge/forge/{mc.ID}-{forge.Version}" +
                      $"/forge-{mc.ID}-{forge.Version}-installer.jar";

            DownloadTask dt = new(App.GetResourceString("String.NewDownloadTaskWindow.Core.Forge"),
                                  Source, local);

            dt.Todo = new Func <ProgressCallback, CancellationToken, Exception>((callback, cancelToken) =>
            {
                try
                {
                    IInstaller installer = new ForgeInstaller(local, new CommonInstallOptions()
                    {
                        GameRootPath   = App.Handler.GameRootPath,
                        IsClient       = true,
                        DownloadSource = App.Config.MainConfig.Download.DownloadSource,
                        Java           = App.Handler.Java
                    });
                    installer.BeginInstall(callback, cancelToken).Wait();
                    return(null);
                }
                catch (Exception ex)
                { return(ex); }
            });
            return(dt);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取Forge下载
        /// </summary>
        /// <param name="downloadSource">下载源</param>
        /// <param name="mcversion">Mc版本</param>
        /// <param name="forgeversion">Forge版本</param>
        /// <returns></returns>
        public static DownloadTask GetForgeDownloadURL(DownloadSource downloadSource, string mcversion, string forgeversion)
        {
            string local     = App.Handler.GameRootPath + "\\forge-" + mcversion + "-" + forgeversion + "-installer.jar";
            string forgePath = string.Format("maven/net/minecraftforge/forge/{0}-{1}/forge-{0}-{1}-installer.jar", mcversion, forgeversion);
            string Source    = ForgeUrl;

            switch (downloadSource)
            {
            case DownloadSource.Mojang:
                Source = ForgeUrl;
                break;

            case DownloadSource.BMCLAPI:
                Source = BMCLUrl;
                break;

            case DownloadSource.MCBBS:
                Source = MCBBSUrl;
                break;
            }

            Source += forgePath;

            DownloadTask dt = new DownloadTask(App.GetResourceString("String.NewDownloadTaskWindow.Core.Forge"),
                                               Source, local);

            dt.Todo = new Func <ProgressCallback, CancellationToken, Exception>((callback, cancelToken) =>
            {
                try
                {
                    IInstaller installer = new ForgeInstaller(local, new CommonInstallOptions()
                    {
                        GameRootPath   = App.Handler.GameRootPath,
                        IsClient       = true,
                        DownloadSource = App.Config.MainConfig.Download.DownloadSource,
                        Java           = App.Handler.Java
                    });
                    installer.BeginInstall(callback, cancelToken).Wait();
                    return(null);
                }
                catch (Exception ex)
                { return(ex); }
            });
            return(dt);
        }