/// <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); }
/// <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); }