summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Dolaś <me@shockah.pl>2023-01-09 11:39:38 +0100
committerMichał Dolaś <me@shockah.pl>2023-01-09 11:39:38 +0100
commit0ef55c4b1e2aea60bc7281c31b9ca0dac70f272a (patch)
treee6e6c31ce66ee3f83542f9970e76a0d67e4e9b16
parentd35f45fc3242d330a2021017054e932eff64f2ca (diff)
downloadSMAPI-0ef55c4b1e2aea60bc7281c31b9ca0dac70f272a.tar.gz
SMAPI-0ef55c4b1e2aea60bc7281c31b9ca0dac70f272a.tar.bz2
SMAPI-0ef55c4b1e2aea60bc7281c31b9ca0dac70f272a.zip
Mod-group specific config.json overriding
-rw-r--r--src/SMAPI/Constants.cs3
-rw-r--r--src/SMAPI/Framework/SCore.cs2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs
index c5058e4b..3ff3159b 100644
--- a/src/SMAPI/Constants.cs
+++ b/src/SMAPI/Constants.cs
@@ -142,6 +142,9 @@ namespace StardewModdingAPI
/// <summary>The file path for the overrides file for <see cref="ApiConfigPath"/>, which is applied over it.</summary>
internal static string ApiUserConfigPath => Path.Combine(Constants.InternalFilesPath, "config.user.json");
+ /// <summary>The mod-group-specific file path for the overrides file for <see cref="ApiConfigPath"/>, which is applied over it.</summary>
+ internal static string ApiModGroupConfigPath => Path.Combine(ModsPath, "config.json");
+
/// <summary>The file path for the SMAPI metadata file.</summary>
internal static string ApiMetadataPath => Path.Combine(Constants.InternalFilesPath, "metadata.json");
diff --git a/src/SMAPI/Framework/SCore.cs b/src/SMAPI/Framework/SCore.cs
index c977ad65..fea0f7d0 100644
--- a/src/SMAPI/Framework/SCore.cs
+++ b/src/SMAPI/Framework/SCore.cs
@@ -197,6 +197,8 @@ namespace StardewModdingAPI.Framework
this.Settings = JsonConvert.DeserializeObject<SConfig>(File.ReadAllText(Constants.ApiConfigPath)) ?? throw new InvalidOperationException("The 'smapi-internal/config.json' file is missing or invalid. You can reinstall SMAPI to fix this.");
if (File.Exists(Constants.ApiUserConfigPath))
JsonConvert.PopulateObject(File.ReadAllText(Constants.ApiUserConfigPath), this.Settings);
+ if (File.Exists(Constants.ApiModGroupConfigPath))
+ JsonConvert.PopulateObject(File.ReadAllText(Constants.ApiModGroupConfigPath), this.Settings);
if (developerMode.HasValue)
this.Settings.OverrideDeveloperMode(developerMode.Value);