summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/manifest.json2
-rw-r--r--src/SMAPI/Constants.cs2
-rw-r--r--src/SMAPI/Framework/Events/ManagedEventBase.cs7
3 files changed, 6 insertions, 5 deletions
diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json
index b852f686..645f4315 100644
--- a/src/SMAPI.Mods.ConsoleCommands/manifest.json
+++ b/src/SMAPI.Mods.ConsoleCommands/manifest.json
@@ -1,7 +1,7 @@
{
"Name": "Console Commands",
"Author": "SMAPI",
- "Version": "2.5.0",
+ "Version": "2.5.1",
"Description": "Adds SMAPI console commands that let you manipulate the game.",
"UniqueID": "SMAPI.ConsoleCommands",
"EntryDll": "ConsoleCommands.dll"
diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs
index 8fe2b55b..3e57ded9 100644
--- a/src/SMAPI/Constants.cs
+++ b/src/SMAPI/Constants.cs
@@ -37,7 +37,7 @@ namespace StardewModdingAPI
** Public
****/
/// <summary>SMAPI's current semantic version.</summary>
- public static ISemanticVersion ApiVersion { get; } = new SemanticVersion("2.5.0");
+ public static ISemanticVersion ApiVersion { get; } = new SemanticVersion("2.5.1");
/// <summary>The minimum supported version of Stardew Valley.</summary>
public static ISemanticVersion MinimumGameVersion { get; } = new SemanticVersion("1.2.30");
diff --git a/src/SMAPI/Framework/Events/ManagedEventBase.cs b/src/SMAPI/Framework/Events/ManagedEventBase.cs
index cc4d89ec..7e42d613 100644
--- a/src/SMAPI/Framework/Events/ManagedEventBase.cs
+++ b/src/SMAPI/Framework/Events/ManagedEventBase.cs
@@ -55,7 +55,7 @@ namespace StardewModdingAPI.Framework.Events
protected void AddTracking(TEventHandler handler, IEnumerable<TEventHandler> invocationList)
{
this.SourceMods[handler] = this.ModRegistry.GetFromStack();
- this.CachedInvocationList = invocationList.ToArray();
+ this.CachedInvocationList = invocationList?.ToArray() ?? new TEventHandler[0];
}
/// <summary>Remove tracking for an event handler.</summary>
@@ -63,8 +63,9 @@ namespace StardewModdingAPI.Framework.Events
/// <param name="invocationList">The updated event invocation list.</param>
protected void RemoveTracking(TEventHandler handler, IEnumerable<TEventHandler> invocationList)
{
- this.SourceMods.Remove(handler);
- this.CachedInvocationList = invocationList.ToArray();
+ this.CachedInvocationList = invocationList?.ToArray() ?? new TEventHandler[0];
+ if(!this.CachedInvocationList.Contains(handler)) // don't remove if there's still a reference to the removed handler (e.g. it was added twice and removed once)
+ this.SourceMods.Remove(handler);
}
/// <summary>Log an exception from an event handler.</summary>