summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md1
-rw-r--r--src/SMAPI/Framework/IModMetadata.cs5
-rw-r--r--src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs8
-rw-r--r--src/SMAPI/IModInfo.cs9
-rw-r--r--src/SMAPI/IModRegistry.cs4
-rw-r--r--src/SMAPI/StardewModdingAPI.csproj1
6 files changed, 18 insertions, 10 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 34f7404e..f9bcc6ab 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -13,6 +13,7 @@
* Added `IContentPack.WriteJsonFile` method.
* Added IntelliSense documentation when not using the 'for developers' version of SMAPI.
* Fixed `IContentPack.ReadJsonFile` allowing non-relative paths.
+ * **Breaking change:** `helper.ModRegistry` returns a new `IModInfo` interface 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.
* For SMAPI developers:
diff --git a/src/SMAPI/Framework/IModMetadata.cs b/src/SMAPI/Framework/IModMetadata.cs
index 2145105b..edd7eed6 100644
--- a/src/SMAPI/Framework/IModMetadata.cs
+++ b/src/SMAPI/Framework/IModMetadata.cs
@@ -5,7 +5,7 @@ using StardewModdingAPI.Toolkit.Framework.ModData;
namespace StardewModdingAPI.Framework
{
/// <summary>Metadata for a mod.</summary>
- internal interface IModMetadata
+ internal interface IModMetadata : IModInfo
{
/*********
** Accessors
@@ -16,9 +16,6 @@ namespace StardewModdingAPI.Framework
/// <summary>The mod's full directory path.</summary>
string DirectoryPath { get; }
- /// <summary>The mod manifest.</summary>
- IManifest Manifest { get; }
-
/// <summary>Metadata about the mod from SMAPI's internal data (if any).</summary>
ModDataRecordVersionedFields DataRecord { get; }
diff --git a/src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs b/src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs
index 008a80f5..5cc2a20f 100644
--- a/src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs
+++ b/src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs
@@ -40,17 +40,17 @@ namespace StardewModdingAPI.Framework.ModHelpers
}
/// <summary>Get metadata for all loaded mods.</summary>
- public IEnumerable<IManifest> GetAll()
+ public IEnumerable<IModInfo> GetAll()
{
- return this.Registry.GetAll().Select(p => p.Manifest);
+ return this.Registry.GetAll();
}
/// <summary>Get metadata for a loaded mod.</summary>
/// <param name="uniqueID">The mod's unique ID.</param>
/// <returns>Returns the matching mod's metadata, or <c>null</c> if not found.</returns>
- public IManifest Get(string uniqueID)
+ public IModInfo Get(string uniqueID)
{
- return this.Registry.Get(uniqueID)?.Manifest;
+ return this.Registry.Get(uniqueID);
}
/// <summary>Get whether a mod has been loaded.</summary>
diff --git a/src/SMAPI/IModInfo.cs b/src/SMAPI/IModInfo.cs
new file mode 100644
index 00000000..a16c2d7b
--- /dev/null
+++ b/src/SMAPI/IModInfo.cs
@@ -0,0 +1,9 @@
+namespace StardewModdingAPI
+{
+ /// <summary>Metadata for a loaded mod.</summary>
+ public interface IModInfo
+ {
+ /// <summary>The mod manifest.</summary>
+ IManifest Manifest { get; }
+ }
+}
diff --git a/src/SMAPI/IModRegistry.cs b/src/SMAPI/IModRegistry.cs
index a06e099e..10b3121e 100644
--- a/src/SMAPI/IModRegistry.cs
+++ b/src/SMAPI/IModRegistry.cs
@@ -6,12 +6,12 @@ namespace StardewModdingAPI
public interface IModRegistry : IModLinked
{
/// <summary>Get metadata for all loaded mods.</summary>
- IEnumerable<IManifest> GetAll();
+ IEnumerable<IModInfo> GetAll();
/// <summary>Get metadata for a loaded mod.</summary>
/// <param name="uniqueID">The mod's unique ID.</param>
/// <returns>Returns the matching mod's metadata, or <c>null</c> if not found.</returns>
- IManifest Get(string uniqueID);
+ IModInfo Get(string uniqueID);
/// <summary>Get whether a mod has been loaded.</summary>
/// <param name="uniqueID">The mod's unique ID.</param>
diff --git a/src/SMAPI/StardewModdingAPI.csproj b/src/SMAPI/StardewModdingAPI.csproj
index 713b1b31..740af15f 100644
--- a/src/SMAPI/StardewModdingAPI.csproj
+++ b/src/SMAPI/StardewModdingAPI.csproj
@@ -186,6 +186,7 @@
<Compile Include="Framework\StateTracking\PlayerTracker.cs" />
<Compile Include="Framework\Utilities\ContextHash.cs" />
<Compile Include="IContentPack.cs" />
+ <Compile Include="IModInfo.cs" />
<Compile Include="IMultiplayerHelper.cs" />
<Compile Include="IReflectedField.cs" />
<Compile Include="IReflectedMethod.cs" />