private async Task UnregisterPackage(MCVersion v, string gameDir, bool reRegisterMode)
{
foreach (var pkg in new PackageManager().FindPackages(MINECRAFT_PACKAGE_FAMILY))
{
string location = GetPackagePath(pkg);
if (location == "" || location == gameDir)
{
if (location == gameDir && reRegisterMode)
{
System.Diagnostics.Debug.WriteLine("Skipping package removal - same path: " + pkg.Id.FullName + " " + location);
return;
}
System.Diagnostics.Debug.WriteLine("Removing package: " + pkg.Id.FullName);
ViewModels.LauncherModel.Default.DeploymentPackageName = pkg.Id.FullName;
ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.isRemovingPackage;
if (!pkg.IsDevelopmentMode)
{
await DeploymentProgressWrapper(v, new PackageManager().RemovePackageAsync(pkg.Id.FullName, RemovalOptions.PreserveApplicationData));
}
else
{
System.Diagnostics.Debug.WriteLine("Package is in development mode");
await DeploymentProgressWrapper(v, new PackageManager().RemovePackageAsync(pkg.Id.FullName, RemovalOptions.PreserveApplicationData));
}
System.Diagnostics.Debug.WriteLine("Removal of package done: " + pkg.Id.FullName);
ViewModels.LauncherModel.Default.DeploymentPackageName = "";
ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.None;
}
}
}
private async Task ReRegisterPackage(MCVersion v, string gameDir)