From 0d762faf603aac417a382ec680aaabdf7248493b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 16 Mar 2019 22:17:58 -0400 Subject: add support for suppressing warnings in mod DB --- src/SMAPI/Framework/ModLoading/AssemblyLoader.cs | 1 + src/SMAPI/Framework/ModLoading/ModMetadata.cs | 9 ++++++ src/SMAPI/Framework/ModLoading/ModWarning.cs | 37 ------------------------ 3 files changed, 10 insertions(+), 37 deletions(-) delete mode 100644 src/SMAPI/Framework/ModLoading/ModWarning.cs (limited to 'src/SMAPI/Framework/ModLoading') diff --git a/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs b/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs index 5e0571a0..878b3148 100644 --- a/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs +++ b/src/SMAPI/Framework/ModLoading/AssemblyLoader.cs @@ -8,6 +8,7 @@ using Mono.Cecil.Cil; using StardewModdingAPI.Framework.Exceptions; using StardewModdingAPI.Internal; using StardewModdingAPI.Metadata; +using StardewModdingAPI.Toolkit.Framework.ModData; namespace StardewModdingAPI.Framework.ModLoading { diff --git a/src/SMAPI/Framework/ModLoading/ModMetadata.cs b/src/SMAPI/Framework/ModLoading/ModMetadata.cs index 0cb62a75..4ff021b7 100644 --- a/src/SMAPI/Framework/ModLoading/ModMetadata.cs +++ b/src/SMAPI/Framework/ModLoading/ModMetadata.cs @@ -179,5 +179,14 @@ namespace StardewModdingAPI.Framework.ModLoading { return this.GetUpdateKeys(validOnly: true).Any(); } + + /// Get whether the mod has a given warning and it hasn't been suppressed in the . + /// The warning to check. + public bool HasUnsuppressWarning(ModWarning warning) + { + return + this.Warnings.HasFlag(warning) + && (this.DataRecord?.DataRecord == null || !this.DataRecord.DataRecord.SuppressWarnings.HasFlag(warning)); + } } } diff --git a/src/SMAPI/Framework/ModLoading/ModWarning.cs b/src/SMAPI/Framework/ModLoading/ModWarning.cs deleted file mode 100644 index e643cb05..00000000 --- a/src/SMAPI/Framework/ModLoading/ModWarning.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using StardewModdingAPI.Events; - -namespace StardewModdingAPI.Framework.ModLoading -{ - /// Indicates a detected non-error mod issue. - [Flags] - internal enum ModWarning - { - /// No issues detected. - None = 0, - - /// SMAPI detected incompatible code in the mod, but was configured to load it anyway. - BrokenCodeLoaded = 1, - - /// The mod affects the save serializer in a way that may make saves unloadable without the mod. - ChangesSaveSerialiser = 2, - - /// The mod patches the game in a way that may impact stability. - PatchesGame = 4, - - /// The mod uses the dynamic keyword which won't work on Linux/Mac. - UsesDynamic = 8, - - /// The mod references or which may impact stability. - UsesUnvalidatedUpdateTick = 16, - - /// The mod has no update keys set. - NoUpdateKeys = 32, - - /// Uses .NET APIs for filesystem access. - AccessesFilesystem = 64, - - /// Uses .NET APIs for shell or process access. - AccessesShell = 128 - } -} -- cgit