Beispiel #1
0
        static void Watcher_PluginsChanged(object sender, PluginsChangedEventArgs <IHotSwapInvoke> e)
        {
            var latest = Latest(e.AvailablePlugins);

            lock (VersionLock)
            {
                if (latest.Version() > current.Version())
                {
                    Upgrade(current, latest);
                }


                Logger.LogLine("New version:");
                Logger.LogLine(current.Version().ToString());
            }
        }
Beispiel #2
0
        public HotSwap()
        {
            Directory.CreateDirectory(modDirectory);

            Logger.LogLine("Watching directory " + modDirectory + " for changes," +
                           "press esc to exit");

            IPluginWatcher <IHotSwapInvoke> watcher = new PluginWatcher <IHotSwapInvoke>(modDirectory);

            watcher.PluginsChanged += Watcher_PluginsChanged;

            lock (VersionLock)
            {
                try
                {
                    current = Latest(watcher.CurrentlyAvailable);

                    Logger.LogLine("\r\nInitial startup\r\nLatest version:");
                    Logger.LogLine(current.Version().ToString());

                    // Here we set some state that should be maintained between versions
                    current.OnHotSwapInvoke();
                }
                catch (Exception ex)
                {
                    Logger.LogLine(ex.Message);
                }
            }
        }