private void RemoveButton_Click(object sender, EventArgs e) { foreach (Map m in InstalledMapsBox.CheckedItems) { try { Directory.Delete($"{m_MordhauPath}{m.folderName}", true); Log($"Successfully deleted {m.name}"); } catch (Exception ex) { Log($"Error while deleting {m.name}: {ex.Message}\n{ex.StackTrace}"); } try { foreach (string f in Directory.GetFiles(m_MordhauPath, $@"{m.folderName}.info.txt", SearchOption.AllDirectories)) { File.Delete(f); } } catch (Exception ex) { Log($"Error while deleting {m.name}: {ex.Message}\n{ex.StackTrace}"); } } for (var i = 0; i < InstalledMapsBox.Items.Count; i++) { InstalledMapsBox.SetItemChecked(i, false); } RemoveButton.Enabled = false; UpdateInstalledMaps(); }
private void SelectAllToolStripMenuItem1OnClick(object sender, EventArgs e) { for (var i = 0; i < InstalledMapsBox.Items.Count; i++) { InstalledMapsBox.SetItemChecked(i, true); } RemoveButton.Enabled = true; }
private async Task CheckContents() { try { Map.maps = new List <Map>(); Log("Getting all contents"); Log("Deleting old zip"); // Delete zip if it already exists, though it shouldn't. if (File.Exists(s_InfoFilesZip)) { File.Delete(s_InfoFilesZip); } Log("Downloading file"); using (var wc = new WebClient()) { wc.DownloadFile( @"https://github.com/MordhauMappingModding/InfoFiles/archive/master.zip", s_InfoFilesZip); } Log("Clearing existing info files"); // Clear existing info files to prevent conflicts or old files getting stuck on file if (Directory.Exists(s_InfoFiles)) { Directory.Delete(s_InfoFiles, true); } Log("Creating info file directory"); Directory.CreateDirectory(s_InfoFiles); Log("Extracting Info Files"); ZipFile.ExtractToDirectory(s_InfoFilesZip, s_InfoFiles); Log("Deleting Info Zip"); File.Delete(s_InfoFilesZip); Log("Checking resulting files"); foreach (string s in Directory.GetFiles(s_InfoFiles + @"InfoFiles-master\")) { var m = new Map(); // Open the file, get it into a string, and split it on newlines try { using (var reader = new StreamReader(s)) { string content = reader.ReadToEnd().Replace("\r\n", "\n"); // So we can split on it string[] lines = content.Split('\n'); // Could have done this with ReadLine but already had this m.name = lines[MapVars.name]; m.folderName = lines[MapVars.folderName]; m.description = lines[MapVars.description]; m.authors = lines[MapVars.authors]; m.version = lines[MapVars.version]; m.releaseDate = DateTime.ParseExact(lines[MapVars.releaseDate], "dd/MM/yyyy", CultureInfo.InvariantCulture); m.fileSize = lines[MapVars.fileSize]; if (lines.Length > MapVars.suggestedPlayers) { m.suggestedPlayers = lines[MapVars.suggestedPlayers]; } if (lines.Length > MapVars.thumbnailURL) { m.thumbnailURL = lines[MapVars.thumbnailURL]; } Map.maps.Add(m); foreach (Map y in Map.installed.Where(z => z.folderName.Equals(m.folderName) && !z.version.Equals(m.version) && !z.needsUpdate)) { y.needsUpdate = true; y.name = $"[OUTDATED] {y.name}"; InstalledMapsBox.Refresh(); } } } catch (Exception e) { Log($"Error in info file: {s}; {e.Message}"); } } Log("Updating available maps"); UpdateAvailableMaps(); Update(); Log("Ready"); } catch (Exception e) { Log(e.Message); Log(e.StackTrace); Log("Error while updating maps. File -> Refresh to try again"); } }