diff --git a/Mapping_Tools/Viewmodels/MetadataManagerVm.cs b/Mapping_Tools/Viewmodels/MetadataManagerVm.cs index f01fe3ea..80343c47 100644 --- a/Mapping_Tools/Viewmodels/MetadataManagerVm.cs +++ b/Mapping_Tools/Viewmodels/MetadataManagerVm.cs @@ -135,15 +135,15 @@ private void ImportFromBeatmap(string importPath) { var editor = new BeatmapEditor(importPath); var beatmap = editor.Beatmap; - Artist = beatmap.Metadata["ArtistUnicode"].Value; - RomanisedArtist = beatmap.Metadata["Artist"].Value; - Title = beatmap.Metadata["TitleUnicode"].Value; - RomanisedTitle = beatmap.Metadata["Title"].Value; - BeatmapCreator = beatmap.Metadata["Creator"].Value; - Source = beatmap.Metadata["Source"].Value; - Tags = beatmap.Metadata["Tags"].Value; - - PreviewTime = beatmap.General["PreviewTime"].DoubleValue; + Artist = beatmap.Metadata.TryGetValue("ArtistUnicode", out TValue artistUnicodeValue) ? artistUnicodeValue.Value : string.Empty; + RomanisedArtist = beatmap.Metadata.TryGetValue("Artist", out TValue artistValue) ? artistValue.Value : string.Empty; + Title = beatmap.Metadata.TryGetValue("TitleUnicode", out TValue titleUnicodeValue) ? titleUnicodeValue.Value : string.Empty; + RomanisedTitle = beatmap.Metadata.TryGetValue("Title", out TValue titleValue) ? titleValue.Value : string.Empty; + BeatmapCreator = beatmap.Metadata.TryGetValue("Creator", out TValue creatorValue) ? creatorValue.Value : string.Empty; + Source = beatmap.Metadata.TryGetValue("Source", out TValue sourceValue) ? sourceValue.Value : string.Empty; + Tags = beatmap.Metadata.TryGetValue("Tags", out TValue tagsValue) ? tagsValue.Value : string.Empty; + + PreviewTime = beatmap.General.TryGetValue("PreviewTime", out TValue previewTimeValue) ? previewTimeValue.DoubleValue : -1; ComboColours = new ObservableCollection(beatmap.ComboColours); SpecialColours.Clear(); foreach (var specialColour in beatmap.SpecialColours) { diff --git a/Mapping_Tools/Views/MetadataManager/MetadataManagerView.xaml.cs b/Mapping_Tools/Views/MetadataManager/MetadataManagerView.xaml.cs index b0c03206..3666fc4d 100644 --- a/Mapping_Tools/Views/MetadataManager/MetadataManagerView.xaml.cs +++ b/Mapping_Tools/Views/MetadataManager/MetadataManagerView.xaml.cs @@ -7,7 +7,6 @@ using Mapping_Tools.Classes.BeatmapHelper; using Mapping_Tools.Classes.SystemTools; using Mapping_Tools.Classes.ToolHelpers; -using Mapping_Tools.Classes.Tools; using Mapping_Tools.Viewmodels; namespace Mapping_Tools.Views.MetadataManager { @@ -60,13 +59,13 @@ private static string Copy_Metadata(MetadataManagerVm arg, BackgroundWorker work var editor = EditorReaderStuff.GetNewestVersionOrNot(path, reader); var beatmap = editor.Beatmap; - beatmap.Metadata["ArtistUnicode"].Value = arg.Artist; - beatmap.Metadata["Artist"].Value = arg.RomanisedArtist; - beatmap.Metadata["TitleUnicode"].Value = arg.Title; - beatmap.Metadata["Title"].Value = arg.RomanisedTitle; - beatmap.Metadata["Creator"].Value = arg.BeatmapCreator; - beatmap.Metadata["Source"].Value = arg.Source; - beatmap.Metadata["Tags"].Value = arg.Tags; + beatmap.Metadata["ArtistUnicode"] = new TValue(arg.Artist); + beatmap.Metadata["Artist"] = new TValue(arg.RomanisedArtist); + beatmap.Metadata["TitleUnicode"] = new TValue(arg.Title); + beatmap.Metadata["Title"] = new TValue(arg.RomanisedTitle); + beatmap.Metadata["Creator"] = new TValue(arg.BeatmapCreator); + beatmap.Metadata["Source"] = new TValue(arg.Source); + beatmap.Metadata["Tags"] = new TValue(arg.Tags); beatmap.General["PreviewTime"] = new TValue(arg.PreviewTime.ToRoundInvariant()); if (arg.UseComboColours) { @@ -78,8 +77,8 @@ private static string Copy_Metadata(MetadataManagerVm arg, BackgroundWorker work } if (arg.ResetIds) { - beatmap.Metadata["BeatmapID"].Value = @"0"; - beatmap.Metadata["BeatmapSetID"].Value = @"-1"; + beatmap.Metadata["BeatmapID"] = new TValue(@"0"); + beatmap.Metadata["BeatmapSetID"] = new TValue(@"-1"); } // Save the file with name update because we updated the metadata