From 5e6f3afe0ee82626b7a8c0ab032f01bed25dc037 Mon Sep 17 00:00:00 2001 From: TheBlackParrot Date: Fri, 11 Apr 2025 23:47:16 -0500 Subject: [PATCH] fix System.InvalidOperationException exception for 1.40.3/1.40.4 when reloading songs --- source/SongCore/Loader.cs | 8 +++++++- source/SongCore/SongCore.csproj | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/SongCore/Loader.cs b/source/SongCore/Loader.cs index dc1bde2..813c7f0 100644 --- a/source/SongCore/Loader.cs +++ b/source/SongCore/Loader.cs @@ -455,13 +455,19 @@ void AddOfficialBeatmapLevelsRepository(BeatmapLevelsRepository levelsRepository .Where(d => d.Exists && !d.Attributes.HasFlag(FileAttributes.Hidden)) .Select(d => d.FullName))) .ToHashSet(); + List folderPathsToRemove = []; foreach (var loadedSaveData in _customLevelLoader._loadedBeatmapSaveData.Values) { if (!folders.Contains(loadedSaveData.customLevelFolderInfo.folderPath)) { - DeleteSingleSong(loadedSaveData.customLevelFolderInfo.folderPath, false); + folderPathsToRemove.Add(loadedSaveData.customLevelFolderInfo.folderPath); } } + + foreach (string? folderPath in folderPathsToRemove) + { + DeleteSingleSong(folderPath, false); + } } Parallel.ForEach(songFolders, parallelOptions, folder => diff --git a/source/SongCore/SongCore.csproj b/source/SongCore/SongCore.csproj index 88ea0d7..ef1ded0 100644 --- a/source/SongCore/SongCore.csproj +++ b/source/SongCore/SongCore.csproj @@ -32,6 +32,10 @@ $(BeatSaberDir)\Libs\0Harmony.dll false + + $(BeatSaberDir)\Beat Saber_Data\Managed\AdditionalContentModel.Interfaces.dll + false +