|
@@ -401,48 +401,40 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
|
|
|
if (FilteredVersion is null)
|
|
|
return TaskStatus.Faulted;
|
|
|
|
|
|
+ var parameters = new DownloaderParameters();
|
|
|
+ parameters.Action.DownloadingFileName = value => DownloadingFileName = value;
|
|
|
+ parameters.Action.TasksStatus = value => TasksStatusLine = value;
|
|
|
+ parameters.Action.IsControlsEnabled = value => IsDownloaderTabControlsEnabled = value;
|
|
|
+ parameters.Action.SetProgress = value => Progress = value;
|
|
|
+
|
|
|
+ parameters.Parameter.DownloadJava = DownloadJava;
|
|
|
+
|
|
|
if (FilteredVersion.Type == "modpack")
|
|
|
{
|
|
|
_selectedModpack = _modpackVersions.Where(m => m.Name == FilteredVersion.Id).FirstOrDefault();
|
|
|
if (_selectedModpack is null)
|
|
|
return TaskStatus.Faulted;
|
|
|
|
|
|
- if (FilteredVersions.Where(x => x.Id == _selectedModpack.Version).FirstOrDefault() is null)
|
|
|
+
|
|
|
+ var selectedVersion = FilteredVersions.Where(x => x.Id == _selectedModpack.Version).FirstOrDefault();
|
|
|
+ if (selectedVersion is null)
|
|
|
return TaskStatus.Faulted;
|
|
|
|
|
|
- await Task.Run(async () => await Downloader.StartDownloadModpack(
|
|
|
- value => DownloadingFileName = value,
|
|
|
- value => TasksStatusLine = value,
|
|
|
- value => IsDownloaderTabControlsEnabled = value,
|
|
|
- value => Progress = value,
|
|
|
- FilteredVersions,
|
|
|
- _selectedModpack,
|
|
|
- _tokenSource.Token,
|
|
|
- DownloadJava,
|
|
|
- InstallFabric = _selectedModpack.Fabric,
|
|
|
- InstallForge = _selectedModpack.Forge,
|
|
|
- InstallOptifine = _selectedModpack.Optifine,
|
|
|
- InstallForgeOptifine = _selectedModpack.ForgeOptifine));
|
|
|
+ parameters.Data.SelectedVersion = selectedVersion;
|
|
|
+ parameters.Data.SelectedModpack = _selectedModpack;
|
|
|
+
|
|
|
+ await new Downloader(parameters).DownloadClient(_tokenSource.Token);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- _logger.Debug("Downloading {0}.json", FilteredVersion.Id);
|
|
|
- DownloadingFileName = $"{FilteredVersion.Id}.json";
|
|
|
- var versionJson = await Downloader.DownloadAndDeserializeJsonData<Entity.Version.Version>(FilteredVersion.Url, Settings.minecraftForlderPath + "versions/" + FilteredVersion.Id + "/", FilteredVersion.Id + ".json");
|
|
|
-
|
|
|
- if (versionJson is not null)
|
|
|
- await Downloader.StartDownload(
|
|
|
- value => DownloadingFileName = value,
|
|
|
- value => TasksStatusLine = value,
|
|
|
- value => IsDownloaderTabControlsEnabled = value,
|
|
|
- value => Progress = value,
|
|
|
- versionJson,
|
|
|
- _tokenSource.Token,
|
|
|
- DownloadJava,
|
|
|
- InstallForge,
|
|
|
- InstallOptifine,
|
|
|
- InstallForgeOptifine,
|
|
|
- InstallFabric);
|
|
|
+ parameters.Data.SelectedVersion = FilteredVersion;
|
|
|
+
|
|
|
+ parameters.Parameter.InstallForge = InstallForge;
|
|
|
+ parameters.Parameter.InstallOptifine = InstallOptifine;
|
|
|
+ parameters.Parameter.InstallForgeOptifine = InstallForgeOptifine;
|
|
|
+ parameters.Parameter.InstallFabric = InstallFabric;
|
|
|
+
|
|
|
+ await new Downloader(parameters).DownloadClient(_tokenSource.Token);
|
|
|
}
|
|
|
|
|
|
SearchGameFolderForVersions();
|