summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-04-16 13:41:37 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-04-16 13:41:37 -0400
commit1974324c43b093a360507546e8be12ad594b56f2 (patch)
tree7a0e257c438b7cc7c4f383a12d963e1e58c7242c /src/SMAPI/Framework/ModLoading
parente7fd95aafd044d7b8c95b93d0618324254db4eff (diff)
downloadSMAPI-1974324c43b093a360507546e8be12ad594b56f2.tar.gz
SMAPI-1974324c43b093a360507546e8be12ad594b56f2.tar.bz2
SMAPI-1974324c43b093a360507546e8be12ad594b56f2.zip
make EntryDll manifest field case-insensitive
Diffstat (limited to 'src/SMAPI/Framework/ModLoading')
-rw-r--r--src/SMAPI/Framework/ModLoading/ModResolver.cs15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/SMAPI/Framework/ModLoading/ModResolver.cs b/src/SMAPI/Framework/ModLoading/ModResolver.cs
index afb388d0..e3c7873c 100644
--- a/src/SMAPI/Framework/ModLoading/ModResolver.cs
+++ b/src/SMAPI/Framework/ModLoading/ModResolver.cs
@@ -8,7 +8,7 @@ using StardewModdingAPI.Toolkit.Framework.ModData;
using StardewModdingAPI.Toolkit.Framework.ModScanning;
using StardewModdingAPI.Toolkit.Framework.UpdateData;
using StardewModdingAPI.Toolkit.Serialization.Models;
-using StardewModdingAPI.Toolkit.Utilities;
+using StardewModdingAPI.Utilities;
namespace StardewModdingAPI.Framework.ModLoading
{
@@ -140,20 +140,13 @@ namespace StardewModdingAPI.Framework.ModLoading
continue;
}
- // invalid path
- if (!File.Exists(Path.Combine(mod.DirectoryPath, mod.Manifest.EntryDll!)))
+ // file doesn't exist
+ string fileName = CaseInsensitivePathCache.GetFor(mod.DirectoryPath).GetFilePath(mod.Manifest.EntryDll!);
+ if (!File.Exists(Path.Combine(mod.DirectoryPath, fileName)))
{
mod.SetStatus(ModMetadataStatus.Failed, ModFailReason.InvalidManifest, $"its DLL '{mod.Manifest.EntryDll}' doesn't exist.");
continue;
}
-
- // invalid capitalization
- string? actualFilename = new DirectoryInfo(mod.DirectoryPath).GetFiles(mod.Manifest.EntryDll!).FirstOrDefault()?.Name;
- if (actualFilename != mod.Manifest.EntryDll)
- {
- mod.SetStatus(ModMetadataStatus.Failed, ModFailReason.InvalidManifest, $"its {nameof(IManifest.EntryDll)} value '{mod.Manifest.EntryDll}' doesn't match the actual file capitalization '{actualFilename}'. The capitalization must match for crossplatform compatibility.");
- continue;
- }
}
// validate content pack