Ejemplo n.º 1
0
        public void UpdateCheck()
        {
            try
            {
                // Check new version
                Stream stream;
                if (PluginDebug.UsesDebugData)
                {
                    var assembly = Assembly.GetExecutingAssembly();
                    stream = assembly.GetManifestResourceStream("FFXIV_ACT_Helper_Plugin.Resources.DebugPluginData.xml");
                }
                else
                {
                    using (WebClient client = new WebClient())
                    {
                        var data = Encoding.Default.GetString(client.DownloadData("https://ugabugab.github.io/ffxiv-act-helper-plugin/data/plugin_data.xml"));
                        stream = new MemoryStream(Encoding.UTF8.GetBytes(data));
                    }
                }
                XmlSerializer serializer = new XmlSerializer(typeof(PluginData));
                var           pluginData = (PluginData)serializer.Deserialize(stream);

                Version currentVersion = typeof(PluginMain).Assembly.GetName().Version;
                Version latestVersion  = new Version(pluginData.Version);

                if (currentVersion < latestVersion)
                {
                    // Show update confirming message
                    ActGlobalsExtension.RunOnACTUIThread(delegate
                    {
                        TraySlider traySlider = new TraySlider
                        {
                            ButtonLayout   = TraySlider.ButtonLayoutEnum.TwoButton,
                            ButtonSW       = { Text = "Update" },
                            ButtonSE       = { Text = "Cancel" },
                            TrayTitle      = { Text = "Plugin Update" },
                            TrayText       = { Text = Properties.Resources.MessagePluginUpdate },
                            ShowDurationMs = 30000
                        };
                        traySlider.ButtonSW.Click += delegate(object sender, EventArgs eventArgs)
                        {
                            UpdatePlugin(pluginData.Url);
                        };
                        traySlider.ShowTraySlider();
                    });
                }
            }
            catch (ThreadAbortException)
            {
                // Do nothing
            }
            catch (Exception ex)
            {
                ShowErrorMessage(ex);
            }
        }
Ejemplo n.º 2
0
 void ShowErrorMessage(Exception ex)
 {
     ActGlobalsExtension.RunOnACTUIThread(delegate
     {
         new TraySlider
         {
             ButtonLayout = TraySlider.ButtonLayoutEnum.OneButton,
             TrayTitle    = { Text = "Plugin Update Error" },
             TrayText     = { Text = string.Format(Properties.Resources.MessagePluginUpdateError, ex.Message) }
         }
         .ShowTraySlider();
     });
 }