From f56636d2c8c78d06b150c4f942f2b791228c560b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 18 Sep 2018 21:03:05 -0400 Subject: fix trace logs not showing path for invalid mods --- docs/release-notes.md | 1 + src/SMAPI/Framework/SCore.cs | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 84fb88b0..f6119d23 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -22,6 +22,7 @@ * Added IntelliSense documentation when not using the 'for developers' version of SMAPI. * Mods are no longer prevented from loading a PNG while the game is drawing. * Fixed `IContentPack.ReadJsonFile` allowing non-relative paths. + * Fixed trace logs not showing path for invalid mods. * Suppressed the game's 'added crickets' debug output. * **Breaking change:** `helper.ModRegistry` now returns `IModInfo` instead of `IManifest` directly. This lets SMAPI return more metadata about mods in future versions. * **Breaking change:** most SMAPI files have been moved into a `smapi-internal` subfolder. This won't affect compiled mods, but you'll need to update the mod build config NuGet package when compiling mods. diff --git a/src/SMAPI/Framework/SCore.cs b/src/SMAPI/Framework/SCore.cs index 14380f7b..d05f5bb9 100644 --- a/src/SMAPI/Framework/SCore.cs +++ b/src/SMAPI/Framework/SCore.cs @@ -837,7 +837,7 @@ namespace StardewModdingAPI.Framework // unlock mod integrations this.ModRegistry.AreAllModsInitialised = true; } - + /// Load a given mod. /// The mod to load. /// The mods being loaded. @@ -855,13 +855,14 @@ namespace StardewModdingAPI.Framework errorDetails = null; // log entry - if (mod.IsContentPack) - this.Monitor.Log($" {mod.DisplayName} (content pack, {PathUtilities.GetRelativePath(this.ModsPath, mod.DirectoryPath)})...", LogLevel.Trace); - else { - this.Monitor.Log(mod.Manifest?.EntryDll != null - ? $" {mod.DisplayName} ({PathUtilities.GetRelativePath(this.ModsPath, mod.DirectoryPath)}{Path.DirectorySeparatorChar}{mod.Manifest.EntryDll})..." // don't use Path.Combine here, since EntryDLL might not be valid - : $" {mod.DisplayName}...", LogLevel.Trace); + string relativePath = PathUtilities.GetRelativePath(this.ModsPath, mod.DirectoryPath); + if (mod.IsContentPack) + this.Monitor.Log($" {mod.DisplayName} ({relativePath}) [content pack]...", LogLevel.Trace); + else if (mod.Manifest.EntryDll != null) + this.Monitor.Log($" {mod.DisplayName} ({relativePath}{Path.DirectorySeparatorChar}{mod.Manifest.EntryDll})...", LogLevel.Trace); // don't use Path.Combine here, since EntryDLL might not be valid + else + this.Monitor.Log($" {mod.DisplayName} ({relativePath})...", LogLevel.Trace); } // add warning for missing update key -- cgit