add maintenance mode & improve & bugfixing

This commit is contained in:
2024-06-20 06:55:25 +02:00
parent c31cc3aa20
commit fc27fc1c34
9 changed files with 75 additions and 44 deletions

View File

@@ -37,32 +37,38 @@ public class ModpackInstaller(ModpackConfig updateConfig, string localPath)
return InstallInfos.Parse(content);
}
public Task<UpdateCheckResult> Check()
{
return Check(Side.Client, true);
}
public async Task<UpdateCheckResult> Check(Side side, bool allowUpdaterAfterInstall)
public async Task<UpdateCheckResult> Check(UpdateCheckOptions options)
{
var result = new UpdateCheckResult();
var hasConfig = ModpackInfo.HasModpackInfo(localPath);
InstallInfos installInfos = null;
UpdateInfos updateInfos = null;
if (updateConfig.Maintenance && !options.IgnoreMaintenance)
{
result.IsInMaintenance = true;
return result;
}
if (!hasConfig)
{
installInfos = await DownloadInstallInfos();
if (installInfos is not null && installInfos.Actions.Count != 0)
{
result.Actions.AddRange(installInfos.Actions);
result.LatestVersion = installInfos.Version;
var actions = installInfos.Actions.Where(n => n.Side.IsSide(options.Side));
if (actions.Any())
{
result.Actions.AddRange(installInfos.Actions);
result.LatestVersion = installInfos.Version;
}
}
else
if (result.Actions.Count == 0)
result.HasError = true;
}
if (allowUpdaterAfterInstall)
if (options.AllowUpdaterAfterInstall)
{
updateInfos = await DownloadUpdateInfos();
var modpackInfo = ModpackInfo.HasModpackInfo(localPath) ? ModpackInfo.Load(localPath) : new();
@@ -83,7 +89,7 @@ public class ModpackInstaller(ModpackConfig updateConfig, string localPath)
foreach (var action in checkingVersion.Actions)
{
if (!result.Actions.Any(n => n.DestPath == action.DestPath))
if (action.Side.IsSide(options.Side) && !result.Actions.Any(n => n.DestPath == action.DestPath))
actionsToAdd.Add(action);
}