summaryrefslogtreecommitdiff
path: root/src/SMAPI.Toolkit/Framework/ModData/ModWarning.cs
blob: 338192afafd701d4ca4e46a7e65bdc9bf3f93e57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;

namespace StardewModdingAPI.Toolkit.Framework.ModData
{
    /// <summary>Indicates a detected non-error mod issue.</summary>
    [Flags]
    public enum ModWarning
    {
        /// <summary>No issues detected.</summary>
        None = 0,

        /// <summary>SMAPI detected incompatible code in the mod, but was configured to load it anyway.</summary>
        BrokenCodeLoaded = 1,

        /// <summary>The mod affects the save serializer in a way that may make saves unloadable without the mod.</summary>
        ChangesSaveSerializer = 2,

        /// <summary>The mod patches the game in a way that may impact stability.</summary>
        PatchesGame = 4,

#if SMAPI_FOR_WINDOWS
        /// <summary>The mod uses the <c>dynamic</c> keyword which won't work on Linux/macOS.</summary>
        [Obsolete("This value is no longer used by SMAPI and will be removed in the upcoming SMAPI 4.0.0.")]
        UsesDynamic = 8,
#endif

        /// <summary>The mod references specialized 'unvalidated update tick' events which may impact stability.</summary>
        UsesUnvalidatedUpdateTick = 16,

        /// <summary>The mod has no update keys set.</summary>
        NoUpdateKeys = 32,

        /// <summary>Uses .NET APIs for reading and writing to the console.</summary>
        AccessesConsole = 64,

        /// <summary>Uses .NET APIs for filesystem access.</summary>
        AccessesFilesystem = 128,

        /// <summary>Uses .NET APIs for shell or process access.</summary>
        AccessesShell = 256,

#if SMAPI_DEPRECATED
        /// <summary>References the legacy <c>System.Configuration.ConfigurationManager</c> assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.</summary>
        DetectedLegacyConfigurationDll = 512,

        /// <summary>References the legacy <c>System.Runtime.Caching</c> assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.</summary>
        DetectedLegacyCachingDll = 1024,

        /// <summary>References the legacy <c>System.Security.Permissions</c> assembly and doesn't include a copy in the mod folder, so it'll break in SMAPI 4.0.0.</summary>
        DetectedLegacyPermissionsDll = 2048
#endif
    }
}