public Spawnset DownloadSpawnset(string fileName)
        {
            string url = UrlUtils.ApiGetSpawnset(fileName);

            try
            {
                Spawnset spawnset;

                using (TimeoutWebClient client = new TimeoutWebClient(Timeout))
                    using (Stream stream = new MemoryStream(client.DownloadData(url)))
                        if (!Spawnset.TryParse(stream, out spawnset))
                        {
                            App.Instance.ShowError("Error parsing file", "Could not parse file.");
                        }

                return(spawnset);
            }
            catch (WebException ex)
            {
                App.Instance.ShowError("Error downloading file", $"Could not connect to '{url}'.", ex);

                return(null);
            }
            catch (Exception ex)
            {
                App.Instance.ShowError("Unexpected error", "An unexpected error occurred.", ex);

                return(null);
            }
        }
Esempio n. 2
0
        private void SurvivalOpen_Click(object sender, RoutedEventArgs e)
        {
            SpawnsetHandler.Instance.ProceedWithUnsavedChanges();

            if (!UserHandler.Instance.settings.SurvivalFileExists)
            {
                App.Instance.ShowError("Survival file does not exist", "Please make sure to correct the survival file location in the Options > Settings menu.");
                return;
            }

            if (!Spawnset.TryParse(new FileStream(UserHandler.Instance.settings.SurvivalFileLocation, FileMode.Open, FileAccess.Read), out SpawnsetHandler.Instance.spawnset))
            {
                App.Instance.ShowError("Could not parse file", "Failed to parse the 'survival' file.");
                return;
            }

            App.Instance.MainWindow.SpawnsetSpawns.UpdateSpawnset();
            App.Instance.MainWindow.SpawnsetArena.UpdateSpawnset();

            SpawnsetHandler.Instance.UpdateSpawnsetState("(survival)", UserHandler.Instance.settings.SurvivalFileLocation);
        }
Esempio n. 3
0
        private void FileOpen_Click(object sender, RoutedEventArgs e)
        {
            SpawnsetHandler.Instance.ProceedWithUnsavedChanges();

            OpenFileDialog dialog = new OpenFileDialog();
            bool?          result = dialog.ShowDialog();

            if (result.HasValue && result.Value)
            {
                if (!Spawnset.TryParse(new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read), out SpawnsetHandler.Instance.spawnset))
                {
                    App.Instance.ShowError("Could not parse file", "Please open a valid Devil Daggers V3 spawnset file.");
                    return;
                }

                App.Instance.MainWindow.SpawnsetSpawns.UpdateSpawnset();
                App.Instance.MainWindow.SpawnsetArena.UpdateSpawnset();

                SpawnsetHandler.Instance.UpdateSpawnsetState(Path.GetFileName(dialog.FileName), dialog.FileName);
            }
        }
Esempio n. 4
0
        private string CalculateCurrentSurvivalHash()
        {
            try
            {
                using (FileStream fs = new FileStream(Path.Combine(Path.GetDirectoryName(Process.MainModule.FileName), "dd", "survival"), FileMode.Open, FileAccess.Read))
                {
                    if (Spawnset.TryParse(fs, out Spawnset spawnset))
                    {
                        return(spawnset.GetHashString());
                    }

                    Logging.Log.Error("Failed to calculate spawnset hash because the survival file could not be parsed.");
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                Logging.Log.Error("Failed to calculate spawnset hash.", ex);

                return(string.Empty);
            }
        }