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); } }
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); }
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); } }
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); } }