Ejemplo n.º 1
0
        public void Init(object gameInstance)
        {
            Settings.Instance.Load();
            if (Settings.Instance.AutomaticPluginsSearch)
            {
                Utilities.Log.WriteLineAndConsole($"Search plugins in the root directory: {Environment.CurrentDirectory}");
                DirectoryInfo directory = new DirectoryInfo(Environment.CurrentDirectory);
                var           files     = directory.GetFiles("*.dll");
                string        filename;
                foreach (var file in files)
                {
                    filename = Path.GetFileNameWithoutExtension(file.Name);
                    if (!Settings.Instance.SkipList.Exists((e) => string.Equals(e, filename, StringComparison.InvariantCultureIgnoreCase)) &&
                        !Settings.Instance.WatchList.Exists((e) => string.Equals(e.Name, filename, StringComparison.InvariantCultureIgnoreCase)))
                    {
                        if (ExtendedPlugins.LibraryHasInterface <IPlugin>(filename))
                        {
                            Utilities.Log.WriteLineAndConsole($"Add assembly in WatchList: {filename}");
                            Settings.Instance.WatchList.Add(new Settings.Library(filename));
                        }
                        else
                        {
                            Utilities.Log.WriteLineAndConsole($"Add assembly in SkipList: {filename}");
                            Settings.Instance.SkipList.Add(filename);
                        }
                    }
                }
            }

            ExtendedPlugins.Register();
            ExtendedPlugins.CheckPluginsUpdates();
            ExtendedPlugins.Init(gameInstance);
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            Settings.Instance.Save();

            ExtendedPlugins.Unload();
        }
Ejemplo n.º 3
0
 public void Update() => ExtendedPlugins.Update();