From b5637cba632864d79847718bfc25f57ddbead7e7 Mon Sep 17 00:00:00 2001 From: Assistant Date: Wed, 18 Dec 2019 21:41:32 -0800 Subject: [PATCH] Added diagnostics options (2/3) Remove all mods button --- ModAssistant/Pages/Mods.xaml.cs | 29 ++++++++++++++--------------- ModAssistant/Pages/Options.xaml.cs | 25 +++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/ModAssistant/Pages/Mods.xaml.cs b/ModAssistant/Pages/Mods.xaml.cs index acb07d3..1e522bc 100644 --- a/ModAssistant/Pages/Mods.xaml.cs +++ b/ModAssistant/Pages/Mods.xaml.cs @@ -98,7 +98,7 @@ namespace ModAssistant.Pages MainWindow.Instance.GameVersionsBox.IsEnabled = true; } - private void CheckInstalledMods() + public void CheckInstalledMods() { GetAllMods(); List empty = new List(); @@ -578,12 +578,24 @@ namespace ModAssistant.Pages private void UninstallModFromList(Mod mod) { UninstallMod(mod.ListItem.InstalledModInfo); + mod.ListItem.IsInstalled = false; + mod.ListItem.InstalledVersion = null; + if (App.SelectInstalledMods) + { + mod.ListItem.IsSelected = false; + UnresolveDependencies(mod); + App.SavedMods.Remove(mod.name); + Properties.Settings.Default.SavedMods = String.Join(",", App.SavedMods.ToArray()); + Properties.Settings.Default.Save(); + RefreshModsList(); + } + view.Refresh(); } public void UninstallMod(Mod mod) { Mod.DownloadLink links = null; - foreach (Mod.DownloadLink link in installedMod.downloads) + foreach (Mod.DownloadLink link in mod.downloads) { if (link.type.ToLower() == "universal" || link.type.ToLower() == App.BeatSaberInstallType.ToLower()) { @@ -600,19 +612,6 @@ namespace ModAssistant.Pages if (File.Exists(Path.Combine(App.BeatSaberInstallDirectory, "IPA", "Pending", files.file))) File.Delete(Path.Combine(App.BeatSaberInstallDirectory, "IPA", "Pending", files.file)); } - - mod.ListItem.IsInstalled = false; - mod.ListItem.InstalledVersion = null; - if (App.SelectInstalledMods) - { - mod.ListItem.IsSelected = false; - UnresolveDependencies(mod); - App.SavedMods.Remove(mod.name); - Properties.Settings.Default.SavedMods = String.Join(",", App.SavedMods.ToArray()); - Properties.Settings.Default.Save(); - RefreshModsList(); - } - view.Refresh(); } private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) diff --git a/ModAssistant/Pages/Options.xaml.cs b/ModAssistant/Pages/Options.xaml.cs index 488f60f..6ecd03d 100644 --- a/ModAssistant/Pages/Options.xaml.cs +++ b/ModAssistant/Pages/Options.xaml.cs @@ -13,6 +13,8 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Globalization; +using System.IO; +using Path = System.IO.Path; namespace ModAssistant.Pages { @@ -171,9 +173,28 @@ namespace ModAssistant.Pages } MainWindow.Instance.MainText = "BSIPA Uninstalled..."; } - private void YeetModsButton_Click(object sender, RoutedEventArgs e) + private async void YeetModsButton_Click(object sender, RoutedEventArgs e) { - // + if (System.Windows.Forms.MessageBox.Show($"Are you sure you want to remove ALL mods?\nThis cannot be undone.", $"Uninstall All Mods?", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + + if (Mods.Instance.AllModsList == null) + { + MainWindow.Instance.MainText = "Getting Mod List..."; + await Task.Run(() => Mods.Instance.CheckInstalledMods()); + } + foreach (Mod mod in Mods.InstalledMods) + { + Mods.Instance.UninstallMod(mod); + } + if (Directory.Exists(Path.Combine(App.BeatSaberInstallDirectory, "Plugins"))) + Directory.Delete(Path.Combine(App.BeatSaberInstallDirectory, "Plugins"), true); + if (Directory.Exists(Path.Combine(App.BeatSaberInstallDirectory, "Libs"))) + Directory.Delete(Path.Combine(App.BeatSaberInstallDirectory, "Libs"), true); + if (Directory.Exists(Path.Combine(App.BeatSaberInstallDirectory, "IPA"))) + Directory.Delete(Path.Combine(App.BeatSaberInstallDirectory, "IPA"), true); + MainWindow.Instance.MainText = "All Mods Uninstalled..."; + } } } }