diff options
Diffstat (limited to 'src/SMAPI/Framework')
-rw-r--r-- | src/SMAPI/Framework/IModMetadata.cs | 28 | ||||
-rw-r--r-- | src/SMAPI/Framework/ModLoading/ModMetadata.cs | 36 | ||||
-rw-r--r-- | src/SMAPI/Framework/ModUpdateChecking/ModUpdateStatus.cs | 32 |
3 files changed, 56 insertions, 40 deletions
diff --git a/src/SMAPI/Framework/IModMetadata.cs b/src/SMAPI/Framework/IModMetadata.cs index 7bf7d98c..b71c8056 100644 --- a/src/SMAPI/Framework/IModMetadata.cs +++ b/src/SMAPI/Framework/IModMetadata.cs @@ -1,5 +1,6 @@ using StardewModdingAPI.Framework.ModData; using StardewModdingAPI.Framework.ModLoading; +using StardewModdingAPI.Framework.ModUpdateChecking; namespace StardewModdingAPI.Framework { @@ -45,14 +46,11 @@ namespace StardewModdingAPI.Framework /// <summary>Whether the mod is a content pack.</summary> bool IsContentPack { get; } - /// <summary>The latest version of the mod.</summary> - ISemanticVersion LatestVersion { get; } + /// <summary>The update status of this mod (if any).</summary> + ModUpdateStatus UpdateStatus { get; } - /// <summary>The latest preview version of the mod, if any.</summary> - ISemanticVersion LatestPreviewVersion { get; } - - /// <summary>The error checking for updates for this mod, if any.</summary> - string UpdateCheckError { get; } + /// <summary>The preview update status of this mod (if any).</summary> + ModUpdateStatus PreviewUpdateStatus { get; } /********* ** Public methods @@ -80,17 +78,13 @@ namespace StardewModdingAPI.Framework /// <param name="api">The mod-provided API.</param> IModMetadata SetApi(object api); - /// <summary>Set the update version.</summary> - /// <param name="latestVersion">The latest version.</param> - IModMetadata SetUpdateVersion(ISemanticVersion latestVersion); - - /// <summary>Set the preview update version.</summary> - /// <param name="latestPreviewVersion">The latest preview version.</param> - IModMetadata SetPreviewUpdateVersion(ISemanticVersion latestPreviewVersion); + /// <summary>Set the update status.</summary> + /// <param name="updateStatus">The mod update status.</param> + IModMetadata SetUpdateStatus(ModUpdateStatus updateStatus); - /// <summary>Set the error that occured while checking for updates.</summary> - /// <param name="updateCheckError">The error checking for updates.</param> - IModMetadata SetUpdateError(string updateCheckError); + /// <summary>Set the preview update status.</summary> + /// <param name="previewUpdateStatus">The mod preview update status.</param> + IModMetadata SetPreviewUpdateStatus(ModUpdateStatus previewUpdateStatus); /// <summary>Whether the mod manifest was loaded (regardless of whether the mod itself was loaded).</summary> bool HasManifest(); diff --git a/src/SMAPI/Framework/ModLoading/ModMetadata.cs b/src/SMAPI/Framework/ModLoading/ModMetadata.cs index 1ead1387..88d2770c 100644 --- a/src/SMAPI/Framework/ModLoading/ModMetadata.cs +++ b/src/SMAPI/Framework/ModLoading/ModMetadata.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using StardewModdingAPI.Framework.ModData; +using StardewModdingAPI.Framework.ModUpdateChecking; namespace StardewModdingAPI.Framework.ModLoading { @@ -43,14 +44,11 @@ namespace StardewModdingAPI.Framework.ModLoading /// <summary>The mod-provided API (if any).</summary> public object Api { get; private set; } - /// <summary>The latest version of the mod.</summary> - public ISemanticVersion LatestVersion { get; private set; } + /// <summary>The update status of this mod (if any).</summary> + public ModUpdateStatus UpdateStatus { get; private set; } - /// <summary>The latest preview version of the mod, if any.</summary> - public ISemanticVersion LatestPreviewVersion { get; private set; } - - /// <summary>The error checking for updates for this mod, if any.</summary> - public string UpdateCheckError { get; private set; } + /// <summary>The preview update status of this mod (if any).</summary> + public ModUpdateStatus PreviewUpdateStatus { get; private set; } /// <summary>Whether the mod is a content pack.</summary> public bool IsContentPack => this.Manifest?.ContentPackFor != null; @@ -124,27 +122,19 @@ namespace StardewModdingAPI.Framework.ModLoading return this; } - /// <summary>Set the update version.</summary> - /// <param name="latestVersion">The latest version.</param> - public IModMetadata SetUpdateVersion(ISemanticVersion latestVersion) - { - this.LatestVersion = latestVersion; - return this; - } - - /// <summary>Set the preview update version.</summary> - /// <param name="latestPreviewVersion">The latest preview version.</param> - public IModMetadata SetPreviewUpdateVersion(ISemanticVersion latestPreviewVersion) + /// <summary>Set the update status.</summary> + /// <param name="updateStatus">The mod update status.</param> + public IModMetadata SetUpdateStatus(ModUpdateStatus updateStatus) { - this.LatestPreviewVersion = latestPreviewVersion; + this.UpdateStatus = updateStatus; return this; } - /// <summary>Set the error that occured while checking for updates.</summary> - /// <param name="updateCheckError">The error checking for updates.</param> - public IModMetadata SetUpdateError(string updateCheckError) + /// <summary>Set the preview update status.</summary> + /// <param name="previewUpdateStatus">The mod preview update status.</param> + public IModMetadata SetPreviewUpdateStatus(ModUpdateStatus previewUpdateStatus) { - this.UpdateCheckError = updateCheckError; + this.PreviewUpdateStatus = previewUpdateStatus; return this; } diff --git a/src/SMAPI/Framework/ModUpdateChecking/ModUpdateStatus.cs b/src/SMAPI/Framework/ModUpdateChecking/ModUpdateStatus.cs new file mode 100644 index 00000000..7f588b66 --- /dev/null +++ b/src/SMAPI/Framework/ModUpdateChecking/ModUpdateStatus.cs @@ -0,0 +1,32 @@ +namespace StardewModdingAPI.Framework.ModUpdateChecking +{ + /// <summary>Update status for a mod.</summary> + internal class ModUpdateStatus + { + /********* + ** Accessors + *********/ + /// <summary>The version that this mod can be updated to (if any).</summary> + public ISemanticVersion Version { get; } + + /// <summary>The error checking for updates of this mod (if any).</summary> + public string Error { get; } + + /********* + ** Public methods + *********/ + /// <summary>Construct an instance.</summary> + /// <param name="version">The version that this mod can be update to.</param> + public ModUpdateStatus(ISemanticVersion version) + { + this.Version = version; + } + + /// <summary>Construct an instance.</summary> + /// <param name="error">The error checking for updates of this mod.</param> + public ModUpdateStatus(string error) + { + this.Error = error; + } + } +} |