suppress Harmony debug mode by default
This commit is contained in:
parent
d143ab1077
commit
42ff20cd92
|
@ -10,6 +10,8 @@
|
||||||
## Upcoming release
|
## Upcoming release
|
||||||
* For players:
|
* For players:
|
||||||
* The SMAPI installer now also detects game folders listed in Steam's `.vdf` library data on Windows (thanks to pizzaoverhead!).
|
* The SMAPI installer now also detects game folders listed in Steam's `.vdf` library data on Windows (thanks to pizzaoverhead!).
|
||||||
|
* SMAPI now prevents mods from enabling Harmony debug mode, which impacts performance and creates a file on your desktop.
|
||||||
|
_You can allow debug mode by editing `smapi-internal/config.json` in your game folder._
|
||||||
* Optimized performance and memory usage (thanks to atravita!).
|
* Optimized performance and memory usage (thanks to atravita!).
|
||||||
* Other internal optimizations.
|
* Other internal optimizations.
|
||||||
* Added more file extensions to ignore when searching for mod folders: `.7z`, `.tar`, `.tar.gz`, and `.xcf` (thanks to atravita!).
|
* Added more file extensions to ignore when searching for mod folders: `.7z`, `.tar`, `.tar.gz`, and `.xcf` (thanks to atravita!).
|
||||||
|
|
|
@ -23,7 +23,8 @@ namespace StardewModdingAPI.Framework.Models
|
||||||
[nameof(LogNetworkTraffic)] = false,
|
[nameof(LogNetworkTraffic)] = false,
|
||||||
[nameof(RewriteMods)] = true,
|
[nameof(RewriteMods)] = true,
|
||||||
[nameof(UseRawImageLoading)] = true,
|
[nameof(UseRawImageLoading)] = true,
|
||||||
[nameof(UseCaseInsensitivePaths)] = Constants.Platform is Platform.Android or Platform.Linux
|
[nameof(UseCaseInsensitivePaths)] = Constants.Platform is Platform.Android or Platform.Linux,
|
||||||
|
[nameof(SuppressHarmonyDebugMode)] = true
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>The default values for <see cref="SuppressUpdateChecks"/>, to log changes if different.</summary>
|
/// <summary>The default values for <see cref="SuppressUpdateChecks"/>, to log changes if different.</summary>
|
||||||
|
@ -79,6 +80,9 @@ namespace StardewModdingAPI.Framework.Models
|
||||||
/// <summary>The colors to use for text written to the SMAPI console.</summary>
|
/// <summary>The colors to use for text written to the SMAPI console.</summary>
|
||||||
public ColorSchemeConfig ConsoleColors { get; set; }
|
public ColorSchemeConfig ConsoleColors { get; set; }
|
||||||
|
|
||||||
|
/// <summary>Whether to prevent mods from enabling Harmony's debug mode, which impacts performance and creates a file on your desktop. Debug mode should never be enabled by a released mod.</summary>
|
||||||
|
public bool SuppressHarmonyDebugMode { get; set; }
|
||||||
|
|
||||||
/// <summary>The mod IDs SMAPI should ignore when performing update checks or validating update keys.</summary>
|
/// <summary>The mod IDs SMAPI should ignore when performing update checks or validating update keys.</summary>
|
||||||
public HashSet<string> SuppressUpdateChecks { get; set; }
|
public HashSet<string> SuppressUpdateChecks { get; set; }
|
||||||
|
|
||||||
|
@ -99,8 +103,9 @@ namespace StardewModdingAPI.Framework.Models
|
||||||
/// <param name="useCaseInsensitivePaths">>Whether to make SMAPI file APIs case-insensitive, even on Linux.</param>
|
/// <param name="useCaseInsensitivePaths">>Whether to make SMAPI file APIs case-insensitive, even on Linux.</param>
|
||||||
/// <param name="logNetworkTraffic">Whether SMAPI should log network traffic.</param>
|
/// <param name="logNetworkTraffic">Whether SMAPI should log network traffic.</param>
|
||||||
/// <param name="consoleColors">The colors to use for text written to the SMAPI console.</param>
|
/// <param name="consoleColors">The colors to use for text written to the SMAPI console.</param>
|
||||||
|
/// <param name="suppressHarmonyDebugMode">Whether to prevent mods from enabling Harmony's debug mode, which impacts performance and creates a file on your desktop. Debug mode should never be enabled by a released mod.</param>
|
||||||
/// <param name="suppressUpdateChecks">The mod IDs SMAPI should ignore when performing update checks or validating update keys.</param>
|
/// <param name="suppressUpdateChecks">The mod IDs SMAPI should ignore when performing update checks or validating update keys.</param>
|
||||||
public SConfig(bool developerMode, bool? checkForUpdates, bool? paranoidWarnings, bool? useBetaChannel, string gitHubProjectName, string webApiBaseUrl, string[]? verboseLogging, bool? rewriteMods, bool? useRawImageLoading, bool? useCaseInsensitivePaths, bool? logNetworkTraffic, ColorSchemeConfig consoleColors, string[]? suppressUpdateChecks)
|
public SConfig(bool developerMode, bool? checkForUpdates, bool? paranoidWarnings, bool? useBetaChannel, string gitHubProjectName, string webApiBaseUrl, string[]? verboseLogging, bool? rewriteMods, bool? useRawImageLoading, bool? useCaseInsensitivePaths, bool? logNetworkTraffic, ColorSchemeConfig consoleColors, bool? suppressHarmonyDebugMode, string[]? suppressUpdateChecks)
|
||||||
{
|
{
|
||||||
this.DeveloperMode = developerMode;
|
this.DeveloperMode = developerMode;
|
||||||
this.CheckForUpdates = checkForUpdates ?? (bool)SConfig.DefaultValues[nameof(this.CheckForUpdates)];
|
this.CheckForUpdates = checkForUpdates ?? (bool)SConfig.DefaultValues[nameof(this.CheckForUpdates)];
|
||||||
|
@ -114,6 +119,7 @@ namespace StardewModdingAPI.Framework.Models
|
||||||
this.UseCaseInsensitivePaths = useCaseInsensitivePaths ?? (bool)SConfig.DefaultValues[nameof(this.UseCaseInsensitivePaths)];
|
this.UseCaseInsensitivePaths = useCaseInsensitivePaths ?? (bool)SConfig.DefaultValues[nameof(this.UseCaseInsensitivePaths)];
|
||||||
this.LogNetworkTraffic = logNetworkTraffic ?? (bool)SConfig.DefaultValues[nameof(this.LogNetworkTraffic)];
|
this.LogNetworkTraffic = logNetworkTraffic ?? (bool)SConfig.DefaultValues[nameof(this.LogNetworkTraffic)];
|
||||||
this.ConsoleColors = consoleColors;
|
this.ConsoleColors = consoleColors;
|
||||||
|
this.SuppressHarmonyDebugMode = suppressHarmonyDebugMode ?? (bool)SConfig.DefaultValues[nameof(this.SuppressHarmonyDebugMode)];
|
||||||
this.SuppressUpdateChecks = new HashSet<string>(suppressUpdateChecks ?? Array.Empty<string>(), StringComparer.OrdinalIgnoreCase);
|
this.SuppressUpdateChecks = new HashSet<string>(suppressUpdateChecks ?? Array.Empty<string>(), StringComparer.OrdinalIgnoreCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -501,6 +501,15 @@ namespace StardewModdingAPI.Framework
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*********
|
||||||
|
** Prevent Harmony debug mode
|
||||||
|
*********/
|
||||||
|
if (HarmonyLib.Harmony.DEBUG && this.Settings.SuppressHarmonyDebugMode)
|
||||||
|
{
|
||||||
|
HarmonyLib.Harmony.DEBUG = false;
|
||||||
|
this.Monitor.LogOnce("A mod enabled Harmony debug mode, which impacts performance and creates a file on your desktop. SMAPI will try to keep it disabled. (You can allow debug mode by editing the smapi-internal/config.json file.)", LogLevel.Warn);
|
||||||
|
}
|
||||||
|
|
||||||
#if SMAPI_DEPRECATED
|
#if SMAPI_DEPRECATED
|
||||||
/*********
|
/*********
|
||||||
** Reload assets when interceptors are added/removed
|
** Reload assets when interceptors are added/removed
|
||||||
|
|
|
@ -54,12 +54,6 @@ copy all the settings, or you may cause bugs due to overridden changes in future
|
||||||
*/
|
*/
|
||||||
"UseCaseInsensitivePaths": null,
|
"UseCaseInsensitivePaths": null,
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to use the experimental Pintail API proxying library, instead of the original
|
|
||||||
* proxying built into SMAPI itself.
|
|
||||||
*/
|
|
||||||
"UsePintail": true,
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether to use raw image data when possible, instead of initializing an XNA Texture2D
|
* Whether to use raw image data when possible, instead of initializing an XNA Texture2D
|
||||||
* instance through the GPU.
|
* instance through the GPU.
|
||||||
|
@ -138,6 +132,14 @@ copy all the settings, or you may cause bugs due to overridden changes in future
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to prevent mods from enabling Harmony's debug mode, which impacts performance and
|
||||||
|
* creates a file on your desktop. Debug mode should never be enabled by a released mod.
|
||||||
|
*
|
||||||
|
* If you actually need debug mode to test your own mod, set this to false.
|
||||||
|
*/
|
||||||
|
"SuppressHarmonyDebugMode": true,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The mod IDs SMAPI should ignore when performing update checks or validating update keys.
|
* The mod IDs SMAPI should ignore when performing update checks or validating update keys.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue