private static IEnumerable <IParsedPluginPack> GetAllPacks(string folderLocation) { // Check all folders foreach (string pluginFolder in Directory.GetDirectories(folderLocation)) { // Find the CustomBatteriesPack.txt file string pluginDataFilePath = Path.Combine(pluginFolder, PluginFileName); string plugingFolderName = new DirectoryInfo(Path.GetDirectoryName(pluginDataFilePath)).Name; if (!File.Exists(pluginDataFilePath)) { QuickLogger.Warning($"Plugin packs folder '{plugingFolderName}' did not contain a file named '{PluginFileName}'"); continue; } QuickLogger.Info($"Reading plugin pack '{plugingFolderName}'"); string text = File.ReadAllText(pluginDataFilePath, Encoding.UTF8); var plugin = new EmTextPluginPack(); bool readCorrectly = plugin.FromString(text); if (!readCorrectly) { QuickLogger.Warning($"Pack file in '{pluginFolder}' contained errors and could not be read"); continue; } plugin.PluginPackFolder = pluginFolder; yield return(plugin); } }
private static EmTextPluginPack LoadFromFile(string file) { string text = File.ReadAllText(file, Encoding.UTF8); var pluginPack = new EmTextPluginPack(); try { bool readCorrectly = pluginPack.FromString(text); if (readCorrectly) { return(pluginPack); } return(null); } catch (Exception ex) { QuickLogger.Error($"Error reading file '{file}'", ex); return(null); } }