using ModpackUpdater.Apps.Manager.Api; using ModpackUpdater.Apps.Manager.Api.Plugins.Params; using ModpackUpdater.Apps.Manager.LangRes; using Pilz.Features; using Pilz.UI.Symbols; namespace ModpackUpdater.Apps.Manager.Features.Tools; internal class UpdatesCollectorFeature : PluginFunction, IPluginFeatureProvider { public static UpdatesCollectorFeature Instance { get; } = new(); public UpdatesCollectorFeature() : base(FeatureTypes.Tools, "origin.updatescollector", FeatureNamesLangRes.UpdatesCollectorFeature) { Icon = AppGlobals.Symbols.GetImage(AppSymbols.search, SymbolSize.Small); } protected override async Task ExecuteFunctionAsync(PluginFunctionParameter? @params) { if (@params is not MainApiParameters p || p.Api.Model.CurrentWorkspace?.InstallInfos is null) return null; await SharedFunctions.CollectUpdates(p.Api, [.. p.Api.Model.CurrentWorkspace.InstallInfos.Actions]); return null; } }