Merge branch 'develop' into stable

This commit is contained in:
Jesse Plamondon-Willard
2024-12-08 18:01:34 -05:00
8 changed files with 26 additions and 33 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ repo. It imports the other MSBuild files as needed.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!--set general build properties -->
<Version>4.1.8</Version>
<Version>4.1.9</Version>
<Product>SMAPI</Product>
<LangVersion>latest</LangVersion>
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
+8 -1
View File
@@ -1,12 +1,19 @@
← [README](README.md)
# Release notes
# 4.1.9
Released 08 December 2024 for Stardew Valley 1.6.14 or later.
* For players:
* Fixed compatibility with new macOS security restrictions (again).
* Fixed unable to override color schemes via `smapi-internal/config.user.json`.
## 4.1.8
Released 28 November 2024 for Stardew Valley 1.6.14 or later.
* For players:
* Updated the mod compatibility blacklist.
* Fixed compatibility with newer macOS security restrictions.
* Fixed compatibility with new macOS security restrictions.
* Fixed crash with some rare combinations of mods involving Harmony and mod APIs.
* For mod authors:
@@ -415,21 +415,6 @@ internal class InteractiveInstaller
}
}.Start();
}
// sign SMAPI on macOS
// This avoids 'StardewModdingAPI will damage your computer' errors in newer versions.
if (context.Platform is Platform.Mac)
{
new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "codesign",
Arguments = $"--force --sign - \"{paths.UnixSmapiExecutablePath}\"",
CreateNoWindow = true
}
}.Start();
}
}
// copy the game's deps.json file
@@ -10,10 +10,10 @@ internal class ColorSchemeConfig
** Accessors
*********/
/// <summary>The default color scheme ID to use, or <see cref="MonitorColorScheme.AutoDetect"/> to select one automatically.</summary>
public MonitorColorScheme UseScheme { get; }
public MonitorColorScheme UseScheme { get; set; }
/// <summary>The available console color schemes.</summary>
public IDictionary<MonitorColorScheme, IDictionary<ConsoleLogLevel, ConsoleColor>> Schemes { get; }
public IDictionary<MonitorColorScheme, IDictionary<ConsoleLogLevel, ConsoleColor>> Schemes { get; set; }
/*********
+2 -2
View File
@@ -1,9 +1,9 @@
{
"Name": "Console Commands",
"Author": "SMAPI",
"Version": "4.1.8",
"Version": "4.1.9",
"Description": "Adds SMAPI console commands that let you manipulate the game.",
"UniqueID": "SMAPI.ConsoleCommands",
"EntryDll": "ConsoleCommands.dll",
"MinimumApiVersion": "4.1.8"
"MinimumApiVersion": "4.1.9"
}
+2 -2
View File
@@ -1,9 +1,9 @@
{
"Name": "Save Backup",
"Author": "SMAPI",
"Version": "4.1.8",
"Version": "4.1.9",
"Description": "Automatically backs up all your saves once per day into its folder.",
"UniqueID": "SMAPI.SaveBackup",
"EntryDll": "SaveBackup.dll",
"MinimumApiVersion": "4.1.8"
"MinimumApiVersion": "4.1.9"
}
@@ -27,11 +27,14 @@ public class CompatibilityRepoClient : IDisposable
** Public methods
*********/
/// <summary>Construct an instance.</summary>
/// <param name="fetchUrl">The full URL of the JSON file to fetch.</param>
/// <param name="fetchBaseUrl">The base URL from which to fetch the compatibility list JSON files.</param>
/// <param name="userAgent">The user agent for the API client.</param>
public CompatibilityRepoClient(string userAgent, string fetchUrl = "https://raw.githubusercontent.com/Pathoschild/SmapiCompatibilityList/refs/heads/release/data/data.jsonc")
public CompatibilityRepoClient(string userAgent, string fetchBaseUrl = "https://raw.githubusercontent.com/Pathoschild/SmapiCompatibilityList/refs/heads/release/data")
{
this.Client = new FluentClient(fetchUrl).SetUserAgent(userAgent);
this.Client = new FluentClient(fetchBaseUrl)
.SetUserAgent(userAgent);
this.Client.Filters.Add(new ForceJsonResponseTypeFilter());
this.MarkdownPipeline = new MarkdownPipelineBuilder()
.Use(new ExpandCompatibilityListAnchorLinksExtension())
.Build();
@@ -40,14 +43,12 @@ public class CompatibilityRepoClient : IDisposable
/// <summary>Fetch mods from the compatibility list.</summary>
public async Task<ModCompatibilityEntry[]> FetchModsAsync()
{
RawCompatibilityList response = await this.Client
.GetAsync(null)
.WithFilter(new ForceJsonResponseTypeFilter())
.As<RawCompatibilityList>();
RawCompatibilityList mods = await this.Client.GetAsync("mods.jsonc").As<RawCompatibilityList>();
RawCompatibilityList brokenContentPacks = await this.Client.GetAsync("broken-content-packs.jsonc").As<RawCompatibilityList>();
return
(response.Mods ?? Array.Empty<RawModEntry>())
.Concat(response.BrokenContentPacks ?? Array.Empty<RawModEntry>())
(mods.Mods ?? Array.Empty<RawModEntry>())
.Concat(brokenContentPacks.BrokenContentPacks ?? Array.Empty<RawModEntry>())
.Select(this.ParseRawModEntry)
.ToArray();
}
+1 -1
View File
@@ -49,7 +49,7 @@ internal static class EarlyConstants
internal static int? LogScreenId { get; set; }
/// <summary>SMAPI's current raw semantic version.</summary>
internal static string RawApiVersion = "4.1.8";
internal static string RawApiVersion = "4.1.9";
}
/// <summary>Contains SMAPI's constants and assumptions.</summary>