public static void AddActionInstruction(StartupAction action) { if (Actions.Any(x => x.GetType() == action.GetType())) { return; } Actions.Add(action); }
internal static void RunActions() { string[] lines = File.ReadAllLines(PluginPaths.InternalStartupInstructionPath); List <(string key, string[] content)> instructions = lines .Select( x => (x.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0], x.Split( new[] { ' ' }, StringSplitOptions .RemoveEmptyEntries ).Skip(1).ToArray()) ).ToList(); foreach ((string key, string[] content)instruction in instructions) { StartupAction action = Actions.FirstOrDefault(x => x.ActionName == instruction.key); action?.RunAction(instruction.content); } File.Delete(PluginPaths.InternalStartupInstructionPath); }