VRCMelonAssistant/ModAssistant/Pages/Options.xaml.cs

201 lines
7.3 KiB
C#
Raw Normal View History

2019-04-22 18:41:43 +12:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Globalization;
using System.IO;
using Path = System.IO.Path;
2019-04-22 18:41:43 +12:00
namespace ModAssistant.Pages
{
/// <summary>
/// Interaction logic for Options.xaml
/// </summary>
///
public partial class Options : Page
{
public static Options Instance = new Options();
public string InstallDirectory { get; set; }
public string InstallType { get; set; }
public bool SaveSelection { get; set; }
public bool CheckInstalledMods { get; set; }
public bool SelectInstalledMods { get; set; }
public bool ModelSaberProtocolHandlerEnabled { get; set; }
public bool BeatSaverProtocolHandlerEnabled { get; set; }
public bool ModSaberProtocolHandlerEnabled { get; set; }
2019-04-22 18:41:43 +12:00
public Options()
{
InitializeComponent();
InstallDirectory = App.BeatSaberInstallDirectory;
InstallType = App.BeatSaberInstallType;
SaveSelection = App.SaveModSelection;
CheckInstalledMods = App.CheckInstalledMods;
SelectInstalledMods = App.SelectInstalledMods;
if (!CheckInstalledMods)
SelectInstalled.IsEnabled = false;
2019-04-22 18:41:43 +12:00
UpdateHandlerStatus();
2019-05-05 04:08:54 +12:00
2019-04-22 18:41:43 +12:00
this.DataContext = this;
}
public void UpdateHandlerStatus()
{
ModelSaberProtocolHandlerEnabled = OneClickInstaller.IsRegistered("modelsaber");
BeatSaverProtocolHandlerEnabled = OneClickInstaller.IsRegistered("beatsaver");
ModSaberProtocolHandlerEnabled = OneClickInstaller.IsRegistered("modsaber");
}
private void SelectDirButton_Click(object sender, RoutedEventArgs e)
2019-04-22 18:41:43 +12:00
{
Utils.GetManualDir();
2019-05-25 08:32:34 +12:00
DirectoryTextBlock.Text = InstallDirectory;
GameTypeTextBlock.Text = InstallType;
2019-04-22 18:41:43 +12:00
}
2019-12-19 17:13:44 +13:00
private void OpenDirButton_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start(InstallDirectory);
}
2019-04-22 18:41:43 +12:00
private void Test_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(Utils.GetSteamDir());
}
private void SaveSelected_Checked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.SaveSelected = true;
App.SaveModSelection = true;
Properties.Settings.Default.Save();
}
private void SaveSelected_Unchecked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.SaveSelected = false;
App.SaveModSelection = false;
Properties.Settings.Default.Save();
}
private void CheckInstalled_Checked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.CheckInstalled = true;
App.CheckInstalledMods = true;
CheckInstalledMods = true;
Properties.Settings.Default.Save();
SelectInstalled.IsEnabled = true;
2019-05-19 03:32:14 +12:00
if (MainWindow.ModsOpened)
Mods.Instance.PendingChanges = true;
2019-04-22 18:41:43 +12:00
}
private void CheckInstalled_Unchecked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.CheckInstalled = false;
App.CheckInstalledMods = false;
CheckInstalledMods = false;
Properties.Settings.Default.Save();
SelectInstalled.IsEnabled = false;
2019-05-19 03:32:14 +12:00
if (MainWindow.ModsOpened)
Mods.Instance.PendingChanges = true;
2019-04-22 18:41:43 +12:00
}
public void ModelSaberProtocolHandler_Checked(object sender, RoutedEventArgs e)
2019-04-22 18:41:43 +12:00
{
OneClickInstaller.Register("modelsaber");
}
2019-04-22 18:41:43 +12:00
public void ModelSaberProtocolHandler_Unchecked(object sender, RoutedEventArgs e)
{
OneClickInstaller.Unregister("modelsaber");
2019-04-22 18:41:43 +12:00
}
public void BeatSaverProtocolHandler_Checked(object sender, RoutedEventArgs e)
2019-04-22 18:41:43 +12:00
{
OneClickInstaller.Register("beatsaver");
}
2019-04-22 18:41:43 +12:00
public void BeatSaverProtocolHandler_Unchecked(object sender, RoutedEventArgs e)
{
OneClickInstaller.Unregister("beatsaver");
}
private void SelectInstalled_Checked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.SelectInstalled = true;
App.SelectInstalledMods = true;
SelectInstalledMods = true;
Properties.Settings.Default.Save();
}
private void SelectInstalled_Unchecked(object sender, RoutedEventArgs e)
{
Properties.Settings.Default.SelectInstalled = false;
App.SelectInstalledMods = false;
SelectInstalledMods = false;
Properties.Settings.Default.Save();
}
private void OpenLogsDirButton_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start(Path.Combine(InstallDirectory, "Logs"));
}
private async void YeetBSIPAButton_Click(object sender, RoutedEventArgs e)
{
if (Mods.Instance.AllModsList == null)
{
MainWindow.Instance.MainText = "Getting Mod List...";
await Task.Run(() => Mods.Instance.GetAllMods());
MainWindow.Instance.MainText = "Finding BSIPA Version...";
await Task.Run(() => Mods.Instance.GetBSIPAVersion());
}
foreach(Mod mod in Mods.InstalledMods)
{
if (mod.name.ToLower() == "bsipa")
{
Mods.Instance.UninstallMod(mod);
break;
}
}
MainWindow.Instance.MainText = "BSIPA Uninstalled...";
}
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...";
}
}
2019-04-22 18:41:43 +12:00
}
}