public async Task AddPlugin(string settingFile, List <ZipArchiveEntry> files) { var plugin = JsonConvert.DeserializeObject <Plugin>(settingFile); plugin.Valid = true; if (LoadedPlugins.Any()) { plugin.Priority = LoadedPlugins.Max(x => x.Priority) + 1; } else { plugin.Priority = 1; } var loadeds = new List <Plugin>(LoadedPlugins); Directory.CreateDirectory($"plugins/{plugin.PluginPath}"); plugin.IsEnabled = false; foreach (var file in files) { file.ExtractToFile(Path.Combine($"plugins/{plugin.PluginPath}", file.FullName), true); } PreCompilePlugin(plugin); loadeds.Add(plugin); LoadedPlugins = loadeds; await File.WriteAllTextAsync(PluginSettingPath, JsonConvert.SerializeObject(LoadedPlugins)); }