diff options
-rw-r--r-- | build/GlobalAssemblyInfo.cs | 4 | ||||
-rw-r--r-- | docs/release-notes.md | 4 | ||||
-rw-r--r-- | src/SMAPI.Mods.ConsoleCommands/manifest.json | 2 | ||||
-rw-r--r-- | src/SMAPI/Constants.cs | 2 | ||||
-rw-r--r-- | src/SMAPI/Framework/Events/ManagedEventBase.cs | 7 |
5 files changed, 12 insertions, 7 deletions
diff --git a/build/GlobalAssemblyInfo.cs b/build/GlobalAssemblyInfo.cs index 93e45e30..83bf7d82 100644 --- a/build/GlobalAssemblyInfo.cs +++ b/build/GlobalAssemblyInfo.cs @@ -1,5 +1,5 @@ using System.Reflection; [assembly: AssemblyProduct("SMAPI")] -[assembly: AssemblyVersion("2.5.0")] -[assembly: AssemblyFileVersion("2.5.0")] +[assembly: AssemblyVersion("2.5.1")] +[assembly: AssemblyFileVersion("2.5.1")] diff --git a/docs/release-notes.md b/docs/release-notes.md index 3dee3705..35f711fb 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,4 +1,8 @@ # Release notes +## 2.5.1 +* For players: + * Fixed event error in rare cases. + ## 2.5 * For players: * **Added support for [content packs](https://stardewvalleywiki.com/Modding:Content_packs)**. 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> |