summaryrefslogtreecommitdiff
path: root/src/SMAPI.Toolkit
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-05-09 12:12:03 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-05-09 12:12:03 -0400
commit4b391d631ccde301969ae0c04f407a01ba4055b1 (patch)
tree2c5d9317dd3b64731739aaeb64235cde00c8a948 /src/SMAPI.Toolkit
parentd9c001a39f4562038fb608468169ea22cf074111 (diff)
downloadSMAPI-4b391d631ccde301969ae0c04f407a01ba4055b1.tar.gz
SMAPI-4b391d631ccde301969ae0c04f407a01ba4055b1.tar.bz2
SMAPI-4b391d631ccde301969ae0c04f407a01ba4055b1.zip
normalize manifest array fields
Diffstat (limited to 'src/SMAPI.Toolkit')
-rw-r--r--src/SMAPI.Toolkit/Framework/ModData/ModDataField.cs2
-rw-r--r--src/SMAPI.Toolkit/Framework/ModScanning/ModFolder.cs2
-rw-r--r--src/SMAPI.Toolkit/Serialization/Models/Manifest.cs10
3 files changed, 12 insertions, 2 deletions
diff --git a/src/SMAPI.Toolkit/Framework/ModData/ModDataField.cs b/src/SMAPI.Toolkit/Framework/ModData/ModDataField.cs
index 6658d219..b02be3e4 100644
--- a/src/SMAPI.Toolkit/Framework/ModData/ModDataField.cs
+++ b/src/SMAPI.Toolkit/Framework/ModData/ModDataField.cs
@@ -66,7 +66,7 @@ namespace StardewModdingAPI.Toolkit.Framework.ModData
{
// update key
case ModDataFieldKey.UpdateKey:
- return manifest.UpdateKeys != null && manifest.UpdateKeys.Any(p => !string.IsNullOrWhiteSpace(p));
+ return manifest.UpdateKeys.Any(p => !string.IsNullOrWhiteSpace(p));
// non-manifest fields
case ModDataFieldKey.StatusReasonPhrase:
diff --git a/src/SMAPI.Toolkit/Framework/ModScanning/ModFolder.cs b/src/SMAPI.Toolkit/Framework/ModScanning/ModFolder.cs
index d0df09a1..825b98e5 100644
--- a/src/SMAPI.Toolkit/Framework/ModScanning/ModFolder.cs
+++ b/src/SMAPI.Toolkit/Framework/ModScanning/ModFolder.cs
@@ -69,7 +69,7 @@ namespace StardewModdingAPI.Toolkit.Framework.ModScanning
public IEnumerable<string> GetUpdateKeys(Manifest manifest)
{
return
- (manifest.UpdateKeys ?? new string[0])
+ manifest.UpdateKeys
.Where(p => !string.IsNullOrWhiteSpace(p))
.ToArray();
}
diff --git a/src/SMAPI.Toolkit/Serialization/Models/Manifest.cs b/src/SMAPI.Toolkit/Serialization/Models/Manifest.cs
index 99e85cbd..46b654a5 100644
--- a/src/SMAPI.Toolkit/Serialization/Models/Manifest.cs
+++ b/src/SMAPI.Toolkit/Serialization/Models/Manifest.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Runtime.Serialization;
using Newtonsoft.Json;
using StardewModdingAPI.Toolkit.Serialization.Converters;
@@ -70,5 +71,14 @@ namespace StardewModdingAPI.Toolkit.Serialization.Models
this.UpdateKeys = new string[0];
this.ContentPackFor = new ManifestContentPackFor { UniqueID = contentPackFor };
}
+
+ /// <summary>Normalize the model after it's deserialized.</summary>
+ /// <param name="context">The deserialization context.</param>
+ [OnDeserialized]
+ public void OnDeserialized(StreamingContext context)
+ {
+ this.Dependencies ??= new IManifestDependency[0];
+ this.UpdateKeys ??= new string[0];
+ }
}
}