Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }