From f6ebc69a5936d4b18a6aff2e56faa1b8cadc2c52 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Thu, 15 Jul 2021 15:17:54 -0400 Subject: [PATCH] Update packages and bump version --- IPA.Injector/IPA.Injector.csproj | 2 +- IPA.Loader/Config/SelfConfig.cs | 474 +++++++++++++++---------------- IPA.Loader/IPA.Loader.csproj | 21 +- IPA.Loader/Loader/manifest.json | 2 +- IPA/Program.cs | 2 +- 5 files changed, 250 insertions(+), 251 deletions(-) diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index 1fbe99af..a04efc2e 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -84,7 +84,7 @@ - + diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index 2cbaa575..8b6403ab 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -1,238 +1,238 @@ -// BEGIN: section ignore -#nullable enable -using IPA.Logging; -using IPA.Config.Stores; -using IPA.Config.Stores.Attributes; -using IPA.Config.Stores.Converters; -// END: section ignore -using Newtonsoft.Json; -using System.Collections.Generic; - -namespace IPA.Config -{ - internal class SelfConfig - { - // This is to allow the doc generation to parse this file and use Newtonsoft to generate a JSON schema - // BEGIN: section ignore - - public static Config LoaderConfig { get; set; } = null!; // this is set before used - - public static SelfConfig Instance = new(); - - public static void Load() - { - LoaderConfig = Config.GetConfigFor(IPAName, "json"); - Instance = LoaderConfig.Generated(); - Instance.OnReload(); - } - - protected virtual void CopyFrom(SelfConfig cfg) { } - protected internal virtual void OnReload() - { - if (Regenerate) - CopyFrom(new SelfConfig { Regenerate = false }); - StandardLogger.Configure(); - } - - protected internal virtual void Changed() - { - Logger.Default.Debug("SelfConfig Changed called"); - } - - public static void ReadCommandLine(string[] args) - { - foreach (var arg in args) - { - switch (arg) - { - case "--debug": - case "--mono-debug": - CommandLineValues.Debug.ShowDebug = true; - CommandLineValues.Debug.ShowCallSource = true; - break; - case "--no-yeet": - CommandLineValues.YeetMods = false; - break; - case "--no-logs": - CommandLineValues.WriteLogs = false; - break; - case "--darken-message": - CommandLineValues.Debug.DarkenMessages = true; - break; - case "--condense-logs": - CommandLineValues.Debug.CondenseModLogs = true; - break; - case "--plugin-logs": - CommandLineValues.Debug.CreateModLogs = true; - break; -#if false - case "--no-updates": - CommandLineValues.Updates.AutoCheckUpdates = false; - CommandLineValues.Updates.AutoUpdate = false; - break; -#endif - case "--trace": - CommandLineValues.Debug.ShowTrace = true; - break; - } - } - } - - public void CheckVersionBoundary() - { - if (ResetGameAssebliesOnVersionChange && Utilities.UnityGame.IsGameVersionBoundary) - { - GameAssemblies = GetDefaultGameAssemblies(); - } - } - - internal const string IPAName = "Beat Saber IPA"; - internal const string IPAVersion = "4.3.0.0"; - - // uses Updates.AutoUpdate, Updates.AutoCheckUpdates, YeetMods, Debug.ShowCallSource, Debug.ShowDebug, - // Debug.CondenseModLogs - internal static SelfConfig CommandLineValues = new(); - - // For readability's sake, I want the default values to be visible in source. -#pragma warning disable CA1805 // Do not initialize unnecessarily - - // END: section ignore - - public virtual bool Regenerate { get; set; } = true; - -#if false - public class Updates_ - { - public virtual bool AutoUpdate { get; set; } = true; - // LINE: ignore 2 - public static bool AutoUpdate_ => (Instance?.Updates?.AutoUpdate ?? true) - && CommandLineValues.Updates.AutoUpdate; - - public virtual bool AutoCheckUpdates { get; set; } = true; - // LINE: ignore 2 - public static bool AutoCheckUpdates_ => (Instance?.Updates?.AutoCheckUpdates ?? true) - && CommandLineValues.Updates.AutoCheckUpdates; - } - - // LINE: ignore - [NonNullable] - public virtual Updates_ Updates { get; set; } = new Updates_(); -#endif - - public class Debug_ - { - public virtual bool ShowCallSource { get; set; } = false; - // LINE: ignore 2 - public static bool ShowCallSource_ => (Instance?.Debug?.ShowCallSource ?? false) - || CommandLineValues.Debug.ShowCallSource; - - public virtual bool ShowDebug { get; set; } = false; - // LINE: ignore 2 - public static bool ShowDebug_ => (Instance?.Debug?.ShowDebug ?? false) - || CommandLineValues.Debug.ShowDebug; - - // This option only takes effect after a full game restart, unless new logs are created again - public virtual bool CondenseModLogs { get; set; } = false; - // LINE: ignore 2 - public static bool CondenseModLogs_ => (Instance?.Debug?.CondenseModLogs ?? false) - || CommandLineValues.Debug.CondenseModLogs; - - // This option only takes effect after a full game restart, unless new logs are created again - public virtual bool CreateModLogs { get; set; } = false; - // LINE: ignore 2 - public static bool CreateModLogs_ => (Instance?.Debug?.CreateModLogs ?? false) - || CommandLineValues.Debug.CreateModLogs; - - public virtual bool ShowHandledErrorStackTraces { get; set; } = false; - // LINE: ignore - public static bool ShowHandledErrorStackTraces_ => Instance?.Debug?.ShowHandledErrorStackTraces ?? false; - - public virtual bool HideMessagesForPerformance { get; set; } = true; - // LINE: ignore - public static bool HideMessagesForPerformance_ => Instance?.Debug?.HideMessagesForPerformance ?? true; - - public virtual int HideLogThreshold { get; set; } = 512; - // LINE: ignore - public static int HideLogThreshold_ => Instance?.Debug?.HideLogThreshold ?? 512; - - public virtual bool ShowTrace { get; set; } = false; - // LINE: ignore 2 - public static bool ShowTrace_ => (Instance?.Debug?.ShowTrace ?? false) - || CommandLineValues.Debug.ShowTrace; - public virtual bool SyncLogging { get; set; } = false; - // LINE: ignore - public static bool SyncLogging_ => Instance?.Debug?.SyncLogging ?? false; - - public virtual bool DarkenMessages { get; set; } = false; - // LINE: ignore 2 - public static bool DarkenMessages_ => (Instance?.Debug?.DarkenMessages ?? false) - || CommandLineValues.Debug.DarkenMessages; - } - - // LINE: ignore - [NonNullable] - public virtual Debug_ Debug { get; set; } = new(); - - public class AntiMalware_ - { - public virtual bool UseIfAvailable { get; set; } = true; - // LINE: ignore - public static bool UseIfAvailable_ => Instance?.AntiMalware?.UseIfAvailable ?? true; - - public virtual bool RunPartialThreatCode { get; set; } = false; - // LINE: ignore - public static bool RunPartialThreatCode_ => Instance?.AntiMalware?.RunPartialThreatCode ?? true; - } - - // LINE: ignore - [NonNullable] - public virtual AntiMalware_ AntiMalware { get; set; } = new(); - - public virtual bool YeetMods { get; set; } = true; - // LINE: ignore 2 - public static bool YeetMods_ => (Instance?.YeetMods ?? true) - && CommandLineValues.YeetMods; - - [JsonIgnore] - public bool WriteLogs { get; set; } = true; - - public virtual bool ResetGameAssebliesOnVersionChange { get; set; } = true; - - // LINE: ignore - [NonNullable, UseConverter(typeof(CollectionConverter>))] - public virtual HashSet GameAssemblies { get; set; } = GetDefaultGameAssemblies(); - - // BEGIN: section ignore - public static HashSet GetDefaultGameAssemblies() - => new() - { -#if BeatSaber // provide these defaults only for Beat Saber builds - "Main.dll", "Core.dll", "HMLib.dll", "HMUI.dll", "HMRendering.dll", "VRUI.dll", - "BeatmapCore.dll", "GameplayCore.dll", "HMLibAttributes.dll", "BeatmapEditor3D.dll" -#else // otherwise specify Assembly-CSharp.dll - "Assembly-CSharp.dll" -#endif - }; - // END: section ignore - - // LINE: ignore -#if false // used to make schema gen happy - private static HashSet GetDefaultGameAssemblies() => null; - // LINE: ignore -#endif - - // LINE: ignore - public static HashSet GameAssemblies_ => Instance?.GameAssemblies ?? new HashSet { "Assembly-CSharp.dll" }; - - // LINE: ignore -#if false // Used for documentation schema generation - [JsonProperty(Required = Required.DisallowNull)] - public virtual string LastGameVersion { get; set; } = null; - // LINE: ignore 2 -#endif - public virtual string? LastGameVersion { get; set; } = null; - - // LINE: ignore - public static string? LastGameVersion_ => Instance?.LastGameVersion; - } +// BEGIN: section ignore +#nullable enable +using IPA.Logging; +using IPA.Config.Stores; +using IPA.Config.Stores.Attributes; +using IPA.Config.Stores.Converters; +// END: section ignore +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace IPA.Config +{ + internal class SelfConfig + { + // This is to allow the doc generation to parse this file and use Newtonsoft to generate a JSON schema + // BEGIN: section ignore + + public static Config LoaderConfig { get; set; } = null!; // this is set before used + + public static SelfConfig Instance = new(); + + public static void Load() + { + LoaderConfig = Config.GetConfigFor(IPAName, "json"); + Instance = LoaderConfig.Generated(); + Instance.OnReload(); + } + + protected virtual void CopyFrom(SelfConfig cfg) { } + protected internal virtual void OnReload() + { + if (Regenerate) + CopyFrom(new SelfConfig { Regenerate = false }); + StandardLogger.Configure(); + } + + protected internal virtual void Changed() + { + Logger.Default.Debug("SelfConfig Changed called"); + } + + public static void ReadCommandLine(string[] args) + { + foreach (var arg in args) + { + switch (arg) + { + case "--debug": + case "--mono-debug": + CommandLineValues.Debug.ShowDebug = true; + CommandLineValues.Debug.ShowCallSource = true; + break; + case "--no-yeet": + CommandLineValues.YeetMods = false; + break; + case "--no-logs": + CommandLineValues.WriteLogs = false; + break; + case "--darken-message": + CommandLineValues.Debug.DarkenMessages = true; + break; + case "--condense-logs": + CommandLineValues.Debug.CondenseModLogs = true; + break; + case "--plugin-logs": + CommandLineValues.Debug.CreateModLogs = true; + break; +#if false + case "--no-updates": + CommandLineValues.Updates.AutoCheckUpdates = false; + CommandLineValues.Updates.AutoUpdate = false; + break; +#endif + case "--trace": + CommandLineValues.Debug.ShowTrace = true; + break; + } + } + } + + public void CheckVersionBoundary() + { + if (ResetGameAssebliesOnVersionChange && Utilities.UnityGame.IsGameVersionBoundary) + { + GameAssemblies = GetDefaultGameAssemblies(); + } + } + + internal const string IPAName = "Beat Saber IPA"; + internal const string IPAVersion = "4.3.1.0"; + + // uses Updates.AutoUpdate, Updates.AutoCheckUpdates, YeetMods, Debug.ShowCallSource, Debug.ShowDebug, + // Debug.CondenseModLogs + internal static SelfConfig CommandLineValues = new(); + + // For readability's sake, I want the default values to be visible in source. +#pragma warning disable CA1805 // Do not initialize unnecessarily + + // END: section ignore + + public virtual bool Regenerate { get; set; } = true; + +#if false + public class Updates_ + { + public virtual bool AutoUpdate { get; set; } = true; + // LINE: ignore 2 + public static bool AutoUpdate_ => (Instance?.Updates?.AutoUpdate ?? true) + && CommandLineValues.Updates.AutoUpdate; + + public virtual bool AutoCheckUpdates { get; set; } = true; + // LINE: ignore 2 + public static bool AutoCheckUpdates_ => (Instance?.Updates?.AutoCheckUpdates ?? true) + && CommandLineValues.Updates.AutoCheckUpdates; + } + + // LINE: ignore + [NonNullable] + public virtual Updates_ Updates { get; set; } = new Updates_(); +#endif + + public class Debug_ + { + public virtual bool ShowCallSource { get; set; } = false; + // LINE: ignore 2 + public static bool ShowCallSource_ => (Instance?.Debug?.ShowCallSource ?? false) + || CommandLineValues.Debug.ShowCallSource; + + public virtual bool ShowDebug { get; set; } = false; + // LINE: ignore 2 + public static bool ShowDebug_ => (Instance?.Debug?.ShowDebug ?? false) + || CommandLineValues.Debug.ShowDebug; + + // This option only takes effect after a full game restart, unless new logs are created again + public virtual bool CondenseModLogs { get; set; } = false; + // LINE: ignore 2 + public static bool CondenseModLogs_ => (Instance?.Debug?.CondenseModLogs ?? false) + || CommandLineValues.Debug.CondenseModLogs; + + // This option only takes effect after a full game restart, unless new logs are created again + public virtual bool CreateModLogs { get; set; } = false; + // LINE: ignore 2 + public static bool CreateModLogs_ => (Instance?.Debug?.CreateModLogs ?? false) + || CommandLineValues.Debug.CreateModLogs; + + public virtual bool ShowHandledErrorStackTraces { get; set; } = false; + // LINE: ignore + public static bool ShowHandledErrorStackTraces_ => Instance?.Debug?.ShowHandledErrorStackTraces ?? false; + + public virtual bool HideMessagesForPerformance { get; set; } = true; + // LINE: ignore + public static bool HideMessagesForPerformance_ => Instance?.Debug?.HideMessagesForPerformance ?? true; + + public virtual int HideLogThreshold { get; set; } = 512; + // LINE: ignore + public static int HideLogThreshold_ => Instance?.Debug?.HideLogThreshold ?? 512; + + public virtual bool ShowTrace { get; set; } = false; + // LINE: ignore 2 + public static bool ShowTrace_ => (Instance?.Debug?.ShowTrace ?? false) + || CommandLineValues.Debug.ShowTrace; + public virtual bool SyncLogging { get; set; } = false; + // LINE: ignore + public static bool SyncLogging_ => Instance?.Debug?.SyncLogging ?? false; + + public virtual bool DarkenMessages { get; set; } = false; + // LINE: ignore 2 + public static bool DarkenMessages_ => (Instance?.Debug?.DarkenMessages ?? false) + || CommandLineValues.Debug.DarkenMessages; + } + + // LINE: ignore + [NonNullable] + public virtual Debug_ Debug { get; set; } = new(); + + public class AntiMalware_ + { + public virtual bool UseIfAvailable { get; set; } = true; + // LINE: ignore + public static bool UseIfAvailable_ => Instance?.AntiMalware?.UseIfAvailable ?? true; + + public virtual bool RunPartialThreatCode { get; set; } = false; + // LINE: ignore + public static bool RunPartialThreatCode_ => Instance?.AntiMalware?.RunPartialThreatCode ?? true; + } + + // LINE: ignore + [NonNullable] + public virtual AntiMalware_ AntiMalware { get; set; } = new(); + + public virtual bool YeetMods { get; set; } = true; + // LINE: ignore 2 + public static bool YeetMods_ => (Instance?.YeetMods ?? true) + && CommandLineValues.YeetMods; + + [JsonIgnore] + public bool WriteLogs { get; set; } = true; + + public virtual bool ResetGameAssebliesOnVersionChange { get; set; } = true; + + // LINE: ignore + [NonNullable, UseConverter(typeof(CollectionConverter>))] + public virtual HashSet GameAssemblies { get; set; } = GetDefaultGameAssemblies(); + + // BEGIN: section ignore + public static HashSet GetDefaultGameAssemblies() + => new() + { +#if BeatSaber // provide these defaults only for Beat Saber builds + "Main.dll", "Core.dll", "HMLib.dll", "HMUI.dll", "HMRendering.dll", "VRUI.dll", + "BeatmapCore.dll", "GameplayCore.dll", "HMLibAttributes.dll", "BeatmapEditor3D.dll" +#else // otherwise specify Assembly-CSharp.dll + "Assembly-CSharp.dll" +#endif + }; + // END: section ignore + + // LINE: ignore +#if false // used to make schema gen happy + private static HashSet GetDefaultGameAssemblies() => null; + // LINE: ignore +#endif + + // LINE: ignore + public static HashSet GameAssemblies_ => Instance?.GameAssemblies ?? new HashSet { "Assembly-CSharp.dll" }; + + // LINE: ignore +#if false // Used for documentation schema generation + [JsonProperty(Required = Required.DisallowNull)] + public virtual string LastGameVersion { get; set; } = null; + // LINE: ignore 2 +#endif + public virtual string? LastGameVersion { get; set; } = null; + + // LINE: ignore + public static string? LastGameVersion_ => Instance?.LastGameVersion; + } } \ No newline at end of file diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index ff62c1c3..b8758a1e 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -5,7 +5,7 @@ net472 IPA - + true true false @@ -21,7 +21,7 @@ $(DefineConstants);BeatSaber - + ..\Refs\UnityEngine.CoreModule.Net4.dll @@ -42,34 +42,33 @@ False - + - + - + - - - - + + + - + - + diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 3966d292..2ecb3ea6 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -7,7 +7,7 @@ ], "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.3.0", + "version": "4.3.1", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ diff --git a/IPA/Program.cs b/IPA/Program.cs index f2f5f49d..375a15cf 100644 --- a/IPA/Program.cs +++ b/IPA/Program.cs @@ -21,7 +21,7 @@ namespace IPA Unknown } - public const string FileVersion = "4.3.0.0"; + public const string FileVersion = "4.3.1.0"; public static Version Version => Assembly.GetEntryAssembly()!.GetName().Version!;