summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/DeprecationManager.cs
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-12-26 11:22:45 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-12-26 11:22:45 -0500
commit48bb1581a6adeabfefbdd774011796e09a07aae2 (patch)
tree81fda584e9bad2d95218db9d7cc41146cc10f3ec /src/SMAPI/Framework/DeprecationManager.cs
parent71284e7176c55f66754470b19fd74b5b1fda4964 (diff)
parent5ac46b7ab22ad5d6ce558a6b6d6d020971c178bd (diff)
downloadSMAPI-48bb1581a6adeabfefbdd774011796e09a07aae2.tar.gz
SMAPI-48bb1581a6adeabfefbdd774011796e09a07aae2.tar.bz2
SMAPI-48bb1581a6adeabfefbdd774011796e09a07aae2.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI/Framework/DeprecationManager.cs')
-rw-r--r--src/SMAPI/Framework/DeprecationManager.cs31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/SMAPI/Framework/DeprecationManager.cs b/src/SMAPI/Framework/DeprecationManager.cs
index 94a2da85..c22b5718 100644
--- a/src/SMAPI/Framework/DeprecationManager.cs
+++ b/src/SMAPI/Framework/DeprecationManager.cs
@@ -35,19 +35,17 @@ namespace StardewModdingAPI.Framework
this.ModRegistry = modRegistry;
}
- /// <summary>Log a deprecation warning for the old-style events.</summary>
- public void WarnForOldEvents()
+ /// <summary>Get the source name for a mod from its unique ID.</summary>
+ public string GetSourceNameFromStack()
{
- this.Warn("legacy events", "2.9", DeprecationLevel.PendingRemoval);
+ return this.ModRegistry.GetFromStack()?.DisplayName;
}
- /// <summary>Log a deprecation warning.</summary>
- /// <param name="nounPhrase">A noun phrase describing what is deprecated.</param>
- /// <param name="version">The SMAPI version which deprecated it.</param>
- /// <param name="severity">How deprecated the code is.</param>
- public void Warn(string nounPhrase, string version, DeprecationLevel severity)
+ /// <summary>Get the source name for a mod from its unique ID.</summary>
+ /// <param name="modId">The mod's unique ID.</param>
+ public string GetSourceName(string modId)
{
- this.Warn(this.ModRegistry.GetFromStack()?.DisplayName, nounPhrase, version, severity);
+ return this.ModRegistry.Get(modId)?.DisplayName;
}
/// <summary>Log a deprecation warning.</summary>
@@ -58,7 +56,7 @@ namespace StardewModdingAPI.Framework
public void Warn(string source, string nounPhrase, string version, DeprecationLevel severity)
{
// ignore if already warned
- if (!this.MarkWarned(source ?? "<unknown>", nounPhrase, version))
+ if (!this.MarkWarned(source ?? this.GetSourceNameFromStack() ?? "<unknown>", nounPhrase, version))
return;
// queue warning
@@ -111,21 +109,16 @@ namespace StardewModdingAPI.Framework
this.QueuedWarnings.Clear();
}
- /// <summary>Mark a deprecation warning as already logged.</summary>
- /// <param name="nounPhrase">A noun phrase describing what is deprecated (e.g. "the Extensions.AsInt32 method").</param>
- /// <param name="version">The SMAPI version which deprecated it.</param>
- /// <returns>Returns whether the deprecation was successfully marked as warned. Returns <c>false</c> if it was already marked.</returns>
- public bool MarkWarned(string nounPhrase, string version)
- {
- return this.MarkWarned(this.ModRegistry.GetFromStack()?.DisplayName, nounPhrase, version);
- }
+ /*********
+ ** Private methods
+ *********/
/// <summary>Mark a deprecation warning as already logged.</summary>
/// <param name="source">The friendly name of the assembly which used the deprecated code.</param>
/// <param name="nounPhrase">A noun phrase describing what is deprecated (e.g. "the Extensions.AsInt32 method").</param>
/// <param name="version">The SMAPI version which deprecated it.</param>
/// <returns>Returns whether the deprecation was successfully marked as warned. Returns <c>false</c> if it was already marked.</returns>
- public bool MarkWarned(string source, string nounPhrase, string version)
+ private bool MarkWarned(string source, string nounPhrase, string version)
{
if (string.IsNullOrWhiteSpace(source))
throw new InvalidOperationException("The deprecation source cannot be empty.");