diff --git a/osu!StreamCompanion/Code/Modules/MapDataFinders/SqliteData/SqliteDataFinder.cs b/osu!StreamCompanion/Code/Modules/MapDataFinders/SqliteData/SqliteDataFinder.cs index c72c4dbf..8c4d266e 100644 --- a/osu!StreamCompanion/Code/Modules/MapDataFinders/SqliteData/SqliteDataFinder.cs +++ b/osu!StreamCompanion/Code/Modules/MapDataFinders/SqliteData/SqliteDataFinder.cs @@ -35,15 +35,22 @@ public void Start(ILogger logger) new System.Threading.Thread(() => { string osudb = Path.Combine(_settingsHandle.Get(_names.MainOsuDirectory), "osu!.db"); - string newOsuFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, - @"Files", "osu!.db"); + if (File.Exists(osudb)) + { + string newOsuFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, + @"Files", "osu!.db"); - if (File.Exists(newOsuFile)) - File.Delete(newOsuFile); + if (File.Exists(newOsuFile)) + File.Delete(newOsuFile); - File.Copy(osudb, newOsuFile); - _osuDatabaseLoader.LoadDatabase(newOsuFile); - File.Delete(newOsuFile); + File.Copy(osudb, newOsuFile); + _osuDatabaseLoader.LoadDatabase(newOsuFile); + File.Delete(newOsuFile); + } + else + { + _mainWindowHandle.BeatmapsLoaded = "Could not locate osu!.db"; + } }).Start(); } diff --git a/osu!StreamCompanion/Code/Modules/osuPathReslover/osuPathResolver.cs b/osu!StreamCompanion/Code/Modules/osuPathReslover/osuPathResolver.cs index 4922dd43..77e2a687 100644 --- a/osu!StreamCompanion/Code/Modules/osuPathReslover/osuPathResolver.cs +++ b/osu!StreamCompanion/Code/Modules/osuPathReslover/osuPathResolver.cs @@ -47,7 +47,12 @@ public void Start(ILogger logger) if (LoadOsuDir() == "" || !Directory.Exists(LoadOsuDir())) { string osuRunningDir = GetRunningOsuDir(); - SaveOsuDir(osuRunningDir); + if (Directory.Exists(osuRunningDir)) + SaveOsuDir(osuRunningDir); + else + { + SaveOsuDir(GetManualOsuDir()); + } } } public void SetSettingsHandle(Settings settings) @@ -129,22 +134,29 @@ public string GetRunningOsuDir() } return string.Empty; } - string GetManualOsuDir() + private string GetManualOsuDir() + { + var directory = SelectDirectory("Where is your osu! folder located at?"); + + if (directory == string.Empty || File.Exists(directory + @"\osu!.db")) + { + return directory; + } + MessageBox.Show(@"This isn't osu! folder", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return string.Empty; + } + + private string SelectDirectory(string text) { FolderBrowserDialog dialog = new FolderBrowserDialog(); //set description and base folder for browsing - var description = "Where is your osu! folder located at?"; - dialog.ShowNewFolderButton = false; - dialog.Description = description; - dialog.RootFolder = Environment.SpecialFolder.MyComputer; - if (dialog.ShowDialog() == DialogResult.OK) + dialog.ShowNewFolderButton = true; + dialog.Description = text; + dialog.RootFolder = Environment.SpecialFolder.MyComputer; + if (dialog.ShowDialog() == DialogResult.OK && Directory.Exists((dialog.SelectedPath))) { - if (File.Exists(dialog.SelectedPath + @"\osu!.db")) - { - return dialog.SelectedPath; - } - MessageBox.Show(@"This isn't osu! folder", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return dialog.SelectedPath; } return string.Empty; }