diff --git a/api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html b/api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html index 52fcf285..dc1c583f 100644 --- a/api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html +++ b/api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html @@ -388,7 +388,7 @@ public class MarkdownView : MonoBehaviour Improve this Doc - View Source + View Source

MarkdownView()

@@ -406,7 +406,7 @@ public class MarkdownView : MonoBehaviour Improve this Doc - View Source + View Source

HasEmbeddedImage

This function will be called whenever attempting to resolve an image URI, to ensure that the image exists in the embedded assembly.

@@ -439,7 +439,7 @@ public class MarkdownView : MonoBehaviour Improve this Doc - View Source + View Source

Markdown

@@ -474,7 +474,7 @@ public class MarkdownView : MonoBehaviour Improve this Doc - View Source + View Source

rectTransform

@@ -528,7 +528,7 @@ public class MarkdownView : MonoBehaviour Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.Config.NameAttribute.html b/api/IPA.Config.Config.NameAttribute.html index 2609cb3e..64b84adc 100644 --- a/api/IPA.Config.Config.NameAttribute.html +++ b/api/IPA.Config.Config.NameAttribute.html @@ -250,7 +250,7 @@ Improve this Doc - View Source + View Source

    NameAttribute(String)

    @@ -286,7 +286,7 @@ Improve this Doc - View Source + View Source

    Name

    @@ -344,7 +344,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.Config.PreferAttribute.html b/api/IPA.Config.Config.PreferAttribute.html index 734d6f28..f87a1070 100644 --- a/api/IPA.Config.Config.PreferAttribute.html +++ b/api/IPA.Config.Config.PreferAttribute.html @@ -251,7 +251,7 @@ public class PreferAttribute : Attribute, _Attribute Improve this Doc - View Source + View Source

    PreferAttribute(String[])

    @@ -287,7 +287,7 @@ public class PreferAttribute : Attribute, _Attribute Improve this Doc - View Source + View Source

    PreferenceOrder

    @@ -345,7 +345,7 @@ public class PreferAttribute : Attribute, _Attribute Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.Config.TypeAttribute.html b/api/IPA.Config.Config.TypeAttribute.html index d50eebda..e70fe7a8 100644 --- a/api/IPA.Config.Config.TypeAttribute.html +++ b/api/IPA.Config.Config.TypeAttribute.html @@ -251,7 +251,7 @@ public class TypeAttribute : Attribute, _Attribute Improve this Doc - View Source + View Source

    TypeAttribute(String)

    @@ -287,7 +287,7 @@ public class TypeAttribute : Attribute, _Attribute Improve this Doc - View Source + View Source

    Extension

    @@ -345,7 +345,7 @@ public class TypeAttribute : Attribute, _Attribute Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.Config.html b/api/IPA.Config.Config.html index 34272fd4..0393909b 100644 --- a/api/IPA.Config.Config.html +++ b/api/IPA.Config.Config.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    GetProviderFor(String, String[])

    @@ -184,7 +184,7 @@ Improve this Doc - View Source + View Source @@ -256,7 +256,7 @@ Improve this Doc - View Source + View Source

    Register(Type)

    @@ -290,7 +290,7 @@ Improve this Doc - View Source + View Source

    Register<T>()

    @@ -323,7 +323,7 @@ Improve this Doc - View Source + View Source @@ -363,7 +363,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.IConfigProvider.html b/api/IPA.Config.IConfigProvider.html index 21531272..4e1f0999 100644 --- a/api/IPA.Config.IConfigProvider.html +++ b/api/IPA.Config.IConfigProvider.html @@ -99,7 +99,7 @@ Improve this Doc - View Source + View Source

    Filename

    @@ -131,7 +131,7 @@ Improve this Doc - View Source + View Source

    HasChanged

    @@ -162,7 +162,7 @@ Improve this Doc - View Source + View Source

    InMemoryChanged

    @@ -193,7 +193,7 @@ Improve this Doc - View Source + View Source

    LastModified

    @@ -227,7 +227,7 @@ Improve this Doc - View Source + View Source

    Load()

    @@ -243,7 +243,7 @@ Improve this Doc - View Source + View Source

    Parse<T>()

    @@ -291,7 +291,7 @@ Improve this Doc - View Source + View Source

    Save()

    @@ -307,7 +307,7 @@ Improve this Doc - View Source + View Source

    Store<T>(T)

    @@ -385,7 +385,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.IModPrefs.html b/api/IPA.Config.IModPrefs.html index f32b75a6..3ce32e86 100644 --- a/api/IPA.Config.IModPrefs.html +++ b/api/IPA.Config.IModPrefs.html @@ -100,7 +100,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    GetBool(String, String, Boolean, Boolean)

    @@ -167,7 +167,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    GetFloat(String, String, Single, Boolean)

    @@ -234,7 +234,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    GetInt(String, String, Int32, Boolean)

    @@ -301,7 +301,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    GetString(String, String, String, Boolean)

    @@ -368,7 +368,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    HasKey(String, String)

    @@ -423,7 +423,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    SetBool(String, String, Boolean)

    @@ -469,7 +469,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    SetFloat(String, String, Single)

    @@ -515,7 +515,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    SetInt(String, String, Int32)

    @@ -561,7 +561,7 @@ public interface IModPrefs Improve this Doc - View Source + View Source

    SetString(String, String, String)

    @@ -629,7 +629,7 @@ public interface IModPrefs Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Config.ModPrefs.html b/api/IPA.Config.ModPrefs.html index 607d838e..ec402938 100644 --- a/api/IPA.Config.ModPrefs.html +++ b/api/IPA.Config.ModPrefs.html @@ -133,7 +133,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    ModPrefs(PluginLoader.PluginMetadata)

    @@ -169,7 +169,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    GetBool(String, String, Boolean, Boolean)

    @@ -236,7 +236,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    GetFloat(String, String, Single, Boolean)

    @@ -303,7 +303,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    GetInt(String, String, Int32, Boolean)

    @@ -370,7 +370,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    GetString(String, String, String, Boolean)

    @@ -437,7 +437,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    HasKey(String, String)

    @@ -492,7 +492,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    SetBool(String, String, Boolean)

    @@ -538,7 +538,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    SetFloat(String, String, Single)

    @@ -584,7 +584,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    SetInt(String, String, Int32)

    @@ -630,7 +630,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    SetString(String, String, String)

    @@ -678,7 +678,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.GetBool(String, String, Boolean, Boolean)

    @@ -740,7 +740,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.GetFloat(String, String, Single, Boolean)

    @@ -802,7 +802,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.GetInt(String, String, Int32, Boolean)

    @@ -864,7 +864,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.GetString(String, String, String, Boolean)

    @@ -926,7 +926,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.HasKey(String, String)

    @@ -978,7 +978,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.SetBool(String, String, Boolean)

    @@ -1020,7 +1020,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.SetFloat(String, String, Single)

    @@ -1062,7 +1062,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.SetInt(String, String, Int32)

    @@ -1104,7 +1104,7 @@ public class ModPrefs : IModPrefs Improve this Doc - View Source + View Source

    IModPrefs.SetString(String, String, String)

    @@ -1172,7 +1172,7 @@ public class ModPrefs : IModPrefs Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.IBeatSaberPlugin.html b/api/IPA.IBeatSaberPlugin.html index c70eb39d..47331b74 100644 --- a/api/IPA.IBeatSaberPlugin.html +++ b/api/IPA.IBeatSaberPlugin.html @@ -100,7 +100,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnActiveSceneChanged(Scene, Scene)

    @@ -140,7 +140,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnApplicationQuit()

    @@ -156,7 +156,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnApplicationStart()

    @@ -173,7 +173,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnFixedUpdate()

    @@ -189,7 +189,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnSceneLoaded(Scene, LoadSceneMode)

    @@ -229,7 +229,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnSceneUnloaded(Scene)

    @@ -263,7 +263,7 @@ data/Managed/Plugins.

    Improve this Doc - View Source + View Source

    OnUpdate()

    @@ -301,7 +301,7 @@ data/Managed/Plugins.

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.IDisablablePlugin.html b/api/IPA.IDisablablePlugin.html index ac6226ed..5ab18221 100644 --- a/api/IPA.IDisablablePlugin.html +++ b/api/IPA.IDisablablePlugin.html @@ -99,7 +99,7 @@ Improve this Doc - View Source + View Source

    OnDisable()

    @@ -120,7 +120,7 @@ plugin is disabled at runtime.

    Improve this Doc - View Source + View Source

    OnEnable()

    @@ -163,7 +163,7 @@ When a plugin is disabled at startup, neither this nor Init will be called until Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.IEnhancedBeatSaberPlugin.html b/api/IPA.IEnhancedBeatSaberPlugin.html index 8050048a..5076eecb 100644 --- a/api/IPA.IEnhancedBeatSaberPlugin.html +++ b/api/IPA.IEnhancedBeatSaberPlugin.html @@ -149,7 +149,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.IGenericEnhancedPlugin.html b/api/IPA.IGenericEnhancedPlugin.html index 3b777246..995cef4f 100644 --- a/api/IPA.IGenericEnhancedPlugin.html +++ b/api/IPA.IGenericEnhancedPlugin.html @@ -99,7 +99,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -136,7 +136,7 @@ string[] Filter { get; } Improve this Doc - View Source + View Source

    OnLateUpdate()

    @@ -174,7 +174,7 @@ string[] Filter { get; } Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.Features.Feature.html b/api/IPA.Loader.Features.Feature.html index 139c1175..d40671c9 100644 --- a/api/IPA.Loader.Features.Feature.html +++ b/api/IPA.Loader.Features.Feature.html @@ -131,7 +131,7 @@ Improve this Doc - View Source + View Source

    InvalidMessage

    @@ -164,7 +164,7 @@ This should also be set whenever either Improve this Doc - View Source + View Source

    StoreOnPlugin

    @@ -198,7 +198,7 @@ This should also be set whenever either Improve this Doc - View Source + View Source

    AfterInit(PluginLoader.PluginInfo)

    @@ -232,7 +232,7 @@ This should also be set whenever either Improve this Doc - View Source + View Source

    AfterInit(PluginLoader.PluginInfo, IBeatSaberPlugin)

    @@ -272,7 +272,7 @@ This should also be set whenever either Improve this Doc - View Source + View Source

    BeforeInit(PluginLoader.PluginInfo)

    @@ -322,7 +322,7 @@ This should also be set whenever either Improve this Doc - View Source + View Source

    BeforeLoad(PluginLoader.PluginMetadata)

    @@ -376,7 +376,7 @@ Any features it defines, for example, will still be loaded.

    Improve this Doc - View Source + View Source

    Evaluate()

    @@ -409,7 +409,7 @@ Any features it defines, for example, will still be loaded.

    Improve this Doc - View Source + View Source

    Initialize(PluginLoader.PluginMetadata, String[])

    @@ -470,7 +470,7 @@ Any features it defines, for example, will still be loaded.

    Improve this Doc - View Source + View Source

    RequireLoaded(PluginLoader.PluginMetadata)

    @@ -526,7 +526,7 @@ Any features it defines, for example, will still be loaded.

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginInitInjector.InjectParameter.html b/api/IPA.Loader.PluginInitInjector.InjectParameter.html index 37efeea9..21b4d0c4 100644 --- a/api/IPA.Loader.PluginInitInjector.InjectParameter.html +++ b/api/IPA.Loader.PluginInitInjector.InjectParameter.html @@ -165,7 +165,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginInitInjector.html b/api/IPA.Loader.PluginInitInjector.html index 09d79625..d6386671 100644 --- a/api/IPA.Loader.PluginInitInjector.html +++ b/api/IPA.Loader.PluginInitInjector.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    AddInjector(Type, PluginInitInjector.InjectParameter)

    @@ -174,7 +174,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginLoader.PluginInfo.html b/api/IPA.Loader.PluginLoader.PluginInfo.html index 3756db46..31e69811 100644 --- a/api/IPA.Loader.PluginLoader.PluginInfo.html +++ b/api/IPA.Loader.PluginLoader.PluginInfo.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    Metadata

    @@ -182,7 +182,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginLoader.PluginMetadata.html b/api/IPA.Loader.PluginLoader.PluginMetadata.html index 34223cb1..b3d6eaad 100644 --- a/api/IPA.Loader.PluginLoader.PluginMetadata.html +++ b/api/IPA.Loader.PluginLoader.PluginMetadata.html @@ -125,7 +125,7 @@ Improve this Doc - View Source + View Source

    Assembly

    @@ -157,7 +157,7 @@ Improve this Doc - View Source + View Source

    Features

    @@ -189,7 +189,7 @@ Improve this Doc - View Source + View Source

    File

    @@ -221,7 +221,7 @@ Improve this Doc - View Source + View Source

    Id

    @@ -253,7 +253,7 @@ Improve this Doc - View Source + View Source

    IsBare

    @@ -285,7 +285,7 @@ Improve this Doc - View Source + View Source

    Name

    @@ -317,7 +317,7 @@ Improve this Doc - View Source + View Source

    PluginType

    @@ -349,7 +349,7 @@ Improve this Doc - View Source + View Source

    Version

    @@ -383,7 +383,7 @@ Improve this Doc - View Source + View Source

    ToString()

    @@ -439,7 +439,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginLoader.html b/api/IPA.Loader.PluginLoader.html index dec25d94..357e6438 100644 --- a/api/IPA.Loader.PluginLoader.html +++ b/api/IPA.Loader.PluginLoader.html @@ -148,7 +148,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginManager.PluginDisableDelegate.html b/api/IPA.Loader.PluginManager.PluginDisableDelegate.html index e1a2b087..cb8acfd7 100644 --- a/api/IPA.Loader.PluginManager.PluginDisableDelegate.html +++ b/api/IPA.Loader.PluginManager.PluginDisableDelegate.html @@ -143,7 +143,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginManager.PluginEnableDelegate.html b/api/IPA.Loader.PluginManager.PluginEnableDelegate.html index f55e8df2..7872bc37 100644 --- a/api/IPA.Loader.PluginManager.PluginEnableDelegate.html +++ b/api/IPA.Loader.PluginManager.PluginEnableDelegate.html @@ -143,7 +143,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Loader.PluginManager.html b/api/IPA.Loader.PluginManager.html index 8952368a..a462e69e 100644 --- a/api/IPA.Loader.PluginManager.html +++ b/api/IPA.Loader.PluginManager.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    AllPlugins

    @@ -160,7 +160,7 @@ Improve this Doc - View Source + View Source

    DisabledPlugins

    @@ -192,7 +192,7 @@ Improve this Doc - View Source + View Source

    Plugins

    @@ -227,7 +227,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    DisablePlugin(PluginLoader.PluginInfo)

    @@ -277,7 +277,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    DisablePlugin(String)

    @@ -327,7 +327,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    EnablePlugin(PluginLoader.PluginMetadata)

    @@ -377,7 +377,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    EnablePlugin(String)

    @@ -427,7 +427,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    GetDisabledPlugin(String)

    @@ -477,7 +477,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    GetDisabledPluginFromId(String)

    @@ -527,7 +527,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    GetPlugin(String)

    @@ -577,7 +577,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    GetPluginFromId(String)

    @@ -627,7 +627,7 @@ public static IEnumerable<IPlugin> Plugins { get; } Improve this Doc - View Source + View Source

    GetPluginFromModSaberName(String)

    @@ -678,7 +678,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc - View Source + View Source

    InfoFromMetadata(PluginLoader.PluginMetadata)

    @@ -728,7 +728,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc - View Source + View Source

    IsDisabled(PluginLoader.PluginMetadata)

    @@ -778,7 +778,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc - View Source + View Source

    IsEnabled(PluginLoader.PluginMetadata)

    @@ -830,7 +830,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc - View Source + View Source

    PluginDisabled

    Called whenever a plugin is disabled.

    @@ -860,7 +860,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc - View Source + View Source

    PluginEnabled

    Called whenever a plugin is enabled.

    @@ -896,7 +896,7 @@ public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name)Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.LogPrinter.html b/api/IPA.Logging.LogPrinter.html index 6d4e7359..d40c7e4b 100644 --- a/api/IPA.Logging.LogPrinter.html +++ b/api/IPA.Logging.LogPrinter.html @@ -131,7 +131,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -165,7 +165,7 @@ Improve this Doc - View Source + View Source

    EndPrint()

    @@ -182,7 +182,7 @@ Use this to dispose file handles and the like.

    Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -234,7 +234,7 @@ Use this to dispose file handles and the like.

    Improve this Doc - View Source + View Source

    StartPrint()

    @@ -273,7 +273,7 @@ Use this to create file handles and the like.

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Logger.Level.html b/api/IPA.Logging.Logger.Level.html index 0d60ba16..1a40f7e8 100644 --- a/api/IPA.Logging.Logger.Level.html +++ b/api/IPA.Logging.Logger.Level.html @@ -171,7 +171,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Logger.LogLevel.html b/api/IPA.Logging.Logger.LogLevel.html index 76106ae1..57058119 100644 --- a/api/IPA.Logging.Logger.LogLevel.html +++ b/api/IPA.Logging.Logger.LogLevel.html @@ -207,7 +207,7 @@ public enum LogLevel : byte Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Logger.html b/api/IPA.Logging.Logger.html index 7e2df3d0..2e798116 100644 --- a/api/IPA.Logging.Logger.html +++ b/api/IPA.Logging.Logger.html @@ -129,7 +129,7 @@ Improve this Doc - View Source + View Source

    LogFormat

    @@ -163,7 +163,7 @@ Improve this Doc - View Source + View Source

    Critical(Exception)

    @@ -202,7 +202,7 @@ Equivalent to Log(Level.Critical, e);

    Improve this Doc - View Source + View Source

    Critical(String)

    @@ -241,7 +241,7 @@ Equivalent to Log(Level.Critical, message);

    Improve this Doc - View Source + View Source

    Debug(Exception)

    @@ -280,7 +280,7 @@ Equivalent to Log(Level.Debug, e);

    Improve this Doc - View Source + View Source

    Debug(String)

    @@ -319,7 +319,7 @@ Equivalent to Log(Level.Debug, message);

    Improve this Doc - View Source + View Source

    Error(Exception)

    @@ -358,7 +358,7 @@ Equivalent to Log(Level.Error, e);

    Improve this Doc - View Source + View Source

    Error(String)

    @@ -397,7 +397,7 @@ Equivalent to Log(Level.Error, message);

    Improve this Doc - View Source + View Source

    Info(Exception)

    @@ -436,7 +436,7 @@ Equivalent to Log(Level.Info, e);

    Improve this Doc - View Source + View Source

    Info(String)

    @@ -475,7 +475,7 @@ Equivalent to Log(Level.Info, message);

    Improve this Doc - View Source + View Source

    Log(Logger.Level, Exception)

    @@ -515,7 +515,7 @@ Equivalent to Log(Level.Info, message);

    Improve this Doc - View Source + View Source

    Log(Logger.Level, String)

    @@ -555,7 +555,7 @@ Equivalent to Log(Level.Info, message);

    Improve this Doc - View Source + View Source

    Notice(Exception)

    @@ -594,7 +594,7 @@ Equivalent to Log(Level.Notice, e);

    Improve this Doc - View Source + View Source

    Notice(String)

    @@ -633,7 +633,7 @@ Equivalent to Log(Level.Notice, message);

    Improve this Doc - View Source + View Source

    Trace(Exception)

    @@ -672,7 +672,7 @@ Equivalent to Log(Level.Trace, e);

    Improve this Doc - View Source + View Source

    Trace(String)

    @@ -711,7 +711,7 @@ Equivalent to Log(Level.Trace, message);

    Improve this Doc - View Source + View Source

    Warn(Exception)

    @@ -750,7 +750,7 @@ Equivalent to Log(Level.Warning, e);

    Improve this Doc - View Source + View Source

    Warn(String)

    @@ -814,7 +814,7 @@ Equivalent to Log(Level.Warning, message);

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.LoggerExtensions.html b/api/IPA.Logging.LoggerExtensions.html index 668eaf8c..75281f90 100644 --- a/api/IPA.Logging.LoggerExtensions.html +++ b/api/IPA.Logging.LoggerExtensions.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    GetChildLogger(Logger, String)

    @@ -190,7 +190,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.ColoredConsolePrinter.html b/api/IPA.Logging.Printers.ColoredConsolePrinter.html index 9e321a90..bc2b1d8c 100644 --- a/api/IPA.Logging.Printers.ColoredConsolePrinter.html +++ b/api/IPA.Logging.Printers.ColoredConsolePrinter.html @@ -135,7 +135,7 @@ Improve this Doc - View Source + View Source

    Color

    @@ -167,7 +167,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -203,7 +203,7 @@ Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -279,7 +279,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.ColorlessConsolePrinter.html b/api/IPA.Logging.Printers.ColorlessConsolePrinter.html index 791f1d80..a005bf89 100644 --- a/api/IPA.Logging.Printers.ColorlessConsolePrinter.html +++ b/api/IPA.Logging.Printers.ColorlessConsolePrinter.html @@ -135,7 +135,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -171,7 +171,7 @@ Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -247,7 +247,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.GZFilePrinter.html b/api/IPA.Logging.Printers.GZFilePrinter.html index 36d77af2..9b139ac4 100644 --- a/api/IPA.Logging.Printers.GZFilePrinter.html +++ b/api/IPA.Logging.Printers.GZFilePrinter.html @@ -142,7 +142,7 @@ Improve this Doc - View Source + View Source

    FileWriter

    The StreamWriter that writes to the GZip file.

    @@ -175,7 +175,7 @@ Improve this Doc - View Source + View Source

    Dispose()

    @@ -190,7 +190,7 @@ Improve this Doc - View Source + View Source

    Dispose(Boolean)

    @@ -224,7 +224,7 @@ Improve this Doc - View Source + View Source

    EndPrint()

    @@ -242,7 +242,7 @@ Improve this Doc - View Source + View Source

    GetFileInfo()

    @@ -274,7 +274,7 @@ Improve this Doc - View Source + View Source

    StartPrint()

    @@ -318,7 +318,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.GlobalLogFilePrinter.html b/api/IPA.Logging.Printers.GlobalLogFilePrinter.html index e73fa5e5..80eda2bf 100644 --- a/api/IPA.Logging.Printers.GlobalLogFilePrinter.html +++ b/api/IPA.Logging.Printers.GlobalLogFilePrinter.html @@ -149,7 +149,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -185,7 +185,7 @@ Improve this Doc - View Source + View Source

    GetFileInfo()

    @@ -219,7 +219,7 @@ Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -299,7 +299,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.PluginLogFilePrinter.html b/api/IPA.Logging.Printers.PluginLogFilePrinter.html index 1256e6fe..ad5a74d2 100644 --- a/api/IPA.Logging.Printers.PluginLogFilePrinter.html +++ b/api/IPA.Logging.Printers.PluginLogFilePrinter.html @@ -149,7 +149,7 @@ Improve this Doc - View Source + View Source

    PluginLogFilePrinter(String)

    @@ -185,7 +185,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -221,7 +221,7 @@ Improve this Doc - View Source + View Source

    GetFileInfo()

    @@ -255,7 +255,7 @@ Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -335,7 +335,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.Printers.PluginSubLogPrinter.html b/api/IPA.Logging.Printers.PluginSubLogPrinter.html index 5fa7b8b7..6003450f 100644 --- a/api/IPA.Logging.Printers.PluginSubLogPrinter.html +++ b/api/IPA.Logging.Printers.PluginSubLogPrinter.html @@ -149,7 +149,7 @@ Improve this Doc - View Source + View Source

    PluginSubLogPrinter(String, String)

    @@ -191,7 +191,7 @@ Improve this Doc - View Source + View Source

    Filter

    @@ -227,7 +227,7 @@ Improve this Doc - View Source + View Source

    GetFileInfo()

    @@ -261,7 +261,7 @@ Improve this Doc - View Source + View Source

    Print(Logger.Level, DateTime, String, String)

    @@ -341,7 +341,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Logging.StandardLogger.html b/api/IPA.Logging.StandardLogger.html index d5bc5eaa..2bbd7796 100644 --- a/api/IPA.Logging.StandardLogger.html +++ b/api/IPA.Logging.StandardLogger.html @@ -180,7 +180,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc - View Source + View Source

    ConsoleWriter

    @@ -212,7 +212,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc - View Source + View Source

    PrintFilter

    @@ -246,7 +246,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc - View Source + View Source

    AddPrinter(LogPrinter)

    @@ -280,7 +280,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc - View Source + View Source

    Debug(String)

    @@ -320,7 +320,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc - View Source + View Source

    Log(Logger.Level, String)

    @@ -387,7 +387,7 @@ The modification of printers on a parent are reflected down the chain.

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Old.IEnhancedPlugin.html b/api/IPA.Old.IEnhancedPlugin.html index 56868a21..d6e6474c 100644 --- a/api/IPA.Old.IEnhancedPlugin.html +++ b/api/IPA.Old.IEnhancedPlugin.html @@ -127,7 +127,7 @@ public interface IEnhancedPlugin : IPlugin Improve this Doc - View Source + View Source

    Filter

    @@ -163,7 +163,7 @@ public interface IEnhancedPlugin : IPlugin Improve this Doc - View Source + View Source

    OnLateUpdate()

    @@ -201,7 +201,7 @@ public interface IEnhancedPlugin : IPlugin Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Old.IPlugin.html b/api/IPA.Old.IPlugin.html index 73465dd3..40032ee4 100644 --- a/api/IPA.Old.IPlugin.html +++ b/api/IPA.Old.IPlugin.html @@ -101,7 +101,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    Name

    @@ -132,7 +132,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    Version

    @@ -165,7 +165,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnApplicationQuit()

    @@ -181,7 +181,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnApplicationStart()

    @@ -197,7 +197,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnFixedUpdate()

    @@ -213,7 +213,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnLevelWasInitialized(Int32)

    @@ -246,7 +246,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnLevelWasLoaded(Int32)

    @@ -279,7 +279,7 @@ public interface IPlugin Improve this Doc - View Source + View Source

    OnUpdate()

    @@ -317,7 +317,7 @@ public interface IPlugin Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.AlmostVersion.StoredAs.html b/api/IPA.Utilities.AlmostVersion.StoredAs.html index 0c0c4f00..5d322a55 100644 --- a/api/IPA.Utilities.AlmostVersion.StoredAs.html +++ b/api/IPA.Utilities.AlmostVersion.StoredAs.html @@ -141,7 +141,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.AlmostVersion.html b/api/IPA.Utilities.AlmostVersion.html index cf838563..96596b15 100644 --- a/api/IPA.Utilities.AlmostVersion.html +++ b/api/IPA.Utilities.AlmostVersion.html @@ -125,7 +125,7 @@ not a valid .

    Improve this Doc - View Source + View Source

    AlmostVersion(SemVer.Version)

    @@ -159,7 +159,7 @@ not a valid .

    Improve this Doc - View Source + View Source

    AlmostVersion(String)

    @@ -193,7 +193,7 @@ not a valid .

    Improve this Doc - View Source + View Source

    AlmostVersion(String, AlmostVersion)

    @@ -234,7 +234,7 @@ same way as the AlmostVe Improve this Doc - View Source + View Source

    AlmostVersion(String, AlmostVersion.StoredAs)

    @@ -277,7 +277,7 @@ the storage mode specified in Improve this Doc - View Source + View Source

    SemverValue

    @@ -309,7 +309,7 @@ the storage mode specified in Improve this Doc - View Source + View Source

    StorageMode

    @@ -341,7 +341,7 @@ the storage mode specified in Improve this Doc - View Source + View Source

    StringValue

    @@ -375,7 +375,7 @@ the storage mode specified in Improve this Doc - View Source + View Source

    CompareTo(AlmostVersion)

    @@ -433,7 +433,7 @@ or Improve this Doc - View Source + View Source

    CompareTo(SemVer.Version)

    @@ -491,7 +491,7 @@ be thrown.

    Improve this Doc - View Source + View Source

    Equals(Object)

    @@ -550,7 +550,7 @@ be thrown.

    Improve this Doc - View Source + View Source

    GetHashCode()

    @@ -588,7 +588,7 @@ be thrown.

    Improve this Doc - View Source + View Source

    ToString()

    @@ -629,7 +629,7 @@ stored as a , it is equivalent to calling Improve this Doc - View Source + View Source

    Equality(AlmostVersion, AlmostVersion)

    @@ -694,7 +694,7 @@ does not.

    Improve this Doc - View Source + View Source

    Implicit(AlmostVersion to SemVer.Version)

    @@ -748,7 +748,7 @@ If not applicable, returns null

    Improve this Doc - View Source + View Source

    Implicit(SemVer.Version to AlmostVersion)

    @@ -801,7 +801,7 @@ If not applicable, returns null

    Improve this Doc - View Source + View Source

    Inequality(AlmostVersion, AlmostVersion)

    @@ -890,7 +890,7 @@ If not applicable, returns null

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.BeatSaber.Release.html b/api/IPA.Utilities.BeatSaber.Release.html index 7aa3fd84..8f30b978 100644 --- a/api/IPA.Utilities.BeatSaber.Release.html +++ b/api/IPA.Utilities.BeatSaber.Release.html @@ -141,7 +141,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.BeatSaber.html b/api/IPA.Utilities.BeatSaber.html index b1327152..eb7cb0ff 100644 --- a/api/IPA.Utilities.BeatSaber.html +++ b/api/IPA.Utilities.BeatSaber.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    GameVersion

    @@ -160,7 +160,7 @@ Improve this Doc - View Source + View Source

    InstallPath

    @@ -192,7 +192,7 @@ Improve this Doc - View Source + View Source

    LibraryPath

    @@ -224,7 +224,7 @@ Improve this Doc - View Source + View Source

    NativeLibraryPath

    @@ -256,7 +256,7 @@ Improve this Doc - View Source + View Source

    PluginsPath

    @@ -288,7 +288,7 @@ Improve this Doc - View Source + View Source

    ReleaseType

    @@ -320,7 +320,7 @@ Improve this Doc - View Source + View Source

    UserDataPath

    @@ -358,7 +358,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.CriticalSection.html b/api/IPA.Utilities.CriticalSection.html index ff6f24cf..5b9ff1b2 100644 --- a/api/IPA.Utilities.CriticalSection.html +++ b/api/IPA.Utilities.CriticalSection.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    EnterExecuteSection()

    @@ -144,7 +144,7 @@ Improve this Doc - View Source + View Source

    EnterGCSection()

    @@ -160,7 +160,7 @@ Improve this Doc - View Source + View Source

    ExitExecuteSection()

    @@ -176,7 +176,7 @@ Improve this Doc - View Source + View Source

    ExitGCSection()

    @@ -198,7 +198,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.Extensions.html b/api/IPA.Utilities.Extensions.html index aa25b35f..3cf028fd 100644 --- a/api/IPA.Utilities.Extensions.html +++ b/api/IPA.Utilities.Extensions.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    GetDefault(Type)

    @@ -178,7 +178,7 @@ Improve this Doc - View Source + View Source

    Unwrap(Nullable<Boolean>)

    @@ -234,7 +234,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.Ref-1.html b/api/IPA.Utilities.Ref-1.html index d89e9672..90cc8ca0 100644 --- a/api/IPA.Utilities.Ref-1.html +++ b/api/IPA.Utilities.Ref-1.html @@ -149,7 +149,7 @@ Improve this Doc - View Source + View Source

    Ref(T)

    @@ -185,7 +185,7 @@ Improve this Doc - View Source + View Source

    Error

    @@ -217,7 +217,7 @@ Improve this Doc - View Source + View Source

    Value

    @@ -251,7 +251,7 @@ Improve this Doc - View Source + View Source

    CompareTo(T)

    @@ -301,7 +301,7 @@ Improve this Doc - View Source + View Source

    CompareTo(Ref<T>)

    @@ -351,7 +351,7 @@ Improve this Doc - View Source + View Source

    Verify()

    @@ -369,7 +369,7 @@ Improve this Doc - View Source + View Source

    Implicit(T to Ref<T>)

    @@ -419,7 +419,7 @@ Improve this Doc - View Source + View Source

    Implicit(Ref<T> to T)

    @@ -498,7 +498,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.Ref.html b/api/IPA.Utilities.Ref.html index 89a453fa..797008fe 100644 --- a/api/IPA.Utilities.Ref.html +++ b/api/IPA.Utilities.Ref.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    Create<T>(T)

    @@ -200,7 +200,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.ReflectionUtil.html b/api/IPA.Utilities.ReflectionUtil.html index 7df2d0af..761dd570 100644 --- a/api/IPA.Utilities.ReflectionUtil.html +++ b/api/IPA.Utilities.ReflectionUtil.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    CallNonStaticMethod(String, String, String, Type[], Object[])

    @@ -206,7 +206,7 @@ Improve this Doc - View Source + View Source

    CallNonStaticMethod(Type, String, Type[], Object[])

    @@ -274,7 +274,7 @@ Improve this Doc - View Source + View Source

    CallNonStaticMethod<T>(Type, String, Type[], Object[])

    @@ -362,7 +362,7 @@ Improve this Doc - View Source + View Source

    CopyComponent(Component, Type, GameObject, Type)

    @@ -430,7 +430,7 @@ Improve this Doc - View Source + View Source

    CopyComponent<T>(Component, GameObject, Type)

    @@ -513,7 +513,7 @@ Improve this Doc - View Source + View Source

    GetPrivateField<T>(Object, String)

    @@ -585,7 +585,7 @@ Improve this Doc - View Source + View Source

    InvokePrivateMethod(Object, String, Object[])

    @@ -647,7 +647,7 @@ Improve this Doc - View Source + View Source

    InvokePrivateMethod<T>(Object, String, Object[])

    @@ -725,7 +725,7 @@ Improve this Doc - View Source + View Source

    SetPrivateField(Object, String, Object)

    @@ -771,7 +771,7 @@ Improve this Doc - View Source + View Source

    SetPrivateProperty(Object, String, Object)

    @@ -823,7 +823,7 @@ Improve this Doc
  • - View Source + View Source
  • diff --git a/api/IPA.Utilities.Utils.html b/api/IPA.Utilities.Utils.html index 75117b62..a9c2e039 100644 --- a/api/IPA.Utilities.Utils.html +++ b/api/IPA.Utilities.Utils.html @@ -128,7 +128,7 @@ Improve this Doc - View Source + View Source

    CanUseDateTimeNowSafely

    @@ -162,7 +162,7 @@ Improve this Doc - View Source + View Source

    ByteArrayToString(Byte[])

    @@ -212,7 +212,7 @@ Improve this Doc - View Source + View Source

    CopyAll(DirectoryInfo, DirectoryInfo, String, Func<Exception, FileInfo, Boolean>)

    @@ -264,7 +264,7 @@ Improve this Doc - View Source + View Source

    CurrentTime()

    @@ -298,7 +298,7 @@ the value will be greater than the previous result. Not suitable for timing.

    Improve this Doc - View Source + View Source

    GetRelativePath(String, String)

    @@ -354,7 +354,7 @@ the value will be greater than the previous result. Not suitable for timing.

    Improve this Doc - View Source + View Source

    StringToByteArray(String)

    @@ -404,7 +404,7 @@ the value will be greater than the previous result. Not suitable for timing.

    Improve this Doc - View Source + View Source

    UnsafeCompare(Byte[], Byte[])

    @@ -460,7 +460,7 @@ the value will be greater than the previous result. Not suitable for timing.

    Improve this Doc - View Source + View Source

    VersionCompareNoPrerelease(SemVer.Version, SemVer.Version)

    @@ -522,7 +522,7 @@ the value will be greater than the previous result. Not suitable for timing.

    Improve this Doc
  • - View Source + View Source
  • diff --git a/api/index.html b/api/index.html index edf59297..d766ce7b 100644 --- a/api/index.html +++ b/api/index.html @@ -89,7 +89,7 @@ Select a namespace and a class on the left to get started.

    diff --git a/articles/command-line.html b/articles/command-line.html index a87e16bf..ff6814a4 100644 --- a/articles/command-line.html +++ b/articles/command-line.html @@ -180,7 +180,7 @@ avaliable. If there is, it will be downloaded and installed on the next run. Thi diff --git a/articles/index.html b/articles/index.html index b20d1416..f6860132 100644 --- a/articles/index.html +++ b/articles/index.html @@ -88,7 +88,7 @@ diff --git a/articles/start-dev.html b/articles/start-dev.html index 04ae0c9a..26a04640 100644 --- a/articles/start-dev.html +++ b/articles/start-dev.html @@ -87,7 +87,7 @@ diff --git a/articles/start-user.html b/articles/start-user.html index 65e1a961..6a4698e6 100644 --- a/articles/start-user.html +++ b/articles/start-user.html @@ -130,7 +130,7 @@ the game directory, though your plugins will be moved to a different folder when diff --git a/index.html b/index.html index eed87e89..8ae82664 100644 --- a/index.html +++ b/index.html @@ -156,7 +156,7 @@ should reference the copy in there. When building for Release, it just uses the diff --git a/index.json b/index.json index 7df3768b..8bc9254d 100644 --- a/index.json +++ b/index.json @@ -1,83 +1,83 @@ { - "api/IPA.Utilities.AlmostVersion.html": { - "href": "api/IPA.Utilities.AlmostVersion.html", - "title": "Class AlmostVersion", - "keywords": "Class AlmostVersion A type that wraps so that the string of the version is stored when the string is not a valid . Inheritance Object AlmostVersion Implements IComparable < AlmostVersion > IComparable < SemVer.Version > Inherited Members Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public class AlmostVersion : IComparable, IComparable Constructors | Improve this Doc View Source AlmostVersion(SemVer.Version) Creates an AlmostVersion from the provided in ver . Declaration public AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to store | Improve this Doc View Source AlmostVersion(String) Creates a new AlmostVersion with the version string provided in vertext . Declaration public AlmostVersion(string vertext) Parameters Type Name Description String vertext the version string to store | Improve this Doc View Source AlmostVersion(String, AlmostVersion) Creates a new AlmostVersion from the version string in vertext stored the same way as the AlmostVersion passed in copyMode . Declaration public AlmostVersion(string vertext, AlmostVersion copyMode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion copyMode an AlmostVersion to copy the storage mode of | Improve this Doc View Source AlmostVersion(String, AlmostVersion.StoredAs) Creates an AlmostVersion from the version string in vertext stored using the storage mode specified in mode . Declaration public AlmostVersion(string vertext, AlmostVersion.StoredAs mode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion.StoredAs mode the storage mode to store the version in Properties | Improve this Doc View Source SemverValue The value of the AlmostVersion if it was stored as a . Declaration public SemVer.Version SemverValue { get; } Property Value Type Description SemVer.Version the stored value as a , or null if not stored as a version. | Improve this Doc View Source StorageMode The way the value is stored, whether it be as a or a String . Declaration public AlmostVersion.StoredAs StorageMode { get; } Property Value Type Description AlmostVersion.StoredAs the storage mode used to store this value | Improve this Doc View Source StringValue The value of the AlmostVersion if it was stored as a String . Declaration public string StringValue { get; } Property Value Type Description String the stored value as a String , or null if not stored as a string. Methods | Improve this Doc View Source CompareTo(AlmostVersion) Compares langword_csharp_this to the AlmostVersion in other using or CompareTo(String) , depending on the current store. Declaration public int CompareTo(AlmostVersion other) Parameters Type Name Description AlmostVersion other the AlmostVersion to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage methods of the two objects must be the same, or this will throw an InvalidOperationException . See Also CompareTo(SemVer.Version) | Improve this Doc View Source CompareTo(SemVer.Version) Compares langword_csharp_this to the in other using . Declaration public int CompareTo(SemVer.Version other) Parameters Type Name Description SemVer.Version other the to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage method of langword_csharp_this must be SemVer , else an InvalidOperationException will be thrown. See Also CompareTo(AlmostVersion) | Improve this Doc View Source Equals(Object) Performs a strict equality check between langword_csharp_this and obj . Declaration public override bool Equals(object obj) Parameters Type Name Description Object obj the object to compare to Returns Type Description Boolean true if they are equal, false otherwise Overrides Object.Equals(Object) Remarks This may return false where Equality(AlmostVersion, AlmostVersion) returns true See Also Equals ( Object ) | Improve this Doc View Source GetHashCode() Default generated hash code function generated by VS. Declaration public override int GetHashCode() Returns Type Description Int32 a value unique to each object, except those that are considered equal by Equals(Object) Overrides Object.GetHashCode() See Also GetHashCode () | Improve this Doc View Source ToString() Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is stored as a , it is equivalent to calling . Declaration public override string ToString() Returns Type Description String a string representation of the current version Overrides Object.ToString() See Also ToString () Operators | Improve this Doc View Source Equality(AlmostVersion, AlmostVersion) Compares two versions, only taking into account the numeric part of the version if they are stored as sealed , or strict equality if they are stored as String s. Declaration public static bool operator ==(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are mostly equal, false otherwise Remarks This is a looser equality than Equals(Object) , meaning that this may return true where Equals(Object) does not. See Also Equals(Object) | Improve this Doc View Source Implicit(AlmostVersion to SemVer.Version) Implicitly converts an AlmostVersion to , if applicable, using SemverValue . If not applicable, returns null Declaration public static implicit operator SemVer.Version(AlmostVersion av) Parameters Type Name Description AlmostVersion av the AlmostVersion to convert to a Returns Type Description SemVer.Version See Also SemverValue | Improve this Doc View Source Implicit(SemVer.Version to AlmostVersion) Implicitly converts a to AlmostVersion using AlmostVersion(SemVer.Version) . Declaration public static implicit operator AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to convert Returns Type Description AlmostVersion See Also AlmostVersion(SemVer.Version) | Improve this Doc View Source Inequality(AlmostVersion, AlmostVersion) The opposite of Equality(AlmostVersion, AlmostVersion) . Equivalent to !(l == r) . Declaration public static bool operator !=(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are not mostly equal, false otherwise See Also Equality(AlmostVersion, AlmostVersion) Implements System.IComparable System.IComparable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Logging.Logger.html": { + "href": "api/IPA.Logging.Logger.html", + "title": "Class Logger", + "keywords": "Class Logger The logger base class. Provides the format for console logs. Inheritance Object Logger StandardLogger Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public abstract class Logger Properties | Improve this Doc View Source LogFormat The standard format for log messages. Declaration public static string LogFormat { get; protected set; } Property Value Type Description String the format for the standard loggers to print in Methods | Improve this Doc View Source Critical(Exception) Sends an exception as a critical message. Equivalent to Log(Level.Critical, e); Declaration public virtual void Critical(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Critical(String) Sends a critical message. Equivalent to Log(Level.Critical, message); Declaration public virtual void Critical(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Debug(Exception) Sends an exception as a debug message. Equivalent to Log(Level.Debug, e); Declaration public virtual void Debug(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Debug(String) Sends a debug message. Equivalent to Log(Level.Debug, message); Declaration public virtual void Debug(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Error(Exception) Sends an exception as an error message. Equivalent to Log(Level.Error, e); Declaration public virtual void Error(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Error(String) Sends an error message. Equivalent to Log(Level.Error, message); Declaration public virtual void Error(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Info(Exception) Sends an exception as an info message. Equivalent to Log(Level.Info, e); Declaration public virtual void Info(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Info(String) Sends an info message. Equivalent to Log(Level.Info, message); Declaration public virtual void Info(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Log(Logger.Level, Exception) A basic log function taking an exception to log. Declaration public virtual void Log(Logger.Level level, Exception e) Parameters Type Name Description Logger.Level level the level of the message Exception e the exception to log | Improve this Doc View Source Log(Logger.Level, String) A basic log function. Declaration public abstract void Log(Logger.Level level, string message) Parameters Type Name Description Logger.Level level the level of the message String message the message to log | Improve this Doc View Source Notice(Exception) Sends an exception as a notice message. Equivalent to Log(Level.Notice, e); Declaration public virtual void Notice(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Notice(String) Sends a notice message. Equivalent to Log(Level.Notice, message); Declaration public virtual void Notice(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Trace(Exception) Sends an exception as a trace message. Equivalent to Log(Level.Trace, e); Declaration public virtual void Trace(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Trace(String) Sends a trace message. Equivalent to Log(Level.Trace, message); Declaration public virtual void Trace(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Warn(Exception) Sends an exception as a warning message. Equivalent to Log(Level.Warning, e); Declaration public virtual void Warn(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Warn(String) Sends a warning message. Equivalent to Log(Level.Warning, message); Declaration public virtual void Warn(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) Extension Methods LoggerExtensions.GetChildLogger(Logger, String) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Old.IPlugin.html": { - "href": "api/IPA.Old.IPlugin.html", - "title": "Interface IPlugin", - "keywords": "Interface IPlugin Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. Namespace : IPA.Old Assembly : IPA.Loader.dll Syntax [Obsolete(\"When building plugins for Beat Saber, use IBeatSaberPlugin\")] public interface IPlugin Properties | Improve this Doc View Source Name Gets the name of the plugin. Declaration string Name { get; } Property Value Type Description String | Improve this Doc View Source Version Gets the version of the plugin. Declaration string Version { get; } Property Value Type Description String Methods | Improve this Doc View Source OnApplicationQuit() Gets invoked when the application is closed. Declaration void OnApplicationQuit() | Improve this Doc View Source OnApplicationStart() Gets invoked when the application is started. Declaration void OnApplicationStart() | Improve this Doc View Source OnFixedUpdate() Gets invoked on ever physics update. Declaration void OnFixedUpdate() | Improve this Doc View Source OnLevelWasInitialized(Int32) Gets invoked after the first update cycle after a level was loaded. Declaration void OnLevelWasInitialized(int level) Parameters Type Name Description Int32 level | Improve this Doc View Source OnLevelWasLoaded(Int32) Gets invoked whenever a level is loaded. Declaration void OnLevelWasLoaded(int level) Parameters Type Name Description Int32 level | Improve this Doc View Source OnUpdate() Gets invoked on every graphic update. Declaration void OnUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Loader.PluginManager.PluginEnableDelegate.html": { + "href": "api/IPA.Loader.PluginManager.PluginEnableDelegate.html", + "title": "Delegate PluginManager.PluginEnableDelegate", + "keywords": "Delegate PluginManager.PluginEnableDelegate An invoker for the PluginEnabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginEnableDelegate(PluginLoader.PluginInfo plugin, bool needsRestart); Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was enabled Boolean needsRestart whether it needs a restart to take effect Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Old.IEnhancedPlugin.html": { - "href": "api/IPA.Old.IEnhancedPlugin.html", - "title": "Interface IEnhancedPlugin", - "keywords": "Interface IEnhancedPlugin An enhanced version of the standard IPA plugin. Inherited Members IPlugin.Name IPlugin.Version IPlugin.OnApplicationStart() IPlugin.OnApplicationQuit() IPlugin.OnLevelWasLoaded(Int32) IPlugin.OnLevelWasInitialized(Int32) IPlugin.OnUpdate() IPlugin.OnFixedUpdate() Namespace : IPA.Old Assembly : IPA.Loader.dll Syntax [Obsolete(\"When building plugins for Beat Saber, use IEnhancedBeatSaberPlugin\")] public interface IEnhancedPlugin : IPlugin Properties | Improve this Doc View Source Filter Gets a list of executables this plugin should be executed on (without the file ending) Declaration string[] Filter { get; } Property Value Type Description String [] Examples { \"PlayClub\", \"PlayClubStudio\" } Methods | Improve this Doc View Source OnLateUpdate() Called after Update. Declaration void OnLateUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Loader.PluginManager.PluginDisableDelegate.html": { + "href": "api/IPA.Loader.PluginManager.PluginDisableDelegate.html", + "title": "Delegate PluginManager.PluginDisableDelegate", + "keywords": "Delegate PluginManager.PluginDisableDelegate An invoker for the PluginDisabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginDisableDelegate(PluginLoader.PluginMetadata plugin, bool needsRestart); Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin that was disabled Boolean needsRestart whether it needs a restart to take effect Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Logging.Printers.html": { - "href": "api/IPA.Logging.Printers.html", - "title": "", - "keywords": "Classes ColoredConsolePrinter Prints a pretty message to the console. ColorlessConsolePrinter A colorless version of ColoredConsolePrinter , that indiscriminantly prints to standard out. GlobalLogFilePrinter A printer for all messages to a unified log location. GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. PluginLogFilePrinter Prints log messages to the file specified by the name. PluginSubLogPrinter Prints log messages to the file specified by the name." + "api/IPA.Loader.PluginLoader.PluginInfo.html": { + "href": "api/IPA.Loader.PluginLoader.PluginInfo.html", + "title": "Class PluginLoader.PluginInfo", + "keywords": "Class PluginLoader.PluginInfo A container object for all the data relating to a plugin. Inheritance Object PluginLoader.PluginInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public class PluginInfo Properties | Improve this Doc View Source Metadata Metadata for the plugin. Declaration public PluginLoader.PluginMetadata Metadata { get; } Property Value Type Description PluginLoader.PluginMetadata the metadata for this plugin Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Logging.Printers.PluginSubLogPrinter.html": { - "href": "api/IPA.Logging.Printers.PluginSubLogPrinter.html", - "title": "Class PluginSubLogPrinter", - "keywords": "Class PluginSubLogPrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginSubLogPrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginSubLogPrinter(String, String) Creates a new printer with the given name. Declaration public PluginSubLogPrinter(string mainname, string name) Parameters Type Name Description String mainname the name of the main logger String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Loader.PluginInitInjector.html": { + "href": "api/IPA.Loader.PluginInitInjector.html", + "title": "Class PluginInitInjector", + "keywords": "Class PluginInitInjector The type that handles value injecting into a plugin's Init. Inheritance Object PluginInitInjector Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public static class PluginInitInjector Methods | Improve this Doc View Source AddInjector(Type, PluginInitInjector.InjectParameter) Adds an injector to be used when calling future plugins' Init methods. Declaration public static void AddInjector(Type type, PluginInitInjector.InjectParameter injector) Parameters Type Name Description Type type the type of the parameter. PluginInitInjector.InjectParameter injector the function to call for injection." }, - "api/IPA.Logging.Printers.GlobalLogFilePrinter.html": { - "href": "api/IPA.Logging.Printers.GlobalLogFilePrinter.html", - "title": "Class GlobalLogFilePrinter", - "keywords": "Class GlobalLogFilePrinter A printer for all messages to a unified log location. Inheritance Object LogPrinter GZFilePrinter GlobalLogFilePrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class GlobalLogFilePrinter : GZFilePrinter, IDisposable Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the target file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Config.ModPrefs.html": { + "href": "api/IPA.Config.ModPrefs.html", + "title": "Class ModPrefs", + "keywords": "Class ModPrefs Allows to get and set preferences for your mod. Inheritance Object ModPrefs Implements IModPrefs Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [Obsolete(\"Uses IniFile, which uses 16 bit system calls. Use BS Utils INI system for now.\")] public class ModPrefs : IModPrefs Constructors | Improve this Doc View Source ModPrefs(PluginLoader.PluginMetadata) Constructs a ModPrefs object for the provide plugin. Declaration public ModPrefs(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to get the preferences file for Methods | Improve this Doc View Source GetBool(String, String, Boolean, Boolean) Gets a bool from the ini. Declaration public static bool GetBool(string section, string name, bool defaultValue = false, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Boolean | Improve this Doc View Source GetFloat(String, String, Single, Boolean) Gets a float from the ini. Declaration public static float GetFloat(string section, string name, float defaultValue = 0F, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Single defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Single | Improve this Doc View Source GetInt(String, String, Int32, Boolean) Gets an int from the ini. Declaration public static int GetInt(string section, string name, int defaultValue = 0, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Int32 | Improve this Doc View Source GetString(String, String, String, Boolean) Gets a string from the ini. Declaration public static string GetString(string section, string name, string defaultValue = \"\", bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. String defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description String | Improve this Doc View Source HasKey(String, String) Checks whether or not a key exists in the ini. Declaration public static bool HasKey(string section, string name) Parameters Type Name Description String section Section of the key. String name Name of the key. Returns Type Description Boolean | Improve this Doc View Source SetBool(String, String, Boolean) Sets a bool in the ini. Declaration public static void SetBool(string section, string name, bool value) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean value Value that should be written. | Improve this Doc View Source SetFloat(String, String, Single) Sets a float in the ini. Declaration public static void SetFloat(string section, string name, float value) Parameters Type Name Description String section Section of the key. String name Name of the key. Single value Value that should be written. | Improve this Doc View Source SetInt(String, String, Int32) Sets an int in the ini. Declaration public static void SetInt(string section, string name, int value) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 value Value that should be written. | Improve this Doc View Source SetString(String, String, String) Sets a string in the ini. Declaration public static void SetString(string section, string name, string value) Parameters Type Name Description String section Section of the key. String name Name of the key. String value Value that should be written. Explicit Interface Implementations | Improve this Doc View Source IModPrefs.GetBool(String, String, Boolean, Boolean) Declaration bool IModPrefs.GetBool(string section, string name, bool defaultValue, bool autoSave) Parameters Type Name Description String section String name Boolean defaultValue Boolean autoSave Returns Type Description Boolean | Improve this Doc View Source IModPrefs.GetFloat(String, String, Single, Boolean) Declaration float IModPrefs.GetFloat(string section, string name, float defaultValue, bool autoSave) Parameters Type Name Description String section String name Single defaultValue Boolean autoSave Returns Type Description Single | Improve this Doc View Source IModPrefs.GetInt(String, String, Int32, Boolean) Declaration int IModPrefs.GetInt(string section, string name, int defaultValue, bool autoSave) Parameters Type Name Description String section String name Int32 defaultValue Boolean autoSave Returns Type Description Int32 | Improve this Doc View Source IModPrefs.GetString(String, String, String, Boolean) Declaration string IModPrefs.GetString(string section, string name, string defaultValue, bool autoSave) Parameters Type Name Description String section String name String defaultValue Boolean autoSave Returns Type Description String | Improve this Doc View Source IModPrefs.HasKey(String, String) Declaration bool IModPrefs.HasKey(string section, string name) Parameters Type Name Description String section String name Returns Type Description Boolean | Improve this Doc View Source IModPrefs.SetBool(String, String, Boolean) Declaration void IModPrefs.SetBool(string section, string name, bool value) Parameters Type Name Description String section String name Boolean value | Improve this Doc View Source IModPrefs.SetFloat(String, String, Single) Declaration void IModPrefs.SetFloat(string section, string name, float value) Parameters Type Name Description String section String name Single value | Improve this Doc View Source IModPrefs.SetInt(String, String, Int32) Declaration void IModPrefs.SetInt(string section, string name, int value) Parameters Type Name Description String section String name Int32 value | Improve this Doc View Source IModPrefs.SetString(String, String, String) Declaration void IModPrefs.SetString(string section, string name, string value) Parameters Type Name Description String section String name String value Implements IModPrefs Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "other_api/index.html": { - "href": "other_api/index.html", - "title": "Title1", - "keywords": "Title1" + "api/IPA.Config.Config.TypeAttribute.html": { + "href": "api/IPA.Config.Config.TypeAttribute.html", + "title": "Class Config.TypeAttribute", + "keywords": "Class Config.TypeAttribute Defines the type of the IConfigProvider Inheritance Object Attribute Config.TypeAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Class)] public class TypeAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source TypeAttribute(String) Constructs the attribute with a specified extension. Declaration public TypeAttribute(string ext) Parameters Type Name Description String ext the extension associated with this type, without the '.' Properties | Improve this Doc View Source Extension The extension associated with this type, without the '.' Declaration public string Extension { get; } Property Value Type Description String the extension to register the config provider as Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "articles/start-user.html": { - "href": "articles/start-user.html", - "title": "Installing BSIPA", - "keywords": "Installing BSIPA Note This guide assumes that you are starting completely fresh. Grab a release from the GitHub Releases page . Make sure to download BSIPA.zip , as ModList.zip contains the Beat Saber mod for showing your mods in-game, not the loader itself. Extract the zip into your game installation directory. There should now be a folder named IPA and a file named IPA.exe in the same folder as the game executable. For example, if you are installing BSIPA in Beat Saber, it might look like this after extraction: Run IPA.exe by double clicking it. A console window should pop up, and eventually, a gold message asking you to press a key will appear. Here is an example of a successful installation: Note In some cases, this may fail, something like this: In these cases, try dragging the game executable over IPA.exe . After installing, your game directory should look something like this: Note At this point it is recommended to run the game once before continuing, to ensure that things are installed correctly. The first run should create a UserData folder with Beat Saber IPA.json and Disabled Mods.json , as well as a Logs folder with several subfolders with their own files. If these are created, then the installation was very likely successful. Tip If you are not installing BSIPA on Beat Saber, you probably want to go to the config at UserData/Beat Saber IPA.json and set both of the following to false : { ... \"Updates\": { \"AutoUpdate\": false, \"AutoCheckUpdates\": false }, ... } From here, just place all of your plugins in the Plugins folder, and you're all set! Many plugins will come in a zip such that the root of the zip represents the game install directory, so all you may have to do is extract the plugin into the game installation folder. Thats really all you have to do! The installation should persist across game updates for as long as winhttp.dll is present in the game directory, though your plugins will be moved to a different folder when it does update so things don't break horribly." + "api/BSIPA_ModList.UI.ViewControllers.html": { + "href": "api/BSIPA_ModList.UI.ViewControllers.html", + "title": "", + "keywords": "Classes MarkdownView A UI component that renders CommonMark Markdown in-game." }, - "articles/start-dev.html": { - "href": "articles/start-dev.html", - "title": "Creating your own mod", - "keywords": "Creating your own mod" + "api/IPA.Logging.html": { + "href": "api/IPA.Logging.html", + "title": "", + "keywords": "Classes Logger The logger base class. Provides the format for console logs. LoggerExtensions A class providing extensions for various loggers. LogPrinter The log printer's base class. StandardLogger The default (and standard) Logger implementation. Enums Logger.Level An enum specifying the level of the message. Resembles Syslog. Logger.LogLevel An enum providing log level filters." }, - "other_api/config/schema.html": { - "href": "other_api/config/schema.html", - "title": "Configuration File Schema", - "keywords": "Configuration File Schema { \"definitions\": { \"Debug_\": { \"type\": \"object\", \"properties\": { \"ShowCallSource\": { \"type\": \"boolean\" }, \"ShowDebug\": { \"type\": \"boolean\" }, \"CondenseModLogs\": { \"type\": \"boolean\" }, \"ShowHandledErrorStackTraces\": { \"type\": \"boolean\" }, \"HideMessagesForPerformance\": { \"type\": \"boolean\" }, \"HideLogThreshold\": { \"type\": \"integer\" }, \"ShowTrace\": { \"type\": \"boolean\" } }, \"required\": [ \"ShowCallSource\", \"ShowDebug\", \"CondenseModLogs\", \"ShowHandledErrorStackTraces\", \"HideMessagesForPerformance\", \"HideLogThreshold\", \"ShowTrace\" ] }, \"Updates_\": { \"type\": \"object\", \"properties\": { \"AutoUpdate\": { \"type\": \"boolean\" }, \"AutoCheckUpdates\": { \"type\": \"boolean\" } }, \"required\": [ \"AutoUpdate\", \"AutoCheckUpdates\" ] } }, \"type\": \"object\", \"properties\": { \"Regenerate\": { \"type\": \"boolean\" }, \"Updates\": { \"$ref\": \"#/definitions/Updates_\" }, \"Debug\": { \"$ref\": \"#/definitions/Debug_\" }, \"YeetMods\": { \"type\": \"boolean\" }, \"LastGameVersion\": { \"type\": [ \"string\", \"null\" ] } }, \"required\": [ \"Regenerate\", \"Updates\", \"Debug\", \"YeetMods\" ] }" + "api/IPA.Logging.StandardLogger.html": { + "href": "api/IPA.Logging.StandardLogger.html", + "title": "Class StandardLogger", + "keywords": "Class StandardLogger The default (and standard) Logger implementation. Inheritance Object Logger StandardLogger Inherited Members Logger.LogFormat Logger.Log(Logger.Level, Exception) Logger.Trace(String) Logger.Trace(Exception) Logger.Debug(Exception) Logger.Info(String) Logger.Info(Exception) Logger.Notice(String) Logger.Notice(Exception) Logger.Warn(String) Logger.Warn(Exception) Logger.Error(String) Logger.Error(Exception) Logger.Critical(String) Logger.Critical(Exception) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public class StandardLogger : Logger Remarks StandardLogger uses a multi-threaded approach to logging. All actual I/O is done on another thread, where all messaged are guaranteed to be logged in the order they appeared. It is up to the printers to format them. This logger supports child loggers. Use GetChildLogger(Logger, String) to safely get a child. The modification of printers on a parent are reflected down the chain. Properties | Improve this Doc View Source ConsoleWriter The TextWriter for writing directly to the console window, or stdout if no window open. Declaration public static TextWriter ConsoleWriter { get; } Property Value Type Description TextWriter a TextWriter for the current primary text output | Improve this Doc View Source PrintFilter All levels defined by this filter will be sent to loggers. All others will be ignored. Declaration public static Logger.LogLevel PrintFilter { get; set; } Property Value Type Description Logger.LogLevel the global filter level Methods | Improve this Doc View Source AddPrinter(LogPrinter) Adds a log printer to the logger. Declaration public void AddPrinter(LogPrinter printer) Parameters Type Name Description LogPrinter printer the printer to add | Improve this Doc View Source Debug(String) An override to Debug(String) which shows the method that called it. Declaration public override void Debug(string message) Parameters Type Name Description String message the message to log Overrides Logger.Debug(String) See Also Log ( Logger.Level , String ) | Improve this Doc View Source Log(Logger.Level, String) Logs a specific message at a given level. Declaration public override void Log(Logger.Level level, string message) Parameters Type Name Description Logger.Level level the message level String message the message to log Overrides Logger.Log(Logger.Level, String) Extension Methods LoggerExtensions.GetChildLogger(Logger, String) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "other_api/config/index.html": { - "href": "other_api/config/index.html", - "title": "Title 2", - "keywords": "Title 2" + "api/IPA.Logging.Printers.PluginLogFilePrinter.html": { + "href": "api/IPA.Logging.Printers.PluginLogFilePrinter.html", + "title": "Class PluginLogFilePrinter", + "keywords": "Class PluginLogFilePrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginLogFilePrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginLogFilePrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginLogFilePrinter(String) Creates a new printer with the given name. Declaration public PluginLogFilePrinter(string name) Parameters Type Name Description String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "articles/index.html": { - "href": "articles/index.html", - "title": "Getting Started", - "keywords": "Getting Started Starting out is quite simple. Just follow one of the guides to the left!" + "api/IPA.Logging.Printers.GZFilePrinter.html": { + "href": "api/IPA.Logging.Printers.GZFilePrinter.html", + "title": "Class GZFilePrinter", + "keywords": "Class GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. Inheritance Object LogPrinter GZFilePrinter GlobalLogFilePrinter PluginLogFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members LogPrinter.Filter LogPrinter.Print(Logger.Level, DateTime, String, String) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public abstract class GZFilePrinter : LogPrinter, IDisposable Fields | Improve this Doc View Source FileWriter The StreamWriter that writes to the GZip file. Declaration protected StreamWriter FileWriter Field Value Type Description StreamWriter the writer to the underlying filestream Methods | Improve this Doc View Source Dispose() Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Disposes the file printer. Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing does nothing | Improve this Doc View Source EndPrint() Called at the end of any print session. Declaration public override sealed void EndPrint() Overrides LogPrinter.EndPrint() | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the file to write to. Declaration protected abstract FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to | Improve this Doc View Source StartPrint() Called at the start of any print session. Declaration public override sealed void StartPrint() Overrides LogPrinter.StartPrint() Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "articles/command-line.html": { - "href": "articles/command-line.html", - "title": "The Command Line", - "keywords": "The Command Line BSIPA has 2 command lines: the installer, and the game. Their documentation is below. The Installer ( IPA.exe ) The Game The installer has quite a few options, which are documented inline with the -h or --help flag. This is what it currently looks like: usage: IPA.exe [FLAGS] [ARGUMENTS] flags: -h, --help prints this message -w, --waitfor=PID waits for the specified PID to exit -f, --force forces the operation to go through -r, --revert reverts the IPA installation -n, --nowait doesn't wait for user input after the operation -s, --start=ARGUMENTS uses value_ as arguments to start the game after the patch/unpatch -l, --launch uses positional parameters as arguments to start the game after patch/unpatch The game also gets quite a few command line options, though there isn't anything as convenient as a help page for them. Here's a quick list of what they are and what they do. --verbose Makes a console appear with log information at startup. --debug Enables the loading of debug information in Mono. The debugging information must be in the portable PDB format, in the same location as the DLL that it's for. This option also forces BSIPA to show all debug messages in the console, as well as where they were called. This overrides the config settings Debug.ShowDebug and Debug.ShowCallSource . --trace Enables trace level messages. By default, they do not ever enter the message queue, and thus cost almost nothing. When this or the config option is used, they are added and logged with the same rules as Debug messages. This overrides the config setting Debug.ShowTrace . --mono-debug Enables the built-in Mono soft debugger engine. By default, it acts as a client, and requires that there be a soft debugger server running on port 10000 on localhost . Implies --debug . --server Does nothing on its own. When paired with --mono-debug , this option makes the Mono soft debugger act in server mode. It begins listening on port 10000 on any address, and will pause startup (with no window) until a debugger is connected. I recommend using SDB, but that is a command line debugger and a lot of people don't care for those. --no-yeet Disables mod yeeting. By default, whenever BSIPA detects that the game is now running a newer version than previous runs, it will move all mods to another folder and not load them. (They still get checked for updates though.) When this is enabled, that behaviour is disabled. Overrides the config setting YeetMods . --condense-logs Reduces the number of log files BSIPA will output for a given session. By default, BSIPA will create a subfolder in the Logs folder for each mod sublog, as well as each mod. This disables that behaviour, and restricts it to only create a global log and mod logs. Overrides the config setting Debug.CondenseModLogs . --no-updates Disables automatic updating. By default, BSIPA will check BeatMods for all of the loaded mods to see if there is a new version avaliable. If there is, it will be downloaded and installed on the next run. This flag disables that behaviour. Overrides the config settings Updates.AutoCheckUpdates and Updates.AutoUpdate ." + "api/IPA.Logging.Printers.ColoredConsolePrinter.html": { + "href": "api/IPA.Logging.Printers.ColoredConsolePrinter.html", + "title": "Class ColoredConsolePrinter", + "keywords": "Class ColoredConsolePrinter Prints a pretty message to the console. Inheritance Object LogPrinter ColoredConsolePrinter Inherited Members LogPrinter.StartPrint() LogPrinter.EndPrint() Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class ColoredConsolePrinter : LogPrinter Properties | Improve this Doc View Source Color The color to print messages as. Declaration public ConsoleColor Color { get; set; } Property Value Type Description ConsoleColor the color to print this message as | Improve this Doc View Source Filter A filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter to apply to this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the console window. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/index.html": { - "href": "api/index.html", - "title": "BSIPA API Documentation", - "keywords": "BSIPA API Documentation Welcome to the full class documentation! To see guides, head over to the Articles tab . Select a namespace and a class on the left to get started." + "api/IPA.Logging.LogPrinter.html": { + "href": "api/IPA.Logging.LogPrinter.html", + "title": "Class LogPrinter", + "keywords": "Class LogPrinter The log printer's base class. Inheritance Object LogPrinter ColoredConsolePrinter ColorlessConsolePrinter GZFilePrinter Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public abstract class LogPrinter Properties | Improve this Doc View Source Filter Provides a filter for which log levels to allow through. Declaration public abstract Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the level to filter to Methods | Improve this Doc View Source EndPrint() Called after the last print in a group. May be called multiple times. Use this to dispose file handles and the like. Declaration public virtual void EndPrint() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints a provided message from a given log at the specified time. Declaration public abstract void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the log level DateTime time the time the message was composed String logName the name of the log that created this message String message the message | Improve this Doc View Source StartPrint() Called before the first print in a group. May be called multiple times. Use this to create file handles and the like. Declaration public virtual void StartPrint() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "index.html": { - "href": "index.html", - "title": "Beat Saber IPA", - "keywords": "Beat Saber IPA - The mod injector tailored for Beat Saber How To Install Download a release Extract the contents into the game folder Run IPA.exe Start the game as usual A console window should open before the game starts if the installation was successful. To disable this console window, pass --no-console to the game. How To Uninstall Drag & drop the game exe onto IPA.exe while holding Alt Or run ipa -rn in a command window Arguments IPA.exe file-to-patch [arguments] --launch : Launch the game after patching --revert : Revert changes made by IPA (= unpatch the game) --nowait : Never keep the console open See -h or --help for more options. Unconsumed arguments will be passed on to the game in case of --launch . How To Develop Create a new Class Library C# project (.NET 4.6) Download a release and add IPA.Loader.dll to your references Implement IBeatSaberPlugin or IEnhancedBeatSaberPlugin Build the project and copy the DLL into the Plugins folder of the game. See Developing for more information. How To Keep The Game Patched BSIPA will automatically repatch the game when it updates, as long as winhttp.dll is present in the install directory. Notes for running under Wine For some reason, by default, Wine does not load DLLs in quite the same way that Windows does, causing issues with the injection. To make the injection work with Wine, winhttp has to have a DLL override set to native,builtin . This can be set either through Protontricks, or with the following .reg file. REGEDIT4 [HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides] \"winhttp\"=\"native,builtin\" For Steam there's a per-game Wine prefix under compatdata . In this case SteamLibrary/steamapps/compatdata/620980/pfx/user.reg . Changes to this file will likely be ovewritten when the game updates or if local files are validated through Steam. Developing BSIPA itself Prerequisites Microsoft Visual Studio 2019 or later (2017 may work, no guarantees) Tools for C/C++ (MSVC) v141 .NET 4.6.1 SDK and .NET 4.7.2 SDK Building Clone with git clone https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded.git --recursive Create a file, bsinstalldir.txt in the solution root. Do NOT create this in Visual Studio; VS adds a BOM at the begginning of the file that the tools used cannot read. It should contain the path to your Beat Saber installation, using forward slashes with a trailing slash. e.g. C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/ Open BSIPA.sln in Visual Studio. Choose the configuration x64-Net4 Rebuild all. When you make a change somewhere in BSIPA itself, right click on BSIPA-Meta and click Build or Rebuild . This sets up the output in path/to/solution/BSIPA-Meta/bin/ to be what should be copied to the game directory. When making a change to the Mod List, you only need to build the mod list. Install by copying everything in path/to/solution/BSIPA-ModList/bin/ to your game directory. When building a Debug build, all referenced assemblies from Beat Saber will be copied from the install directory provided in bsinstalldir.txt into Refs/ . Any new references should reference the copy in there. When building for Release, it just uses the files already in Refs/" + "api/IPA.Loader.html": { + "href": "api/IPA.Loader.html", + "title": "", + "keywords": "Classes PluginInitInjector The type that handles value injecting into a plugin's Init. PluginLoader A type to manage the loading of plugins. PluginLoader.PluginInfo A container object for all the data relating to a plugin. PluginLoader.PluginMetadata A class which describes a loaded plugin. PluginManager The manager class for all plugins. Delegates PluginInitInjector.InjectParameter A typed injector for a plugin's Init method. When registered, called for all associated types. If it returns null, the default for the type will be used. PluginManager.PluginDisableDelegate An invoker for the PluginDisabled event. PluginManager.PluginEnableDelegate An invoker for the PluginEnabled event." }, - "api/IPA.Logging.Printers.ColorlessConsolePrinter.html": { - "href": "api/IPA.Logging.Printers.ColorlessConsolePrinter.html", - "title": "Class ColorlessConsolePrinter", - "keywords": "Class ColorlessConsolePrinter A colorless version of ColoredConsolePrinter , that indiscriminantly prints to standard out. Inheritance Object LogPrinter ColorlessConsolePrinter Inherited Members LogPrinter.StartPrint() LogPrinter.EndPrint() Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class ColorlessConsolePrinter : LogPrinter Properties | Improve this Doc View Source Filter A filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to standard out. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Loader.PluginManager.html": { + "href": "api/IPA.Loader.PluginManager.html", + "title": "Class PluginManager", + "keywords": "Class PluginManager The manager class for all plugins. Inheritance Object PluginManager Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public static class PluginManager Properties | Improve this Doc View Source AllPlugins Gets a list of all BSIPA plugins. Declaration public static IEnumerable AllPlugins { get; } Property Value Type Description IEnumerable < PluginLoader.PluginInfo > a collection of all enabled plugins as PluginLoader.PluginInfo s | Improve this Doc View Source DisabledPlugins Gets a list of disabled BSIPA plugins. Declaration public static IEnumerable DisabledPlugins { get; } Property Value Type Description IEnumerable < PluginLoader.PluginMetadata > a collection of all disabled plugins as PluginLoader.PluginMetadata | Improve this Doc View Source Plugins An IEnumerable of old IPA plugins. Declaration [Obsolete(\"I mean, IPlugin shouldn't be used, so why should this? Not renaming to extend support for old plugins.\")] public static IEnumerable Plugins { get; } Property Value Type Description IEnumerable < IPlugin > all legacy plugin instances Methods | Improve this Doc View Source DisablePlugin(PluginLoader.PluginInfo) Disables a plugin, and all dependents. Declaration public static bool DisablePlugin(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin to disable Returns Type Description Boolean whether or not it needs a restart to enable | Improve this Doc View Source DisablePlugin(String) Disables a plugin, and all dependents. Declaration public static bool DisablePlugin(string pluginId) Parameters Type Name Description String pluginId the ID, or name if the ID is null, of the plugin to disable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source EnablePlugin(PluginLoader.PluginMetadata) Enables a plugin that had been previously disabled. Declaration public static bool EnablePlugin(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to enable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source EnablePlugin(String) Enables a plugin that had been previously disabled. Declaration public static bool EnablePlugin(string pluginId) Parameters Type Name Description String pluginId the ID, or name if the ID is null, of the plugin to enable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source GetDisabledPlugin(String) Gets a disabled plugin's metadata by its name. Declaration public static PluginLoader.PluginMetadata GetDisabledPlugin(string name) Parameters Type Name Description String name the name of the disabled plugin to get Returns Type Description PluginLoader.PluginMetadata the metadata for the corresponding plugin | Improve this Doc View Source GetDisabledPluginFromId(String) Gets a disabled plugin's metadata by its ID. Declaration public static PluginLoader.PluginMetadata GetDisabledPluginFromId(string name) Parameters Type Name Description String name the ID of the disabled plugin to get Returns Type Description PluginLoader.PluginMetadata the metadata for the corresponding plugin | Improve this Doc View Source GetPlugin(String) Gets info about the plugin with the specified name. Declaration public static PluginLoader.PluginInfo GetPlugin(string name) Parameters Type Name Description String name the name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source GetPluginFromId(String) Gets info about the plugin with the specified ID. Declaration public static PluginLoader.PluginInfo GetPluginFromId(string name) Parameters Type Name Description String name the ID name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source GetPluginFromModSaberName(String) Gets info about the plugin with the specified ModSaber name. Declaration [Obsolete(\"Old name. Use GetPluginFromId instead.\")] public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name) Parameters Type Name Description String name the ModSaber name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source InfoFromMetadata(PluginLoader.PluginMetadata) Converts a plugin's metadata to a PluginLoader.PluginInfo . Declaration public static PluginLoader.PluginInfo InfoFromMetadata(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the metadata Returns Type Description PluginLoader.PluginInfo the plugin info | Improve this Doc View Source IsDisabled(PluginLoader.PluginMetadata) Checks if a given plugin is disabled. Declaration public static bool IsDisabled(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the plugin to check Returns Type Description Boolean true if the plugin is disabled, false otherwise. | Improve this Doc View Source IsEnabled(PluginLoader.PluginMetadata) Checks if a given plugin is enabled. Declaration public static bool IsEnabled(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the plugin to check Returns Type Description Boolean true if the plugin is enabled, false otherwise. Events | Improve this Doc View Source PluginDisabled Called whenever a plugin is disabled. Declaration public static event PluginManager.PluginDisableDelegate PluginDisabled Event Type Type Description PluginManager.PluginDisableDelegate | Improve this Doc View Source PluginEnabled Called whenever a plugin is enabled. Declaration public static event PluginManager.PluginEnableDelegate PluginEnabled Event Type Type Description PluginManager.PluginEnableDelegate" }, "api/IPA.Loader.PluginLoader.html": { "href": "api/IPA.Loader.PluginLoader.html", @@ -99,15 +99,15 @@ "title": "", "keywords": "Classes Feature The root interface for a mod Feature." }, - "api/IPA.IGenericEnhancedPlugin.html": { - "href": "api/IPA.IGenericEnhancedPlugin.html", - "title": "Interface IGenericEnhancedPlugin", - "keywords": "Interface IGenericEnhancedPlugin A generic interface for the modification for enhanced plugins. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IGenericEnhancedPlugin Properties | Improve this Doc View Source Filter Gets a list of executables this plugin should be executed on (without the file ending) Declaration [Obsolete(\"Ignored.\")] string[] Filter { get; } Property Value Type Description String [] Examples { \"PlayClub\", \"PlayClubStudio\" } Methods | Improve this Doc View Source OnLateUpdate() Called after Update. Declaration void OnLateUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.IEnhancedBeatSaberPlugin.html": { + "href": "api/IPA.IEnhancedBeatSaberPlugin.html", + "title": "Interface IEnhancedBeatSaberPlugin", + "keywords": "Interface IEnhancedBeatSaberPlugin An enhanced version of a standard BeatSaber plugin. Inherited Members IBeatSaberPlugin.OnApplicationStart() IBeatSaberPlugin.OnApplicationQuit() IBeatSaberPlugin.OnUpdate() IBeatSaberPlugin.OnFixedUpdate() IBeatSaberPlugin.OnSceneLoaded(Scene, LoadSceneMode) IBeatSaberPlugin.OnSceneUnloaded(Scene) IBeatSaberPlugin.OnActiveSceneChanged(Scene, Scene) IGenericEnhancedPlugin.Filter IGenericEnhancedPlugin.OnLateUpdate() Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IEnhancedBeatSaberPlugin : IBeatSaberPlugin, IGenericEnhancedPlugin Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.IBeatSaberPlugin.html": { - "href": "api/IPA.IBeatSaberPlugin.html", - "title": "Interface IBeatSaberPlugin", - "keywords": "Interface IBeatSaberPlugin Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IBeatSaberPlugin Methods | Improve this Doc View Source OnActiveSceneChanged(Scene, Scene) Gets invoked whenever a scene is changed Declaration void OnActiveSceneChanged(Scene prevScene, Scene nextScene) Parameters Type Name Description Scene prevScene The Scene that was previously loaded Scene nextScene The Scene being loaded | Improve this Doc View Source OnApplicationQuit() Gets invoked when the application is closed. Declaration void OnApplicationQuit() | Improve this Doc View Source OnApplicationStart() Gets invoked when the application is started. THIS EVENT WILL NOT BE GUARANTEED TO FIRE. USE Init OR OnEnable() INSTEAD. Declaration void OnApplicationStart() | Improve this Doc View Source OnFixedUpdate() Gets invoked on ever physics update. Declaration void OnFixedUpdate() | Improve this Doc View Source OnSceneLoaded(Scene, LoadSceneMode) Gets invoked whenever a scene is loaded. Declaration void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode) Parameters Type Name Description Scene scene The scene currently loaded LoadSceneMode sceneMode The type of loading | Improve this Doc View Source OnSceneUnloaded(Scene) Gets invoked whenever a scene is unloaded Declaration void OnSceneUnloaded(Scene scene) Parameters Type Name Description Scene scene The unloaded scene | Improve this Doc View Source OnUpdate() Gets invoked on every graphic update. Declaration void OnUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.IDisablablePlugin.html": { + "href": "api/IPA.IDisablablePlugin.html", + "title": "Interface IDisablablePlugin", + "keywords": "Interface IDisablablePlugin Provides methods to allow runtime enabling and disabling of a plugin. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IDisablablePlugin Methods | Improve this Doc View Source OnDisable() Called when a plugin is disabled at runtime. This should disable things like Harmony patches and unsubscribe from events. After this is called there should be no lingering effects of the mod. Declaration void OnDisable() Remarks This will get called at shutdown, after OnApplicationQuit() , as well as when the plugin is disabled at runtime. | Improve this Doc View Source OnEnable() Called when a plugin is enabled. This is where you should set up Harmony patches and the like. Declaration void OnEnable() Remarks This will be called after Init, and will be called when the plugin loads normally too. When a plugin is disabled at startup, neither this nor Init will be called until it is enabled. Init will only ever be called once. Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, "api/IPA.Config.html": { "href": "api/IPA.Config.html", @@ -119,65 +119,105 @@ "title": "Interface IModPrefs", "keywords": "Interface IModPrefs Allows to get and set preferences for your mod. Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [Obsolete(\"Uses IniFile, which uses 16 bit system calls. Use BS Utils INI system for now.\")] public interface IModPrefs Methods | Improve this Doc View Source GetBool(String, String, Boolean, Boolean) Gets a bool from the ini. Declaration bool GetBool(string section, string name, bool defaultValue = false, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Boolean | Improve this Doc View Source GetFloat(String, String, Single, Boolean) Gets a float from the ini. Declaration float GetFloat(string section, string name, float defaultValue = 0F, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Single defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Single | Improve this Doc View Source GetInt(String, String, Int32, Boolean) Gets an int from the ini. Declaration int GetInt(string section, string name, int defaultValue = 0, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Int32 | Improve this Doc View Source GetString(String, String, String, Boolean) Gets a string from the ini. Declaration string GetString(string section, string name, string defaultValue = \"\", bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. String defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description String | Improve this Doc View Source HasKey(String, String) Checks whether or not a key exists in the ini. Declaration bool HasKey(string section, string name) Parameters Type Name Description String section Section of the key. String name Name of the key. Returns Type Description Boolean | Improve this Doc View Source SetBool(String, String, Boolean) Sets a bool in the ini. Declaration void SetBool(string section, string name, bool value) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean value Value that should be written. | Improve this Doc View Source SetFloat(String, String, Single) Sets a float in the ini. Declaration void SetFloat(string section, string name, float value) Parameters Type Name Description String section Section of the key. String name Name of the key. Single value Value that should be written. | Improve this Doc View Source SetInt(String, String, Int32) Sets an int in the ini. Declaration void SetInt(string section, string name, int value) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 value Value that should be written. | Improve this Doc View Source SetString(String, String, String) Sets a string in the ini. Declaration void SetString(string section, string name, string value) Parameters Type Name Description String section Section of the key. String name Name of the key. String value Value that should be written. Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Logging.html": { - "href": "api/IPA.Logging.html", + "api/IPA.Utilities.html": { + "href": "api/IPA.Utilities.html", "title": "", - "keywords": "Classes Logger The logger base class. Provides the format for console logs. LoggerExtensions A class providing extensions for various loggers. LogPrinter The log printer's base class. StandardLogger The default (and standard) Logger implementation. Enums Logger.Level An enum specifying the level of the message. Resembles Syslog. Logger.LogLevel An enum providing log level filters." + "keywords": "Classes AlmostVersion A type that wraps so that the string of the version is stored when the string is not a valid . BeatSaber Provides some basic utility methods and properties of Beat Saber CriticalSection Provides utilities for managing various critical sections. Extensions A class providing various extension methods. Ref Utilities to create Ref using type inference. Ref A class to store a reference for passing to methods which cannot take ref parameters. ReflectionUtil A utility class providing reflection helper methods. Utils A class providing static utility functions that in any other language would just exist . Enums AlmostVersion.StoredAs Represents a storage type of either parsed object or raw String . BeatSaber.Release The different types of releases of the game." }, - "api/IPA.Logging.StandardLogger.html": { - "href": "api/IPA.Logging.StandardLogger.html", - "title": "Class StandardLogger", - "keywords": "Class StandardLogger The default (and standard) Logger implementation. Inheritance Object Logger StandardLogger Inherited Members Logger.LogFormat Logger.Log(Logger.Level, Exception) Logger.Trace(String) Logger.Trace(Exception) Logger.Debug(Exception) Logger.Info(String) Logger.Info(Exception) Logger.Notice(String) Logger.Notice(Exception) Logger.Warn(String) Logger.Warn(Exception) Logger.Error(String) Logger.Error(Exception) Logger.Critical(String) Logger.Critical(Exception) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public class StandardLogger : Logger Remarks StandardLogger uses a multi-threaded approach to logging. All actual I/O is done on another thread, where all messaged are guaranteed to be logged in the order they appeared. It is up to the printers to format them. This logger supports child loggers. Use GetChildLogger(Logger, String) to safely get a child. The modification of printers on a parent are reflected down the chain. Properties | Improve this Doc View Source ConsoleWriter The TextWriter for writing directly to the console window, or stdout if no window open. Declaration public static TextWriter ConsoleWriter { get; } Property Value Type Description TextWriter a TextWriter for the current primary text output | Improve this Doc View Source PrintFilter All levels defined by this filter will be sent to loggers. All others will be ignored. Declaration public static Logger.LogLevel PrintFilter { get; set; } Property Value Type Description Logger.LogLevel the global filter level Methods | Improve this Doc View Source AddPrinter(LogPrinter) Adds a log printer to the logger. Declaration public void AddPrinter(LogPrinter printer) Parameters Type Name Description LogPrinter printer the printer to add | Improve this Doc View Source Debug(String) An override to Debug(String) which shows the method that called it. Declaration public override void Debug(string message) Parameters Type Name Description String message the message to log Overrides Logger.Debug(String) See Also Log ( Logger.Level , String ) | Improve this Doc View Source Log(Logger.Level, String) Logs a specific message at a given level. Declaration public override void Log(Logger.Level level, string message) Parameters Type Name Description Logger.Level level the message level String message the message to log Overrides Logger.Log(Logger.Level, String) Extension Methods LoggerExtensions.GetChildLogger(Logger, String) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Utilities.Utils.html": { + "href": "api/IPA.Utilities.Utils.html", + "title": "Class Utils", + "keywords": "Class Utils A class providing static utility functions that in any other language would just exist . Inheritance Object Utils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Utils Properties | Improve this Doc View Source CanUseDateTimeNowSafely Whether you can safely use Now without Mono throwing a fit. Declaration public static bool CanUseDateTimeNowSafely { get; } Property Value Type Description Boolean true if you can use Now safely, false otherwise Methods | Improve this Doc View Source ByteArrayToString(Byte[]) Converts a byte array to a hex string. Declaration public static string ByteArrayToString(byte[] ba) Parameters Type Name Description Byte [] ba the byte array Returns Type Description String the hex form of the array | Improve this Doc View Source CopyAll(DirectoryInfo, DirectoryInfo, String, Func) Copies all files from source to target . Declaration public static void CopyAll(DirectoryInfo source, DirectoryInfo target, string appendFileName = \"\", Func onCopyException = null) Parameters Type Name Description DirectoryInfo source the source directory DirectoryInfo target the destination directory String appendFileName the filename of the file to append together Func < Exception , FileInfo , Boolean > onCopyException a delegate called when there is an error copying. Return true to keep going. | Improve this Doc View Source CurrentTime() Gets the current DateTime if supported, otherwise, if Mono would throw a fit, returns MinValue plus some value, such that each time it is called the value will be greater than the previous result. Not suitable for timing. Declaration public static DateTime CurrentTime() Returns Type Description DateTime the current DateTime if supported, otherwise some indeterminant increasing value. | Improve this Doc View Source GetRelativePath(String, String) Gets a path relative to the provided folder. Declaration public static string GetRelativePath(string file, string folder) Parameters Type Name Description String file the file to relativize String folder the source folder Returns Type Description String a path to get from folder to file | Improve this Doc View Source StringToByteArray(String) Converts a hex string to a byte array. Declaration public static byte[] StringToByteArray(string hex) Parameters Type Name Description String hex the hex stream Returns Type Description Byte [] the corresponding byte array | Improve this Doc View Source UnsafeCompare(Byte[], Byte[]) Uses unsafe code to compare 2 byte arrays quickly. Declaration public static bool UnsafeCompare(byte[] a1, byte[] a2) Parameters Type Name Description Byte [] a1 array 1 Byte [] a2 array 2 Returns Type Description Boolean whether or not they are byte-for-byte equal | Improve this Doc View Source VersionCompareNoPrerelease(SemVer.Version, SemVer.Version) Compares a pair of s ignoring both the prerelease and build fields. Declaration public static int VersionCompareNoPrerelease(SemVer.Version l, SemVer.Version r) Parameters Type Name Description SemVer.Version l the left value SemVer.Version r the right value Returns Type Description Int32 -1 if l is less than r, 0 if they are equal in the numeric portion, or 1 if l is greater than r" }, - "api/IPA.Logging.Printers.PluginLogFilePrinter.html": { - "href": "api/IPA.Logging.Printers.PluginLogFilePrinter.html", - "title": "Class PluginLogFilePrinter", - "keywords": "Class PluginLogFilePrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginLogFilePrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginLogFilePrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginLogFilePrinter(String) Creates a new printer with the given name. Declaration public PluginLogFilePrinter(string name) Parameters Type Name Description String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Utilities.BeatSaber.Release.html": { + "href": "api/IPA.Utilities.BeatSaber.Release.html", + "title": "Enum BeatSaber.Release", + "keywords": "Enum BeatSaber.Release The different types of releases of the game. Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public enum Release Fields Name Description Oculus Indicates an Oculus release. Steam Indicates a Steam release. Extension Methods ReflectionUtil.SetPrivateField(String, Object) ReflectionUtil.GetPrivateField(String) ReflectionUtil.SetPrivateProperty(String, Object) ReflectionUtil.InvokePrivateMethod(String, Object[]) ReflectionUtil.InvokePrivateMethod(String, Object[])" }, - "api/IPA.Logging.Printers.GZFilePrinter.html": { - "href": "api/IPA.Logging.Printers.GZFilePrinter.html", - "title": "Class GZFilePrinter", - "keywords": "Class GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. Inheritance Object LogPrinter GZFilePrinter GlobalLogFilePrinter PluginLogFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members LogPrinter.Filter LogPrinter.Print(Logger.Level, DateTime, String, String) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public abstract class GZFilePrinter : LogPrinter, IDisposable Fields | Improve this Doc View Source FileWriter The StreamWriter that writes to the GZip file. Declaration protected StreamWriter FileWriter Field Value Type Description StreamWriter the writer to the underlying filestream Methods | Improve this Doc View Source Dispose() Declaration public void Dispose() | Improve this Doc View Source Dispose(Boolean) Disposes the file printer. Declaration protected virtual void Dispose(bool disposing) Parameters Type Name Description Boolean disposing does nothing | Improve this Doc View Source EndPrint() Called at the end of any print session. Declaration public override sealed void EndPrint() Overrides LogPrinter.EndPrint() | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the file to write to. Declaration protected abstract FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to | Improve this Doc View Source StartPrint() Called at the start of any print session. Declaration public override sealed void StartPrint() Overrides LogPrinter.StartPrint() Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Utilities.AlmostVersion.html": { + "href": "api/IPA.Utilities.AlmostVersion.html", + "title": "Class AlmostVersion", + "keywords": "Class AlmostVersion A type that wraps so that the string of the version is stored when the string is not a valid . Inheritance Object AlmostVersion Implements IComparable < AlmostVersion > IComparable < SemVer.Version > Inherited Members Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public class AlmostVersion : IComparable, IComparable Constructors | Improve this Doc View Source AlmostVersion(SemVer.Version) Creates an AlmostVersion from the provided in ver . Declaration public AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to store | Improve this Doc View Source AlmostVersion(String) Creates a new AlmostVersion with the version string provided in vertext . Declaration public AlmostVersion(string vertext) Parameters Type Name Description String vertext the version string to store | Improve this Doc View Source AlmostVersion(String, AlmostVersion) Creates a new AlmostVersion from the version string in vertext stored the same way as the AlmostVersion passed in copyMode . Declaration public AlmostVersion(string vertext, AlmostVersion copyMode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion copyMode an AlmostVersion to copy the storage mode of | Improve this Doc View Source AlmostVersion(String, AlmostVersion.StoredAs) Creates an AlmostVersion from the version string in vertext stored using the storage mode specified in mode . Declaration public AlmostVersion(string vertext, AlmostVersion.StoredAs mode) Parameters Type Name Description String vertext the text to parse as an AlmostVersion AlmostVersion.StoredAs mode the storage mode to store the version in Properties | Improve this Doc View Source SemverValue The value of the AlmostVersion if it was stored as a . Declaration public SemVer.Version SemverValue { get; } Property Value Type Description SemVer.Version the stored value as a , or null if not stored as a version. | Improve this Doc View Source StorageMode The way the value is stored, whether it be as a or a String . Declaration public AlmostVersion.StoredAs StorageMode { get; } Property Value Type Description AlmostVersion.StoredAs the storage mode used to store this value | Improve this Doc View Source StringValue The value of the AlmostVersion if it was stored as a String . Declaration public string StringValue { get; } Property Value Type Description String the stored value as a String , or null if not stored as a string. Methods | Improve this Doc View Source CompareTo(AlmostVersion) Compares langword_csharp_this to the AlmostVersion in other using or CompareTo(String) , depending on the current store. Declaration public int CompareTo(AlmostVersion other) Parameters Type Name Description AlmostVersion other the AlmostVersion to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage methods of the two objects must be the same, or this will throw an InvalidOperationException . See Also CompareTo(SemVer.Version) | Improve this Doc View Source CompareTo(SemVer.Version) Compares langword_csharp_this to the in other using . Declaration public int CompareTo(SemVer.Version other) Parameters Type Name Description SemVer.Version other the to compare to Returns Type Description Int32 less than 0 if other is considered bigger than langword_csharp_this , 0 if equal, and greater than zero if smaller Remarks The storage method of langword_csharp_this must be SemVer , else an InvalidOperationException will be thrown. See Also CompareTo(AlmostVersion) | Improve this Doc View Source Equals(Object) Performs a strict equality check between langword_csharp_this and obj . Declaration public override bool Equals(object obj) Parameters Type Name Description Object obj the object to compare to Returns Type Description Boolean true if they are equal, false otherwise Overrides Object.Equals(Object) Remarks This may return false where Equality(AlmostVersion, AlmostVersion) returns true See Also Equals ( Object ) | Improve this Doc View Source GetHashCode() Default generated hash code function generated by VS. Declaration public override int GetHashCode() Returns Type Description Int32 a value unique to each object, except those that are considered equal by Equals(Object) Overrides Object.GetHashCode() See Also GetHashCode () | Improve this Doc View Source ToString() Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is stored as a , it is equivalent to calling . Declaration public override string ToString() Returns Type Description String a string representation of the current version Overrides Object.ToString() See Also ToString () Operators | Improve this Doc View Source Equality(AlmostVersion, AlmostVersion) Compares two versions, only taking into account the numeric part of the version if they are stored as sealed , or strict equality if they are stored as String s. Declaration public static bool operator ==(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are mostly equal, false otherwise Remarks This is a looser equality than Equals(Object) , meaning that this may return true where Equals(Object) does not. See Also Equals(Object) | Improve this Doc View Source Implicit(AlmostVersion to SemVer.Version) Implicitly converts an AlmostVersion to , if applicable, using SemverValue . If not applicable, returns null Declaration public static implicit operator SemVer.Version(AlmostVersion av) Parameters Type Name Description AlmostVersion av the AlmostVersion to convert to a Returns Type Description SemVer.Version See Also SemverValue | Improve this Doc View Source Implicit(SemVer.Version to AlmostVersion) Implicitly converts a to AlmostVersion using AlmostVersion(SemVer.Version) . Declaration public static implicit operator AlmostVersion(SemVer.Version ver) Parameters Type Name Description SemVer.Version ver the to convert Returns Type Description AlmostVersion See Also AlmostVersion(SemVer.Version) | Improve this Doc View Source Inequality(AlmostVersion, AlmostVersion) The opposite of Equality(AlmostVersion, AlmostVersion) . Equivalent to !(l == r) . Declaration public static bool operator !=(AlmostVersion l, AlmostVersion r) Parameters Type Name Description AlmostVersion l the first value to compare AlmostVersion r the second value to compare Returns Type Description Boolean true if they are not mostly equal, false otherwise See Also Equality(AlmostVersion, AlmostVersion) Implements System.IComparable System.IComparable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + }, + "api/IPA.Logging.Printers.GlobalLogFilePrinter.html": { + "href": "api/IPA.Logging.Printers.GlobalLogFilePrinter.html", + "title": "Class GlobalLogFilePrinter", + "keywords": "Class GlobalLogFilePrinter A printer for all messages to a unified log location. Inheritance Object LogPrinter GZFilePrinter GlobalLogFilePrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class GlobalLogFilePrinter : GZFilePrinter, IDisposable Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the target file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + }, + "api/IPA.Logging.Printers.ColorlessConsolePrinter.html": { + "href": "api/IPA.Logging.Printers.ColorlessConsolePrinter.html", + "title": "Class ColorlessConsolePrinter", + "keywords": "Class ColorlessConsolePrinter A colorless version of ColoredConsolePrinter , that indiscriminantly prints to standard out. Inheritance Object LogPrinter ColorlessConsolePrinter Inherited Members LogPrinter.StartPrint() LogPrinter.EndPrint() Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class ColorlessConsolePrinter : LogPrinter Properties | Improve this Doc View Source Filter A filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter level for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to standard out. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, "api/IPA.Logging.Logger.LogLevel.html": { "href": "api/IPA.Logging.Logger.LogLevel.html", "title": "Enum Logger.LogLevel", "keywords": "Enum Logger.LogLevel An enum providing log level filters. Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax [Flags] public enum LogLevel : byte Fields Name Description All Shows all messages. CriticalOnly Only shows Critical messages. DebugOnly Only shows Debug messages. DebugUp Shows all messages debug and up. ErrorOnly Only shows Error messages. ErrorUp Shows all messages error and up. InfoOnly Only shows info messages. InfoUp Shows all messages info and up. None Allow no messages through. NoticeOnly Only shows notice messages. NoticeUp Shows all messages Notice and up. TraceOnly Only shows Trace messages. Undefined Used for when the level is undefined. WarningOnly Only shows Warning messages. WarningUp Shows all messages warning and up. Extension Methods ReflectionUtil.SetPrivateField(String, Object) ReflectionUtil.GetPrivateField(String) ReflectionUtil.SetPrivateProperty(String, Object) ReflectionUtil.InvokePrivateMethod(String, Object[]) ReflectionUtil.InvokePrivateMethod(String, Object[])" }, - "api/IPA.Logging.Logger.Level.html": { - "href": "api/IPA.Logging.Logger.Level.html", - "title": "Enum Logger.Level", - "keywords": "Enum Logger.Level An enum specifying the level of the message. Resembles Syslog. Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public enum Level : byte Fields Name Description Critical A critical error message. Debug A debug message. Error An error message. Info An informational message. None No associated level. These never get shown. Notice A notice. More significant than Info, but less than a warning. Trace A trace message. These are ignored incredibly early. Warning A warning message. Extension Methods ReflectionUtil.SetPrivateField(String, Object) ReflectionUtil.GetPrivateField(String) ReflectionUtil.SetPrivateProperty(String, Object) ReflectionUtil.InvokePrivateMethod(String, Object[]) ReflectionUtil.InvokePrivateMethod(String, Object[])" + "articles/index.html": { + "href": "articles/index.html", + "title": "Getting Started", + "keywords": "Getting Started Starting out is quite simple. Just follow one of the guides to the left!" }, - "api/IPA.Loader.PluginInitInjector.html": { - "href": "api/IPA.Loader.PluginInitInjector.html", - "title": "Class PluginInitInjector", - "keywords": "Class PluginInitInjector The type that handles value injecting into a plugin's Init. Inheritance Object PluginInitInjector Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public static class PluginInitInjector Methods | Improve this Doc View Source AddInjector(Type, PluginInitInjector.InjectParameter) Adds an injector to be used when calling future plugins' Init methods. Declaration public static void AddInjector(Type type, PluginInitInjector.InjectParameter injector) Parameters Type Name Description Type type the type of the parameter. PluginInitInjector.InjectParameter injector the function to call for injection." + "articles/command-line.html": { + "href": "articles/command-line.html", + "title": "The Command Line", + "keywords": "The Command Line BSIPA has 2 command lines: the installer, and the game. Their documentation is below. The Installer ( IPA.exe ) The Game The installer has quite a few options, which are documented inline with the -h or --help flag. This is what it currently looks like: usage: IPA.exe [FLAGS] [ARGUMENTS] flags: -h, --help prints this message -w, --waitfor=PID waits for the specified PID to exit -f, --force forces the operation to go through -r, --revert reverts the IPA installation -n, --nowait doesn't wait for user input after the operation -s, --start=ARGUMENTS uses value_ as arguments to start the game after the patch/unpatch -l, --launch uses positional parameters as arguments to start the game after patch/unpatch The game also gets quite a few command line options, though there isn't anything as convenient as a help page for them. Here's a quick list of what they are and what they do. --verbose Makes a console appear with log information at startup. --debug Enables the loading of debug information in Mono. The debugging information must be in the portable PDB format, in the same location as the DLL that it's for. This option also forces BSIPA to show all debug messages in the console, as well as where they were called. This overrides the config settings Debug.ShowDebug and Debug.ShowCallSource . --trace Enables trace level messages. By default, they do not ever enter the message queue, and thus cost almost nothing. When this or the config option is used, they are added and logged with the same rules as Debug messages. This overrides the config setting Debug.ShowTrace . --mono-debug Enables the built-in Mono soft debugger engine. By default, it acts as a client, and requires that there be a soft debugger server running on port 10000 on localhost . Implies --debug . --server Does nothing on its own. When paired with --mono-debug , this option makes the Mono soft debugger act in server mode. It begins listening on port 10000 on any address, and will pause startup (with no window) until a debugger is connected. I recommend using SDB, but that is a command line debugger and a lot of people don't care for those. --no-yeet Disables mod yeeting. By default, whenever BSIPA detects that the game is now running a newer version than previous runs, it will move all mods to another folder and not load them. (They still get checked for updates though.) When this is enabled, that behaviour is disabled. Overrides the config setting YeetMods . --condense-logs Reduces the number of log files BSIPA will output for a given session. By default, BSIPA will create a subfolder in the Logs folder for each mod sublog, as well as each mod. This disables that behaviour, and restricts it to only create a global log and mod logs. Overrides the config setting Debug.CondenseModLogs . --no-updates Disables automatic updating. By default, BSIPA will check BeatMods for all of the loaded mods to see if there is a new version avaliable. If there is, it will be downloaded and installed on the next run. This flag disables that behaviour. Overrides the config settings Updates.AutoCheckUpdates and Updates.AutoUpdate ." }, - "api/IPA.Loader.Features.Feature.html": { - "href": "api/IPA.Loader.Features.Feature.html", - "title": "Class Feature", - "keywords": "Class Feature The root interface for a mod Feature. Inheritance Object Feature Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader.Features Assembly : IPA.Loader.dll Syntax public abstract class Feature Remarks Avoid storing any data in any subclasses. If you do, it may result in a failure to load the feature. Properties | Improve this Doc View Source InvalidMessage The message to be logged when the feature is not valid for a plugin. This should also be set whenever either BeforeLoad(PluginLoader.PluginMetadata) or BeforeInit(PluginLoader.PluginInfo) returns false. Declaration public virtual string InvalidMessage { get; protected set; } Property Value Type Description String the message to show when the feature is marked invalid | Improve this Doc View Source StoreOnPlugin Defines whether or not this feature will be accessible from the plugin metadata once loaded. Declaration protected virtual bool StoreOnPlugin { get; } Property Value Type Description Boolean true if this Feature will be stored on the plugin metadata, false otherwise Methods | Improve this Doc View Source AfterInit(PluginLoader.PluginInfo) Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. Declaration public virtual void AfterInit(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was just initialized | Improve this Doc View Source AfterInit(PluginLoader.PluginInfo, IBeatSaberPlugin) Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. Declaration public virtual void AfterInit(PluginLoader.PluginInfo plugin, IBeatSaberPlugin pluginInstance) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was just initialized IBeatSaberPlugin pluginInstance the instance of the plugin being initialized | Improve this Doc View Source BeforeInit(PluginLoader.PluginInfo) Called before a plugin's Init method is called. This will not be called if there is no Init method. This should never throw an exception. An exception will abort the loading of the plugin with an error. Declaration public virtual bool BeforeInit(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin to be initialized Returns Type Description Boolean whether or not to call the Init method | Improve this Doc View Source BeforeLoad(PluginLoader.PluginMetadata) Called before a plugin is loaded. This should never throw an exception. An exception will abort the loading of the plugin with an error. Declaration public virtual bool BeforeLoad(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin about to be loaded Returns Type Description Boolean whether or not the plugin should be loaded Remarks The assembly will still be loaded, but the plugin will not be constructed if this returns false . Any features it defines, for example, will still be loaded. | Improve this Doc View Source Evaluate() Evaluates the Feature for use in conditional meta-Features. This should be re-calculated on every call, unless it can be proven to not change. This will be called on every feature that returns true from Initialize(PluginLoader.PluginMetadata, String[]) Declaration public virtual bool Evaluate() Returns Type Description Boolean the truthiness of the Feature. | Improve this Doc View Source Initialize(PluginLoader.PluginMetadata, String[]) Initializes the feature with the parameters provided in the definition. Note: When no parenthesis are provided, parameters is an empty array. Declaration public abstract bool Initialize(PluginLoader.PluginMetadata meta, string[] parameters) Parameters Type Name Description PluginLoader.PluginMetadata meta the metadata of the plugin that is being prepared String [] parameters the parameters passed to the feature definition, or null Returns Type Description Boolean true if the feature is valid for the plugin, false otherwise Remarks This gets called BEFORE your Init method. Returning false does not prevent the plugin from being loaded. It simply prevents the feature from being used. | Improve this Doc View Source RequireLoaded(PluginLoader.PluginMetadata) Ensures a plugin's assembly is loaded. Do not use unless you need to. Declaration protected void RequireLoaded(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to ensure is loaded. Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "index.html": { + "href": "index.html", + "title": "Beat Saber IPA", + "keywords": "Beat Saber IPA - The mod injector tailored for Beat Saber How To Install Download a release Extract the contents into the game folder Run IPA.exe Start the game as usual A console window should open before the game starts if the installation was successful. To disable this console window, pass --no-console to the game. How To Uninstall Drag & drop the game exe onto IPA.exe while holding Alt Or run ipa -rn in a command window Arguments IPA.exe file-to-patch [arguments] --launch : Launch the game after patching --revert : Revert changes made by IPA (= unpatch the game) --nowait : Never keep the console open See -h or --help for more options. Unconsumed arguments will be passed on to the game in case of --launch . How To Develop Create a new Class Library C# project (.NET 4.6) Download a release and add IPA.Loader.dll to your references Implement IBeatSaberPlugin or IEnhancedBeatSaberPlugin Build the project and copy the DLL into the Plugins folder of the game. See Developing for more information. How To Keep The Game Patched BSIPA will automatically repatch the game when it updates, as long as winhttp.dll is present in the install directory. Notes for running under Wine For some reason, by default, Wine does not load DLLs in quite the same way that Windows does, causing issues with the injection. To make the injection work with Wine, winhttp has to have a DLL override set to native,builtin . This can be set either through Protontricks, or with the following .reg file. REGEDIT4 [HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides] \"winhttp\"=\"native,builtin\" For Steam there's a per-game Wine prefix under compatdata . In this case SteamLibrary/steamapps/compatdata/620980/pfx/user.reg . Changes to this file will likely be ovewritten when the game updates or if local files are validated through Steam. Developing BSIPA itself Prerequisites Microsoft Visual Studio 2019 or later (2017 may work, no guarantees) Tools for C/C++ (MSVC) v141 .NET 4.6.1 SDK and .NET 4.7.2 SDK Building Clone with git clone https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded.git --recursive Create a file, bsinstalldir.txt in the solution root. Do NOT create this in Visual Studio; VS adds a BOM at the begginning of the file that the tools used cannot read. It should contain the path to your Beat Saber installation, using forward slashes with a trailing slash. e.g. C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/ Open BSIPA.sln in Visual Studio. Choose the configuration x64-Net4 Rebuild all. When you make a change somewhere in BSIPA itself, right click on BSIPA-Meta and click Build or Rebuild . This sets up the output in path/to/solution/BSIPA-Meta/bin/ to be what should be copied to the game directory. When making a change to the Mod List, you only need to build the mod list. Install by copying everything in path/to/solution/BSIPA-ModList/bin/ to your game directory. When building a Debug build, all referenced assemblies from Beat Saber will be copied from the install directory provided in bsinstalldir.txt into Refs/ . Any new references should reference the copy in there. When building for Release, it just uses the files already in Refs/" }, - "api/BSIPA_ModList.UI.ViewControllers.html": { - "href": "api/BSIPA_ModList.UI.ViewControllers.html", - "title": "", - "keywords": "Classes MarkdownView A UI component that renders CommonMark Markdown in-game." + "other_api/config/schema.html": { + "href": "other_api/config/schema.html", + "title": "Configuration File Schema", + "keywords": "Configuration File Schema { \"definitions\": { \"Debug_\": { \"type\": \"object\", \"properties\": { \"ShowCallSource\": { \"type\": \"boolean\" }, \"ShowDebug\": { \"type\": \"boolean\" }, \"CondenseModLogs\": { \"type\": \"boolean\" }, \"ShowHandledErrorStackTraces\": { \"type\": \"boolean\" }, \"HideMessagesForPerformance\": { \"type\": \"boolean\" }, \"HideLogThreshold\": { \"type\": \"integer\" }, \"ShowTrace\": { \"type\": \"boolean\" } }, \"required\": [ \"ShowCallSource\", \"ShowDebug\", \"CondenseModLogs\", \"ShowHandledErrorStackTraces\", \"HideMessagesForPerformance\", \"HideLogThreshold\", \"ShowTrace\" ] }, \"Updates_\": { \"type\": \"object\", \"properties\": { \"AutoUpdate\": { \"type\": \"boolean\" }, \"AutoCheckUpdates\": { \"type\": \"boolean\" } }, \"required\": [ \"AutoUpdate\", \"AutoCheckUpdates\" ] } }, \"type\": \"object\", \"properties\": { \"Regenerate\": { \"type\": \"boolean\" }, \"Updates\": { \"$ref\": \"#/definitions/Updates_\" }, \"Debug\": { \"$ref\": \"#/definitions/Debug_\" }, \"YeetMods\": { \"type\": \"boolean\" }, \"LastGameVersion\": { \"type\": [ \"string\", \"null\" ] } }, \"required\": [ \"Regenerate\", \"Updates\", \"Debug\", \"YeetMods\" ] }" }, - "api/IPA.html": { - "href": "api/IPA.html", - "title": "", - "keywords": "Interfaces IBeatSaberPlugin Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. IDisablablePlugin Provides methods to allow runtime enabling and disabling of a plugin. IEnhancedBeatSaberPlugin An enhanced version of a standard BeatSaber plugin. IGenericEnhancedPlugin A generic interface for the modification for enhanced plugins." + "other_api/config/index.html": { + "href": "other_api/config/index.html", + "title": "Title 2", + "keywords": "Title 2" }, - "api/IPA.Utilities.html": { - "href": "api/IPA.Utilities.html", - "title": "", - "keywords": "Classes AlmostVersion A type that wraps so that the string of the version is stored when the string is not a valid . BeatSaber Provides some basic utility methods and properties of Beat Saber CriticalSection Provides utilities for managing various critical sections. Extensions A class providing various extension methods. Ref Utilities to create Ref using type inference. Ref A class to store a reference for passing to methods which cannot take ref parameters. ReflectionUtil A utility class providing reflection helper methods. Utils A class providing static utility functions that in any other language would just exist . Enums AlmostVersion.StoredAs Represents a storage type of either parsed object or raw String . BeatSaber.Release The different types of releases of the game." + "other_api/index.html": { + "href": "other_api/index.html", + "title": "Title1", + "keywords": "Title1" }, - "api/IPA.Utilities.Utils.html": { - "href": "api/IPA.Utilities.Utils.html", - "title": "Class Utils", - "keywords": "Class Utils A class providing static utility functions that in any other language would just exist . Inheritance Object Utils Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Utils Properties | Improve this Doc View Source CanUseDateTimeNowSafely Whether you can safely use Now without Mono throwing a fit. Declaration public static bool CanUseDateTimeNowSafely { get; } Property Value Type Description Boolean true if you can use Now safely, false otherwise Methods | Improve this Doc View Source ByteArrayToString(Byte[]) Converts a byte array to a hex string. Declaration public static string ByteArrayToString(byte[] ba) Parameters Type Name Description Byte [] ba the byte array Returns Type Description String the hex form of the array | Improve this Doc View Source CopyAll(DirectoryInfo, DirectoryInfo, String, Func) Copies all files from source to target . Declaration public static void CopyAll(DirectoryInfo source, DirectoryInfo target, string appendFileName = \"\", Func onCopyException = null) Parameters Type Name Description DirectoryInfo source the source directory DirectoryInfo target the destination directory String appendFileName the filename of the file to append together Func < Exception , FileInfo , Boolean > onCopyException a delegate called when there is an error copying. Return true to keep going. | Improve this Doc View Source CurrentTime() Gets the current DateTime if supported, otherwise, if Mono would throw a fit, returns MinValue plus some value, such that each time it is called the value will be greater than the previous result. Not suitable for timing. Declaration public static DateTime CurrentTime() Returns Type Description DateTime the current DateTime if supported, otherwise some indeterminant increasing value. | Improve this Doc View Source GetRelativePath(String, String) Gets a path relative to the provided folder. Declaration public static string GetRelativePath(string file, string folder) Parameters Type Name Description String file the file to relativize String folder the source folder Returns Type Description String a path to get from folder to file | Improve this Doc View Source StringToByteArray(String) Converts a hex string to a byte array. Declaration public static byte[] StringToByteArray(string hex) Parameters Type Name Description String hex the hex stream Returns Type Description Byte [] the corresponding byte array | Improve this Doc View Source UnsafeCompare(Byte[], Byte[]) Uses unsafe code to compare 2 byte arrays quickly. Declaration public static bool UnsafeCompare(byte[] a1, byte[] a2) Parameters Type Name Description Byte [] a1 array 1 Byte [] a2 array 2 Returns Type Description Boolean whether or not they are byte-for-byte equal | Improve this Doc View Source VersionCompareNoPrerelease(SemVer.Version, SemVer.Version) Compares a pair of s ignoring both the prerelease and build fields. Declaration public static int VersionCompareNoPrerelease(SemVer.Version l, SemVer.Version r) Parameters Type Name Description SemVer.Version l the left value SemVer.Version r the right value Returns Type Description Int32 -1 if l is less than r, 0 if they are equal in the numeric portion, or 1 if l is greater than r" + "articles/start-user.html": { + "href": "articles/start-user.html", + "title": "Installing BSIPA", + "keywords": "Installing BSIPA Note This guide assumes that you are starting completely fresh. Grab a release from the GitHub Releases page . Make sure to download BSIPA.zip , as ModList.zip contains the Beat Saber mod for showing your mods in-game, not the loader itself. Extract the zip into your game installation directory. There should now be a folder named IPA and a file named IPA.exe in the same folder as the game executable. For example, if you are installing BSIPA in Beat Saber, it might look like this after extraction: Run IPA.exe by double clicking it. A console window should pop up, and eventually, a gold message asking you to press a key will appear. Here is an example of a successful installation: Note In some cases, this may fail, something like this: In these cases, try dragging the game executable over IPA.exe . After installing, your game directory should look something like this: Note At this point it is recommended to run the game once before continuing, to ensure that things are installed correctly. The first run should create a UserData folder with Beat Saber IPA.json and Disabled Mods.json , as well as a Logs folder with several subfolders with their own files. If these are created, then the installation was very likely successful. Tip If you are not installing BSIPA on Beat Saber, you probably want to go to the config at UserData/Beat Saber IPA.json and set both of the following to false : { ... \"Updates\": { \"AutoUpdate\": false, \"AutoCheckUpdates\": false }, ... } From here, just place all of your plugins in the Plugins folder, and you're all set! Many plugins will come in a zip such that the root of the zip represents the game install directory, so all you may have to do is extract the plugin into the game installation folder. Thats really all you have to do! The installation should persist across game updates for as long as winhttp.dll is present in the game directory, though your plugins will be moved to a different folder when it does update so things don't break horribly." + }, + "api/index.html": { + "href": "api/index.html", + "title": "BSIPA API Documentation", + "keywords": "BSIPA API Documentation Welcome to the full class documentation! To see guides, head over to the Articles tab . Select a namespace and a class on the left to get started." + }, + "articles/start-dev.html": { + "href": "articles/start-dev.html", + "title": "Creating your own mod", + "keywords": "Creating your own mod" + }, + "api/IPA.Utilities.ReflectionUtil.html": { + "href": "api/IPA.Utilities.ReflectionUtil.html", + "title": "Class ReflectionUtil", + "keywords": "Class ReflectionUtil A utility class providing reflection helper methods. Inheritance Object ReflectionUtil Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class ReflectionUtil Methods | Improve this Doc View Source CallNonStaticMethod(String, String, String, Type[], Object[]) Calls an instance method on a type specified by functionClass and dependency . Declaration public static object CallNonStaticMethod(string functionClass, string dependency, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description String functionClass the type name String dependency the assembly the type is in String function the name of the method to call Type [] methodSig the type signature of the method Object [] parameters the method parameters Returns Type Description Object the result of the call See Also CallNonStaticMethod(Type, String, Type[], Object[]) | Improve this Doc View Source CallNonStaticMethod(Type, String, Type[], Object[]) Calls an instance method on a new object. Declaration public static object CallNonStaticMethod(this Type type, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description Type type the object type String function the name of the method to call Type [] methodSig the type signature Object [] parameters the parameters Returns Type Description Object the result of the call | Improve this Doc View Source CallNonStaticMethod(Type, String, Type[], Object[]) Calls an instance method on a new object. Declaration public static T CallNonStaticMethod(this Type type, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description Type type the object type String function the name of the method to call Type [] methodSig the type signature Object [] parameters the parameters Returns Type Description T the result of the call Type Parameters Name Description T the return type See Also CallNonStaticMethod(Type, String, Type[], Object[]) | Improve this Doc View Source CopyComponent(Component, Type, GameObject, Type) Copies a component original to a component of overridingType on the destination . Declaration public static Component CopyComponent(this Component original, Type overridingType, GameObject destination, Type originalTypeOverride = null) Parameters Type Name Description Component original the original component Type overridingType the new component's type GameObject destination the destination GameObject Type originalTypeOverride overrides the source component type (for example, to a superclass) Returns Type Description Component the copied component | Improve this Doc View Source CopyComponent(Component, GameObject, Type) A generic version of CopyComponent(Component, Type, GameObject, Type) . Declaration public static T CopyComponent(this Component original, GameObject destination, Type originalTypeOverride = null) where T : Component Parameters Type Name Description Component original the original component GameObject destination the destination game object Type originalTypeOverride overrides the source component type (for example, to a superclass) Returns Type Description T the copied component Type Parameters Name Description T the overriding type See Also CopyComponent(Component, Type, GameObject, Type) | Improve this Doc View Source GetPrivateField(Object, String) Gets the value of a (potentially) private field. Declaration public static T GetPrivateField(this object obj, string fieldName) Parameters Type Name Description Object obj the object instance to pull from String fieldName the name of the field to read Returns Type Description T the value of the field Type Parameters Name Description T the type of te field (result casted) | Improve this Doc View Source InvokePrivateMethod(Object, String, Object[]) Invokes a (potentially) private method. Declaration public static object InvokePrivateMethod(this object obj, string methodName, params object[] methodParams) Parameters Type Name Description Object obj the object to call from String methodName the method name Object [] methodParams the method parameters Returns Type Description Object the return value | Improve this Doc View Source InvokePrivateMethod(Object, String, Object[]) Invokes a (potentially) private method. Declaration public static T InvokePrivateMethod(this object obj, string methodName, params object[] methodParams) Parameters Type Name Description Object obj the object to call from String methodName the method name to call Object [] methodParams the method's parameters Returns Type Description T the return value Type Parameters Name Description T the return type | Improve this Doc View Source SetPrivateField(Object, String, Object) Sets a (potentially) private field on the target object. Declaration public static void SetPrivateField(this object obj, string fieldName, object value) Parameters Type Name Description Object obj the object instance String fieldName the field to set Object value the value to set it to | Improve this Doc View Source SetPrivateProperty(Object, String, Object) Sets a (potentially) private property on the target object. Declaration public static void SetPrivateProperty(this object obj, string propertyName, object value) Parameters Type Name Description Object obj the target object instance String propertyName the name of the property Object value the value to set it to" + }, + "api/IPA.Utilities.Ref.html": { + "href": "api/IPA.Utilities.Ref.html", + "title": "Class Ref", + "keywords": "Class Ref Utilities to create Ref using type inference. Inheritance Object Ref Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Ref Methods | Improve this Doc View Source Create(T) Creates a Ref . Declaration public static Ref Create(T val) Parameters Type Name Description T val the default value. Returns Type Description Ref the new Ref . Type Parameters Name Description T the type to reference." + }, + "api/IPA.Utilities.Ref-1.html": { + "href": "api/IPA.Utilities.Ref-1.html", + "title": "Class Ref", + "keywords": "Class Ref A class to store a reference for passing to methods which cannot take ref parameters. Inheritance Object Ref Implements IComparable IComparable < Ref > Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public class Ref : IComparable, IComparable> Type Parameters Name Description T the type of the value Constructors | Improve this Doc View Source Ref(T) Constructor. Declaration public Ref(T reference) Parameters Type Name Description T reference the initial value of the reference Properties | Improve this Doc View Source Error An exception that was generated while creating the value. Declaration public Exception Error { get; set; } Property Value Type Description Exception the error held in this Ref | Improve this Doc View Source Value The value of the reference Declaration public T Value { get; set; } Property Value Type Description T the value wrapped by this Ref Methods | Improve this Doc View Source CompareTo(T) Compares the wrapped object to the other object. Declaration public int CompareTo(T other) Parameters Type Name Description T other the object to compare to Returns Type Description Int32 the value of the comparison | Improve this Doc View Source CompareTo(Ref) Compares the wrapped object to the other wrapped object. Declaration public int CompareTo(Ref other) Parameters Type Name Description Ref other the wrapped object to compare to Returns Type Description Int32 the value of the comparison | Improve this Doc View Source Verify() Throws error if one was set. Declaration public void Verify() Operators | Improve this Doc View Source Implicit(T to Ref) Converts a value T to a reference to that object. Will overwrite the reference in the left hand expression if there is one. Declaration public static implicit operator Ref(T toConvert) Parameters Type Name Description T toConvert the value to wrap in the Ref Returns Type Description Ref the Ref wrapping the value | Improve this Doc View Source Implicit(Ref to T) Converts to referenced type, returning the stored reference. Declaration public static implicit operator T(Ref self) Parameters Type Name Description Ref self the object to be de-referenced Returns Type Description T the value referenced by the object Implements System.IComparable System.IComparable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + }, + "api/IPA.Utilities.Extensions.html": { + "href": "api/IPA.Utilities.Extensions.html", + "title": "Class Extensions", + "keywords": "Class Extensions A class providing various extension methods. Inheritance Object Extensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Extensions Methods | Improve this Doc View Source GetDefault(Type) Gets the default value for a given Type . Declaration public static object GetDefault(this Type type) Parameters Type Name Description Type type the Type to get the default value for Returns Type Description Object the default value of type | Improve this Doc View Source Unwrap(Nullable) Unwraps a Nullable where T is Boolean such that if the value is null, it gives false . Declaration public static bool Unwrap(this bool? self) Parameters Type Name Description Nullable < Boolean > self the bool? to unwrap Returns Type Description Boolean the unwrapped value, or false if it was null" }, "api/IPA.Utilities.CriticalSection.html": { "href": "api/IPA.Utilities.CriticalSection.html", @@ -199,119 +239,79 @@ "title": "", "keywords": "Interfaces IEnhancedPlugin An enhanced version of the standard IPA plugin. IPlugin Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins." }, - "api/IPA.Logging.Printers.ColoredConsolePrinter.html": { - "href": "api/IPA.Logging.Printers.ColoredConsolePrinter.html", - "title": "Class ColoredConsolePrinter", - "keywords": "Class ColoredConsolePrinter Prints a pretty message to the console. Inheritance Object LogPrinter ColoredConsolePrinter Inherited Members LogPrinter.StartPrint() LogPrinter.EndPrint() Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class ColoredConsolePrinter : LogPrinter Properties | Improve this Doc View Source Color The color to print messages as. Declaration public ConsoleColor Color { get; set; } Property Value Type Description ConsoleColor the color to print this message as | Improve this Doc View Source Filter A filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter to apply to this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the console window. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Logging.LogPrinter.html": { - "href": "api/IPA.Logging.LogPrinter.html", - "title": "Class LogPrinter", - "keywords": "Class LogPrinter The log printer's base class. Inheritance Object LogPrinter ColoredConsolePrinter ColorlessConsolePrinter GZFilePrinter Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public abstract class LogPrinter Properties | Improve this Doc View Source Filter Provides a filter for which log levels to allow through. Declaration public abstract Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the level to filter to Methods | Improve this Doc View Source EndPrint() Called after the last print in a group. May be called multiple times. Use this to dispose file handles and the like. Declaration public virtual void EndPrint() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints a provided message from a given log at the specified time. Declaration public abstract void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the log level DateTime time the time the message was composed String logName the name of the log that created this message String message the message | Improve this Doc View Source StartPrint() Called before the first print in a group. May be called multiple times. Use this to create file handles and the like. Declaration public virtual void StartPrint() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Loader.PluginManager.PluginEnableDelegate.html": { - "href": "api/IPA.Loader.PluginManager.PluginEnableDelegate.html", - "title": "Delegate PluginManager.PluginEnableDelegate", - "keywords": "Delegate PluginManager.PluginEnableDelegate An invoker for the PluginEnabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginEnableDelegate(PluginLoader.PluginInfo plugin, bool needsRestart); Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was enabled Boolean needsRestart whether it needs a restart to take effect Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Loader.PluginManager.PluginDisableDelegate.html": { - "href": "api/IPA.Loader.PluginManager.PluginDisableDelegate.html", - "title": "Delegate PluginManager.PluginDisableDelegate", - "keywords": "Delegate PluginManager.PluginDisableDelegate An invoker for the PluginDisabled event. Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public delegate void PluginDisableDelegate(PluginLoader.PluginMetadata plugin, bool needsRestart); Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin that was disabled Boolean needsRestart whether it needs a restart to take effect Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Loader.PluginLoader.PluginInfo.html": { - "href": "api/IPA.Loader.PluginLoader.PluginInfo.html", - "title": "Class PluginLoader.PluginInfo", - "keywords": "Class PluginLoader.PluginInfo A container object for all the data relating to a plugin. Inheritance Object PluginLoader.PluginInfo Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public class PluginInfo Properties | Improve this Doc View Source Metadata Metadata for the plugin. Declaration public PluginLoader.PluginMetadata Metadata { get; } Property Value Type Description PluginLoader.PluginMetadata the metadata for this plugin Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Config.Config.html": { + "href": "api/IPA.Config.Config.html", + "title": "Class Config", + "keywords": "Class Config A class to handle updating ConfigProviders automatically Inheritance Object Config Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public static class Config Methods | Improve this Doc View Source GetProviderFor(String, String[]) Gets an IConfigProvider using the specified list of preferred config types. Declaration public static IConfigProvider GetProviderFor(string configName, params string[] extensions) Parameters Type Name Description String configName the name of the mod for this config String [] extensions the preferred config types to try to get Returns Type Description IConfigProvider an IConfigProvider of the requested type, or of type JSON. | Improve this Doc View Source MakeLink(IConfigProvider, Action>) Creates a linked Ref for the config provider. This Ref will be automatically updated whenever the file on-disk changes. Declaration public static Ref MakeLink(this IConfigProvider config, Action> onChange = null) Parameters Type Name Description IConfigProvider config the IConfigProvider to create a link to Action < IConfigProvider , Ref > onChange an action to perform on value change Returns Type Description Ref a Ref to an ever-changing value, mirroring whatever the file contains. Type Parameters Name Description T the type of the parsed value | Improve this Doc View Source Register(Type) Registers a IConfigProvider to use for configs. Declaration public static void Register(Type type) Parameters Type Name Description Type type the type to register | Improve this Doc View Source Register() Registers a IConfigProvider to use for configs. Declaration public static void Register() where T : IConfigProvider Type Parameters Name Description T the type to register | Improve this Doc View Source RemoveLinks(IConfigProvider) Removes all linked Ref such that they are no longer updated. Declaration public static void RemoveLinks(this IConfigProvider config) Parameters Type Name Description IConfigProvider config the IConfigProvider to unlink" }, - "api/IPA.Config.ModPrefs.html": { - "href": "api/IPA.Config.ModPrefs.html", - "title": "Class ModPrefs", - "keywords": "Class ModPrefs Allows to get and set preferences for your mod. Inheritance Object ModPrefs Implements IModPrefs Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [Obsolete(\"Uses IniFile, which uses 16 bit system calls. Use BS Utils INI system for now.\")] public class ModPrefs : IModPrefs Constructors | Improve this Doc View Source ModPrefs(PluginLoader.PluginMetadata) Constructs a ModPrefs object for the provide plugin. Declaration public ModPrefs(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to get the preferences file for Methods | Improve this Doc View Source GetBool(String, String, Boolean, Boolean) Gets a bool from the ini. Declaration public static bool GetBool(string section, string name, bool defaultValue = false, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Boolean | Improve this Doc View Source GetFloat(String, String, Single, Boolean) Gets a float from the ini. Declaration public static float GetFloat(string section, string name, float defaultValue = 0F, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Single defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Single | Improve this Doc View Source GetInt(String, String, Int32, Boolean) Gets an int from the ini. Declaration public static int GetInt(string section, string name, int defaultValue = 0, bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description Int32 | Improve this Doc View Source GetString(String, String, String, Boolean) Gets a string from the ini. Declaration public static string GetString(string section, string name, string defaultValue = \"\", bool autoSave = false) Parameters Type Name Description String section Section of the key. String name Name of the key. String defaultValue Value that should be used when no value is found. Boolean autoSave Whether or not the default value should be written if no value is found. Returns Type Description String | Improve this Doc View Source HasKey(String, String) Checks whether or not a key exists in the ini. Declaration public static bool HasKey(string section, string name) Parameters Type Name Description String section Section of the key. String name Name of the key. Returns Type Description Boolean | Improve this Doc View Source SetBool(String, String, Boolean) Sets a bool in the ini. Declaration public static void SetBool(string section, string name, bool value) Parameters Type Name Description String section Section of the key. String name Name of the key. Boolean value Value that should be written. | Improve this Doc View Source SetFloat(String, String, Single) Sets a float in the ini. Declaration public static void SetFloat(string section, string name, float value) Parameters Type Name Description String section Section of the key. String name Name of the key. Single value Value that should be written. | Improve this Doc View Source SetInt(String, String, Int32) Sets an int in the ini. Declaration public static void SetInt(string section, string name, int value) Parameters Type Name Description String section Section of the key. String name Name of the key. Int32 value Value that should be written. | Improve this Doc View Source SetString(String, String, String) Sets a string in the ini. Declaration public static void SetString(string section, string name, string value) Parameters Type Name Description String section Section of the key. String name Name of the key. String value Value that should be written. Explicit Interface Implementations | Improve this Doc View Source IModPrefs.GetBool(String, String, Boolean, Boolean) Declaration bool IModPrefs.GetBool(string section, string name, bool defaultValue, bool autoSave) Parameters Type Name Description String section String name Boolean defaultValue Boolean autoSave Returns Type Description Boolean | Improve this Doc View Source IModPrefs.GetFloat(String, String, Single, Boolean) Declaration float IModPrefs.GetFloat(string section, string name, float defaultValue, bool autoSave) Parameters Type Name Description String section String name Single defaultValue Boolean autoSave Returns Type Description Single | Improve this Doc View Source IModPrefs.GetInt(String, String, Int32, Boolean) Declaration int IModPrefs.GetInt(string section, string name, int defaultValue, bool autoSave) Parameters Type Name Description String section String name Int32 defaultValue Boolean autoSave Returns Type Description Int32 | Improve this Doc View Source IModPrefs.GetString(String, String, String, Boolean) Declaration string IModPrefs.GetString(string section, string name, string defaultValue, bool autoSave) Parameters Type Name Description String section String name String defaultValue Boolean autoSave Returns Type Description String | Improve this Doc View Source IModPrefs.HasKey(String, String) Declaration bool IModPrefs.HasKey(string section, string name) Parameters Type Name Description String section String name Returns Type Description Boolean | Improve this Doc View Source IModPrefs.SetBool(String, String, Boolean) Declaration void IModPrefs.SetBool(string section, string name, bool value) Parameters Type Name Description String section String name Boolean value | Improve this Doc View Source IModPrefs.SetFloat(String, String, Single) Declaration void IModPrefs.SetFloat(string section, string name, float value) Parameters Type Name Description String section String name Single value | Improve this Doc View Source IModPrefs.SetInt(String, String, Int32) Declaration void IModPrefs.SetInt(string section, string name, int value) Parameters Type Name Description String section String name Int32 value | Improve this Doc View Source IModPrefs.SetString(String, String, String) Declaration void IModPrefs.SetString(string section, string name, string value) Parameters Type Name Description String section String name String value Implements IModPrefs Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Config.Config.PreferAttribute.html": { + "href": "api/IPA.Config.Config.PreferAttribute.html", + "title": "Class Config.PreferAttribute", + "keywords": "Class Config.PreferAttribute Specifies that a particular parameter is preferred to be a specific type of IConfigProvider . If it is not available, also specifies backups. If none are available, the default is used. Inheritance Object Attribute Config.PreferAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Parameter)] public class PreferAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source PreferAttribute(String[]) Constructs the attribute with a specific preference list. Each entry is the extension without a '.' Declaration public PreferAttribute(params string[] preference) Parameters Type Name Description String [] preference The preferences in order of preference. Properties | Improve this Doc View Source PreferenceOrder The order of preference for the config type. Declaration public string[] PreferenceOrder { get; } Property Value Type Description String [] the list of config extensions in order of preference Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, "api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html": { "href": "api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html", "title": "Class MarkdownView", "keywords": "Class MarkdownView A UI component that renders CommonMark Markdown in-game. Inheritance Object UnityEngine.Object UnityEngine.Component UnityEngine.Behaviour UnityEngine.MonoBehaviour MarkdownView Inherited Members UnityEngine.MonoBehaviour.IsInvoking() UnityEngine.MonoBehaviour.CancelInvoke() UnityEngine.MonoBehaviour.Invoke(System.String, System.Single) UnityEngine.MonoBehaviour.InvokeRepeating(System.String, System.Single, System.Single) UnityEngine.MonoBehaviour.CancelInvoke(System.String) UnityEngine.MonoBehaviour.IsInvoking(System.String) UnityEngine.MonoBehaviour.StartCoroutine(System.String) UnityEngine.MonoBehaviour.StartCoroutine(System.String, System.Object) UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator) UnityEngine.MonoBehaviour.StartCoroutine_Auto(System.Collections.IEnumerator) UnityEngine.MonoBehaviour.StopCoroutine(System.Collections.IEnumerator) UnityEngine.MonoBehaviour.StopCoroutine(UnityEngine.Coroutine) UnityEngine.MonoBehaviour.StopCoroutine(System.String) UnityEngine.MonoBehaviour.StopAllCoroutines() UnityEngine.MonoBehaviour.print(System.Object) UnityEngine.MonoBehaviour.useGUILayout UnityEngine.Behaviour.enabled UnityEngine.Behaviour.isActiveAndEnabled UnityEngine.Component.GetComponent(System.Type) UnityEngine.Component.GetComponent() UnityEngine.Component.GetComponent(System.String) UnityEngine.Component.GetComponentInChildren(System.Type, System.Boolean) UnityEngine.Component.GetComponentInChildren(System.Type) UnityEngine.Component.GetComponentInChildren(System.Boolean) UnityEngine.Component.GetComponentInChildren() UnityEngine.Component.GetComponentsInChildren(System.Type, System.Boolean) UnityEngine.Component.GetComponentsInChildren(System.Type) UnityEngine.Component.GetComponentsInChildren(System.Boolean) UnityEngine.Component.GetComponentsInChildren(System.Boolean, System.Collections.Generic.List) UnityEngine.Component.GetComponentsInChildren() UnityEngine.Component.GetComponentsInChildren(System.Collections.Generic.List) UnityEngine.Component.GetComponentInParent(System.Type) UnityEngine.Component.GetComponentInParent() UnityEngine.Component.GetComponentsInParent(System.Type, System.Boolean) UnityEngine.Component.GetComponentsInParent(System.Type) UnityEngine.Component.GetComponentsInParent(System.Boolean) UnityEngine.Component.GetComponentsInParent(System.Boolean, System.Collections.Generic.List) UnityEngine.Component.GetComponentsInParent() UnityEngine.Component.GetComponents(System.Type) UnityEngine.Component.GetComponents(System.Type, System.Collections.Generic.List) UnityEngine.Component.GetComponents(System.Collections.Generic.List) UnityEngine.Component.GetComponents() UnityEngine.Component.CompareTag(System.String) UnityEngine.Component.SendMessageUpwards(System.String, System.Object, UnityEngine.SendMessageOptions) UnityEngine.Component.SendMessageUpwards(System.String, System.Object) UnityEngine.Component.SendMessageUpwards(System.String) UnityEngine.Component.SendMessageUpwards(System.String, UnityEngine.SendMessageOptions) UnityEngine.Component.SendMessage(System.String, System.Object) UnityEngine.Component.SendMessage(System.String) UnityEngine.Component.SendMessage(System.String, System.Object, UnityEngine.SendMessageOptions) UnityEngine.Component.SendMessage(System.String, UnityEngine.SendMessageOptions) UnityEngine.Component.BroadcastMessage(System.String, System.Object, UnityEngine.SendMessageOptions) UnityEngine.Component.BroadcastMessage(System.String, System.Object) UnityEngine.Component.BroadcastMessage(System.String) UnityEngine.Component.BroadcastMessage(System.String, UnityEngine.SendMessageOptions) UnityEngine.Component.transform UnityEngine.Component.gameObject UnityEngine.Component.tag UnityEngine.Object.GetInstanceID() UnityEngine.Object.GetHashCode() UnityEngine.Object.Equals(System.Object) UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion) UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform) UnityEngine.Object.Instantiate(UnityEngine.Object) UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform) UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Transform, System.Boolean) UnityEngine.Object.Instantiate(T) UnityEngine.Object.Instantiate(T, UnityEngine.Vector3, UnityEngine.Quaternion) UnityEngine.Object.Instantiate(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform) UnityEngine.Object.Instantiate(T, UnityEngine.Transform) UnityEngine.Object.Instantiate(T, UnityEngine.Transform, System.Boolean) UnityEngine.Object.Destroy(UnityEngine.Object, System.Single) UnityEngine.Object.Destroy(UnityEngine.Object) UnityEngine.Object.DestroyImmediate(UnityEngine.Object, System.Boolean) UnityEngine.Object.DestroyImmediate(UnityEngine.Object) UnityEngine.Object.FindObjectsOfType(System.Type) UnityEngine.Object.DontDestroyOnLoad(UnityEngine.Object) UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single) UnityEngine.Object.DestroyObject(UnityEngine.Object) UnityEngine.Object.FindSceneObjectsOfType(System.Type) UnityEngine.Object.FindObjectsOfTypeIncludingAssets(System.Type) UnityEngine.Object.FindObjectsOfType() UnityEngine.Object.FindObjectOfType() UnityEngine.Object.FindObjectsOfTypeAll(System.Type) UnityEngine.Object.FindObjectOfType(System.Type) UnityEngine.Object.ToString() UnityEngine.Object.name UnityEngine.Object.hideFlags Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : BSIPA_ModList.UI.ViewControllers Assembly : BSIPA-ModList.dll Syntax [RequireComponent(typeof(RectTransform))] public class MarkdownView : MonoBehaviour Constructors | Improve this Doc View Source MarkdownView() Creates a new MarkdownView . Should never be called directly. Instead, use UnityEngine.GameObject.AddComponent``1 . Declaration public MarkdownView() Fields | Improve this Doc View Source HasEmbeddedImage This function will be called whenever attempting to resolve an image URI, to ensure that the image exists in the embedded assembly. Declaration public Func HasEmbeddedImage Field Value Type Description Func < String , Boolean > a delegate for the function to call Properties | Improve this Doc View Source Markdown The text to be rendered. Declaration public string Markdown { get; set; } Property Value Type Description String the text to render as Markdown Remarks When this is assigned, the object is marked dirty. It will re-render on the next Update tick. | Improve this Doc View Source rectTransform A convenience property to access the UnityEngine.RectTransform on the UnityEngine.GameObject this is on. Declaration public RectTransform rectTransform { get; } Property Value Type Description UnityEngine.RectTransform the UnityEngine.RectTransform associated with this component Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Utilities.BeatSaber.Release.html": { - "href": "api/IPA.Utilities.BeatSaber.Release.html", - "title": "Enum BeatSaber.Release", - "keywords": "Enum BeatSaber.Release The different types of releases of the game. Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public enum Release Fields Name Description Oculus Indicates an Oculus release. Steam Indicates a Steam release. Extension Methods ReflectionUtil.SetPrivateField(String, Object) ReflectionUtil.GetPrivateField(String) ReflectionUtil.SetPrivateProperty(String, Object) ReflectionUtil.InvokePrivateMethod(String, Object[]) ReflectionUtil.InvokePrivateMethod(String, Object[])" - }, - "api/IPA.IEnhancedBeatSaberPlugin.html": { - "href": "api/IPA.IEnhancedBeatSaberPlugin.html", - "title": "Interface IEnhancedBeatSaberPlugin", - "keywords": "Interface IEnhancedBeatSaberPlugin An enhanced version of a standard BeatSaber plugin. Inherited Members IBeatSaberPlugin.OnApplicationStart() IBeatSaberPlugin.OnApplicationQuit() IBeatSaberPlugin.OnUpdate() IBeatSaberPlugin.OnFixedUpdate() IBeatSaberPlugin.OnSceneLoaded(Scene, LoadSceneMode) IBeatSaberPlugin.OnSceneUnloaded(Scene) IBeatSaberPlugin.OnActiveSceneChanged(Scene, Scene) IGenericEnhancedPlugin.Filter IGenericEnhancedPlugin.OnLateUpdate() Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IEnhancedBeatSaberPlugin : IBeatSaberPlugin, IGenericEnhancedPlugin Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.IDisablablePlugin.html": { - "href": "api/IPA.IDisablablePlugin.html", - "title": "Interface IDisablablePlugin", - "keywords": "Interface IDisablablePlugin Provides methods to allow runtime enabling and disabling of a plugin. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IDisablablePlugin Methods | Improve this Doc View Source OnDisable() Called when a plugin is disabled at runtime. This should disable things like Harmony patches and unsubscribe from events. After this is called there should be no lingering effects of the mod. Declaration void OnDisable() Remarks This will get called at shutdown, after OnApplicationQuit() , as well as when the plugin is disabled at runtime. | Improve this Doc View Source OnEnable() Called when a plugin is enabled. This is where you should set up Harmony patches and the like. Declaration void OnEnable() Remarks This will be called after Init, and will be called when the plugin loads normally too. When a plugin is disabled at startup, neither this nor Init will be called until it is enabled. Init will only ever be called once. Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Config.IConfigProvider.html": { - "href": "api/IPA.Config.IConfigProvider.html", - "title": "Interface IConfigProvider", - "keywords": "Interface IConfigProvider An interface for configuration providers. Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public interface IConfigProvider Properties | Improve this Doc View Source Filename Will be set with the filename (no extension) to save to. When saving, the implementation should add the appropriate extension. Should error if set multiple times. Declaration string Filename { set; } Property Value Type Description String the extensionless filename to save to | Improve this Doc View Source HasChanged Returns true if object has changed since the last save Declaration bool HasChanged { get; } Property Value Type Description Boolean true if object has changed since the last save, else false | Improve this Doc View Source InMemoryChanged Returns true if the data in memory has been changed - notably including loads. Declaration bool InMemoryChanged { get; set; } Property Value Type Description Boolean true if the data in memory has been changed, else false | Improve this Doc View Source LastModified Gets the last time the config was modified. Declaration DateTime LastModified { get; } Property Value Type Description DateTime the last time the config file was modified Methods | Improve this Doc View Source Load() Loads the state of the file on disk. Declaration void Load() | Improve this Doc View Source Parse() Loads the data provided by this IConfigProvider into an object of type T . Declaration T Parse() Returns Type Description T the values from the config provider parsed into the object Type Parameters Name Description T the type of the object to parse into | Improve this Doc View Source Save() Saves configuration to file. Should error if not a root object. Declaration void Save() | Improve this Doc View Source Store(T) Stores the data from obj into the IConfigProvider . Declaration void Store(T obj) Parameters Type Name Description T obj the object containing the data to save Type Parameters Name Description T the type of obj Extension Methods Config.MakeLink(IConfigProvider, Action>) Config.RemoveLinks(IConfigProvider) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" - }, - "api/IPA.Config.Config.html": { - "href": "api/IPA.Config.Config.html", - "title": "Class Config", - "keywords": "Class Config A class to handle updating ConfigProviders automatically Inheritance Object Config Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public static class Config Methods | Improve this Doc View Source GetProviderFor(String, String[]) Gets an IConfigProvider using the specified list of preferred config types. Declaration public static IConfigProvider GetProviderFor(string configName, params string[] extensions) Parameters Type Name Description String configName the name of the mod for this config String [] extensions the preferred config types to try to get Returns Type Description IConfigProvider an IConfigProvider of the requested type, or of type JSON. | Improve this Doc View Source MakeLink(IConfigProvider, Action>) Creates a linked Ref for the config provider. This Ref will be automatically updated whenever the file on-disk changes. Declaration public static Ref MakeLink(this IConfigProvider config, Action> onChange = null) Parameters Type Name Description IConfigProvider config the IConfigProvider to create a link to Action < IConfigProvider , Ref > onChange an action to perform on value change Returns Type Description Ref a Ref to an ever-changing value, mirroring whatever the file contains. Type Parameters Name Description T the type of the parsed value | Improve this Doc View Source Register(Type) Registers a IConfigProvider to use for configs. Declaration public static void Register(Type type) Parameters Type Name Description Type type the type to register | Improve this Doc View Source Register() Registers a IConfigProvider to use for configs. Declaration public static void Register() where T : IConfigProvider Type Parameters Name Description T the type to register | Improve this Doc View Source RemoveLinks(IConfigProvider) Removes all linked Ref such that they are no longer updated. Declaration public static void RemoveLinks(this IConfigProvider config) Parameters Type Name Description IConfigProvider config the IConfigProvider to unlink" - }, - "api/IPA.Config.Config.NameAttribute.html": { - "href": "api/IPA.Config.Config.NameAttribute.html", - "title": "Class Config.NameAttribute", - "keywords": "Class Config.NameAttribute Specifies a preferred config name, instead of using the plugin's name. Inheritance Object Attribute Config.NameAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public class NameAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source NameAttribute(String) Constructs the attribute with a specific name. Declaration public NameAttribute(string name) Parameters Type Name Description String name the name to use for the config. Properties | Improve this Doc View Source Name The name to use for the config. Declaration public string Name { get; } Property Value Type Description String the name to use for the config Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.html": { + "href": "api/IPA.html", + "title": "", + "keywords": "Interfaces IBeatSaberPlugin Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. IDisablablePlugin Provides methods to allow runtime enabling and disabling of a plugin. IEnhancedBeatSaberPlugin An enhanced version of a standard BeatSaber plugin. IGenericEnhancedPlugin A generic interface for the modification for enhanced plugins." }, - "api/IPA.Utilities.ReflectionUtil.html": { - "href": "api/IPA.Utilities.ReflectionUtil.html", - "title": "Class ReflectionUtil", - "keywords": "Class ReflectionUtil A utility class providing reflection helper methods. Inheritance Object ReflectionUtil Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class ReflectionUtil Methods | Improve this Doc View Source CallNonStaticMethod(String, String, String, Type[], Object[]) Calls an instance method on a type specified by functionClass and dependency . Declaration public static object CallNonStaticMethod(string functionClass, string dependency, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description String functionClass the type name String dependency the assembly the type is in String function the name of the method to call Type [] methodSig the type signature of the method Object [] parameters the method parameters Returns Type Description Object the result of the call See Also CallNonStaticMethod(Type, String, Type[], Object[]) | Improve this Doc View Source CallNonStaticMethod(Type, String, Type[], Object[]) Calls an instance method on a new object. Declaration public static object CallNonStaticMethod(this Type type, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description Type type the object type String function the name of the method to call Type [] methodSig the type signature Object [] parameters the parameters Returns Type Description Object the result of the call | Improve this Doc View Source CallNonStaticMethod(Type, String, Type[], Object[]) Calls an instance method on a new object. Declaration public static T CallNonStaticMethod(this Type type, string function, Type[] methodSig, params object[] parameters) Parameters Type Name Description Type type the object type String function the name of the method to call Type [] methodSig the type signature Object [] parameters the parameters Returns Type Description T the result of the call Type Parameters Name Description T the return type See Also CallNonStaticMethod(Type, String, Type[], Object[]) | Improve this Doc View Source CopyComponent(Component, Type, GameObject, Type) Copies a component original to a component of overridingType on the destination . Declaration public static Component CopyComponent(this Component original, Type overridingType, GameObject destination, Type originalTypeOverride = null) Parameters Type Name Description Component original the original component Type overridingType the new component's type GameObject destination the destination GameObject Type originalTypeOverride overrides the source component type (for example, to a superclass) Returns Type Description Component the copied component | Improve this Doc View Source CopyComponent(Component, GameObject, Type) A generic version of CopyComponent(Component, Type, GameObject, Type) . Declaration public static T CopyComponent(this Component original, GameObject destination, Type originalTypeOverride = null) where T : Component Parameters Type Name Description Component original the original component GameObject destination the destination game object Type originalTypeOverride overrides the source component type (for example, to a superclass) Returns Type Description T the copied component Type Parameters Name Description T the overriding type See Also CopyComponent(Component, Type, GameObject, Type) | Improve this Doc View Source GetPrivateField(Object, String) Gets the value of a (potentially) private field. Declaration public static T GetPrivateField(this object obj, string fieldName) Parameters Type Name Description Object obj the object instance to pull from String fieldName the name of the field to read Returns Type Description T the value of the field Type Parameters Name Description T the type of te field (result casted) | Improve this Doc View Source InvokePrivateMethod(Object, String, Object[]) Invokes a (potentially) private method. Declaration public static object InvokePrivateMethod(this object obj, string methodName, params object[] methodParams) Parameters Type Name Description Object obj the object to call from String methodName the method name Object [] methodParams the method parameters Returns Type Description Object the return value | Improve this Doc View Source InvokePrivateMethod(Object, String, Object[]) Invokes a (potentially) private method. Declaration public static T InvokePrivateMethod(this object obj, string methodName, params object[] methodParams) Parameters Type Name Description Object obj the object to call from String methodName the method name to call Object [] methodParams the method's parameters Returns Type Description T the return value Type Parameters Name Description T the return type | Improve this Doc View Source SetPrivateField(Object, String, Object) Sets a (potentially) private field on the target object. Declaration public static void SetPrivateField(this object obj, string fieldName, object value) Parameters Type Name Description Object obj the object instance String fieldName the field to set Object value the value to set it to | Improve this Doc View Source SetPrivateProperty(Object, String, Object) Sets a (potentially) private property on the target object. Declaration public static void SetPrivateProperty(this object obj, string propertyName, object value) Parameters Type Name Description Object obj the target object instance String propertyName the name of the property Object value the value to set it to" + "api/IPA.Old.IPlugin.html": { + "href": "api/IPA.Old.IPlugin.html", + "title": "Interface IPlugin", + "keywords": "Interface IPlugin Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. Namespace : IPA.Old Assembly : IPA.Loader.dll Syntax [Obsolete(\"When building plugins for Beat Saber, use IBeatSaberPlugin\")] public interface IPlugin Properties | Improve this Doc View Source Name Gets the name of the plugin. Declaration string Name { get; } Property Value Type Description String | Improve this Doc View Source Version Gets the version of the plugin. Declaration string Version { get; } Property Value Type Description String Methods | Improve this Doc View Source OnApplicationQuit() Gets invoked when the application is closed. Declaration void OnApplicationQuit() | Improve this Doc View Source OnApplicationStart() Gets invoked when the application is started. Declaration void OnApplicationStart() | Improve this Doc View Source OnFixedUpdate() Gets invoked on ever physics update. Declaration void OnFixedUpdate() | Improve this Doc View Source OnLevelWasInitialized(Int32) Gets invoked after the first update cycle after a level was loaded. Declaration void OnLevelWasInitialized(int level) Parameters Type Name Description Int32 level | Improve this Doc View Source OnLevelWasLoaded(Int32) Gets invoked whenever a level is loaded. Declaration void OnLevelWasLoaded(int level) Parameters Type Name Description Int32 level | Improve this Doc View Source OnUpdate() Gets invoked on every graphic update. Declaration void OnUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Utilities.Ref.html": { - "href": "api/IPA.Utilities.Ref.html", - "title": "Class Ref", - "keywords": "Class Ref Utilities to create Ref using type inference. Inheritance Object Ref Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Ref Methods | Improve this Doc View Source Create(T) Creates a Ref . Declaration public static Ref Create(T val) Parameters Type Name Description T val the default value. Returns Type Description Ref the new Ref . Type Parameters Name Description T the type to reference." + "api/IPA.Old.IEnhancedPlugin.html": { + "href": "api/IPA.Old.IEnhancedPlugin.html", + "title": "Interface IEnhancedPlugin", + "keywords": "Interface IEnhancedPlugin An enhanced version of the standard IPA plugin. Inherited Members IPlugin.Name IPlugin.Version IPlugin.OnApplicationStart() IPlugin.OnApplicationQuit() IPlugin.OnLevelWasLoaded(Int32) IPlugin.OnLevelWasInitialized(Int32) IPlugin.OnUpdate() IPlugin.OnFixedUpdate() Namespace : IPA.Old Assembly : IPA.Loader.dll Syntax [Obsolete(\"When building plugins for Beat Saber, use IEnhancedBeatSaberPlugin\")] public interface IEnhancedPlugin : IPlugin Properties | Improve this Doc View Source Filter Gets a list of executables this plugin should be executed on (without the file ending) Declaration string[] Filter { get; } Property Value Type Description String [] Examples { \"PlayClub\", \"PlayClubStudio\" } Methods | Improve this Doc View Source OnLateUpdate() Called after Update. Declaration void OnLateUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Utilities.Ref-1.html": { - "href": "api/IPA.Utilities.Ref-1.html", - "title": "Class Ref", - "keywords": "Class Ref A class to store a reference for passing to methods which cannot take ref parameters. Inheritance Object Ref Implements IComparable IComparable < Ref > Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public class Ref : IComparable, IComparable> Type Parameters Name Description T the type of the value Constructors | Improve this Doc View Source Ref(T) Constructor. Declaration public Ref(T reference) Parameters Type Name Description T reference the initial value of the reference Properties | Improve this Doc View Source Error An exception that was generated while creating the value. Declaration public Exception Error { get; set; } Property Value Type Description Exception the error held in this Ref | Improve this Doc View Source Value The value of the reference Declaration public T Value { get; set; } Property Value Type Description T the value wrapped by this Ref Methods | Improve this Doc View Source CompareTo(T) Compares the wrapped object to the other object. Declaration public int CompareTo(T other) Parameters Type Name Description T other the object to compare to Returns Type Description Int32 the value of the comparison | Improve this Doc View Source CompareTo(Ref) Compares the wrapped object to the other wrapped object. Declaration public int CompareTo(Ref other) Parameters Type Name Description Ref other the wrapped object to compare to Returns Type Description Int32 the value of the comparison | Improve this Doc View Source Verify() Throws error if one was set. Declaration public void Verify() Operators | Improve this Doc View Source Implicit(T to Ref) Converts a value T to a reference to that object. Will overwrite the reference in the left hand expression if there is one. Declaration public static implicit operator Ref(T toConvert) Parameters Type Name Description T toConvert the value to wrap in the Ref Returns Type Description Ref the Ref wrapping the value | Improve this Doc View Source Implicit(Ref to T) Converts to referenced type, returning the stored reference. Declaration public static implicit operator T(Ref self) Parameters Type Name Description Ref self the object to be de-referenced Returns Type Description T the value referenced by the object Implements System.IComparable System.IComparable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Logging.Printers.html": { + "href": "api/IPA.Logging.Printers.html", + "title": "", + "keywords": "Classes ColoredConsolePrinter Prints a pretty message to the console. ColorlessConsolePrinter A colorless version of ColoredConsolePrinter , that indiscriminantly prints to standard out. GlobalLogFilePrinter A printer for all messages to a unified log location. GZFilePrinter A LogPrinter abstract class that provides the utilities to write to a GZip file. PluginLogFilePrinter Prints log messages to the file specified by the name. PluginSubLogPrinter Prints log messages to the file specified by the name." }, - "api/IPA.Utilities.Extensions.html": { - "href": "api/IPA.Utilities.Extensions.html", - "title": "Class Extensions", - "keywords": "Class Extensions A class providing various extension methods. Inheritance Object Extensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Utilities Assembly : IPA.Loader.dll Syntax public static class Extensions Methods | Improve this Doc View Source GetDefault(Type) Gets the default value for a given Type . Declaration public static object GetDefault(this Type type) Parameters Type Name Description Type type the Type to get the default value for Returns Type Description Object the default value of type | Improve this Doc View Source Unwrap(Nullable) Unwraps a Nullable where T is Boolean such that if the value is null, it gives false . Declaration public static bool Unwrap(this bool? self) Parameters Type Name Description Nullable < Boolean > self the bool? to unwrap Returns Type Description Boolean the unwrapped value, or false if it was null" + "api/IPA.Logging.Printers.PluginSubLogPrinter.html": { + "href": "api/IPA.Logging.Printers.PluginSubLogPrinter.html", + "title": "Class PluginSubLogPrinter", + "keywords": "Class PluginSubLogPrinter Prints log messages to the file specified by the name. Inheritance Object LogPrinter GZFilePrinter PluginSubLogPrinter Implements IDisposable Inherited Members GZFilePrinter.FileWriter GZFilePrinter.StartPrint() GZFilePrinter.EndPrint() GZFilePrinter.Dispose() GZFilePrinter.Dispose(Boolean) Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging.Printers Assembly : IPA.Loader.dll Syntax public class PluginSubLogPrinter : GZFilePrinter, IDisposable Constructors | Improve this Doc View Source PluginSubLogPrinter(String, String) Creates a new printer with the given name. Declaration public PluginSubLogPrinter(string mainname, string name) Parameters Type Name Description String mainname the name of the main logger String name the name of the logger Properties | Improve this Doc View Source Filter Provides a filter for this specific printer. Declaration public override Logger.LogLevel Filter { get; set; } Property Value Type Description Logger.LogLevel the filter for this printer Overrides LogPrinter.Filter Methods | Improve this Doc View Source GetFileInfo() Gets the FileInfo for the target file. Declaration protected override FileInfo GetFileInfo() Returns Type Description FileInfo the file to write to Overrides GZFilePrinter.GetFileInfo() | Improve this Doc View Source Print(Logger.Level, DateTime, String, String) Prints an entry to the associated file. Declaration public override void Print(Logger.Level level, DateTime time, string logName, string message) Parameters Type Name Description Logger.Level level the Logger.Level of the message DateTime time the DateTime the message was recorded at String logName the name of the log that sent the message String message the message to print Overrides LogPrinter.Print(Logger.Level, DateTime, String, String) Implements System.IDisposable Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, "api/IPA.Logging.LoggerExtensions.html": { "href": "api/IPA.Logging.LoggerExtensions.html", "title": "Class LoggerExtensions", "keywords": "Class LoggerExtensions A class providing extensions for various loggers. Inheritance Object LoggerExtensions Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public static class LoggerExtensions Methods | Improve this Doc View Source GetChildLogger(Logger, String) Gets a child logger, if supported. Currently the only defined and supported logger is StandardLogger , and most plugins will only ever receive this anyway. Declaration public static Logger GetChildLogger(this Logger logger, string name) Parameters Type Name Description Logger logger the parent Logger String name the name of the child Returns Type Description Logger the child logger" }, - "api/IPA.Logging.Logger.html": { - "href": "api/IPA.Logging.Logger.html", - "title": "Class Logger", - "keywords": "Class Logger The logger base class. Provides the format for console logs. Inheritance Object Logger StandardLogger Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public abstract class Logger Properties | Improve this Doc View Source LogFormat The standard format for log messages. Declaration public static string LogFormat { get; protected set; } Property Value Type Description String the format for the standard loggers to print in Methods | Improve this Doc View Source Critical(Exception) Sends an exception as a critical message. Equivalent to Log(Level.Critical, e); Declaration public virtual void Critical(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Critical(String) Sends a critical message. Equivalent to Log(Level.Critical, message); Declaration public virtual void Critical(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Debug(Exception) Sends an exception as a debug message. Equivalent to Log(Level.Debug, e); Declaration public virtual void Debug(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Debug(String) Sends a debug message. Equivalent to Log(Level.Debug, message); Declaration public virtual void Debug(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Error(Exception) Sends an exception as an error message. Equivalent to Log(Level.Error, e); Declaration public virtual void Error(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Error(String) Sends an error message. Equivalent to Log(Level.Error, message); Declaration public virtual void Error(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Info(Exception) Sends an exception as an info message. Equivalent to Log(Level.Info, e); Declaration public virtual void Info(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Info(String) Sends an info message. Equivalent to Log(Level.Info, message); Declaration public virtual void Info(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Log(Logger.Level, Exception) A basic log function taking an exception to log. Declaration public virtual void Log(Logger.Level level, Exception e) Parameters Type Name Description Logger.Level level the level of the message Exception e the exception to log | Improve this Doc View Source Log(Logger.Level, String) A basic log function. Declaration public abstract void Log(Logger.Level level, string message) Parameters Type Name Description Logger.Level level the level of the message String message the message to log | Improve this Doc View Source Notice(Exception) Sends an exception as a notice message. Equivalent to Log(Level.Notice, e); Declaration public virtual void Notice(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Notice(String) Sends a notice message. Equivalent to Log(Level.Notice, message); Declaration public virtual void Notice(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Trace(Exception) Sends an exception as a trace message. Equivalent to Log(Level.Trace, e); Declaration public virtual void Trace(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Trace(String) Sends a trace message. Equivalent to Log(Level.Trace, message); Declaration public virtual void Trace(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) | Improve this Doc View Source Warn(Exception) Sends an exception as a warning message. Equivalent to Log(Level.Warning, e); Declaration public virtual void Warn(Exception e) Parameters Type Name Description Exception e the exception to log See Also Log(Logger.Level, Exception) | Improve this Doc View Source Warn(String) Sends a warning message. Equivalent to Log(Level.Warning, message); Declaration public virtual void Warn(string message) Parameters Type Name Description String message the message to log See Also Log(Logger.Level, String) Extension Methods LoggerExtensions.GetChildLogger(Logger, String) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Logging.Logger.Level.html": { + "href": "api/IPA.Logging.Logger.Level.html", + "title": "Enum Logger.Level", + "keywords": "Enum Logger.Level An enum specifying the level of the message. Resembles Syslog. Namespace : IPA.Logging Assembly : IPA.Loader.dll Syntax public enum Level : byte Fields Name Description Critical A critical error message. Debug A debug message. Error An error message. Info An informational message. None No associated level. These never get shown. Notice A notice. More significant than Info, but less than a warning. Trace A trace message. These are ignored incredibly early. Warning A warning message. Extension Methods ReflectionUtil.SetPrivateField(String, Object) ReflectionUtil.GetPrivateField(String) ReflectionUtil.SetPrivateProperty(String, Object) ReflectionUtil.InvokePrivateMethod(String, Object[]) ReflectionUtil.InvokePrivateMethod(String, Object[])" }, - "api/IPA.Loader.html": { - "href": "api/IPA.Loader.html", - "title": "", - "keywords": "Classes PluginInitInjector The type that handles value injecting into a plugin's Init. PluginLoader A type to manage the loading of plugins. PluginLoader.PluginInfo A container object for all the data relating to a plugin. PluginLoader.PluginMetadata A class which describes a loaded plugin. PluginManager The manager class for all plugins. Delegates PluginInitInjector.InjectParameter A typed injector for a plugin's Init method. When registered, called for all associated types. If it returns null, the default for the type will be used. PluginManager.PluginDisableDelegate An invoker for the PluginDisabled event. PluginManager.PluginEnableDelegate An invoker for the PluginEnabled event." + "api/IPA.Loader.Features.Feature.html": { + "href": "api/IPA.Loader.Features.Feature.html", + "title": "Class Feature", + "keywords": "Class Feature The root interface for a mod Feature. Inheritance Object Feature Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader.Features Assembly : IPA.Loader.dll Syntax public abstract class Feature Remarks Avoid storing any data in any subclasses. If you do, it may result in a failure to load the feature. Properties | Improve this Doc View Source InvalidMessage The message to be logged when the feature is not valid for a plugin. This should also be set whenever either BeforeLoad(PluginLoader.PluginMetadata) or BeforeInit(PluginLoader.PluginInfo) returns false. Declaration public virtual string InvalidMessage { get; protected set; } Property Value Type Description String the message to show when the feature is marked invalid | Improve this Doc View Source StoreOnPlugin Defines whether or not this feature will be accessible from the plugin metadata once loaded. Declaration protected virtual bool StoreOnPlugin { get; } Property Value Type Description Boolean true if this Feature will be stored on the plugin metadata, false otherwise Methods | Improve this Doc View Source AfterInit(PluginLoader.PluginInfo) Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. Declaration public virtual void AfterInit(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was just initialized | Improve this Doc View Source AfterInit(PluginLoader.PluginInfo, IBeatSaberPlugin) Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. Declaration public virtual void AfterInit(PluginLoader.PluginInfo plugin, IBeatSaberPlugin pluginInstance) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin that was just initialized IBeatSaberPlugin pluginInstance the instance of the plugin being initialized | Improve this Doc View Source BeforeInit(PluginLoader.PluginInfo) Called before a plugin's Init method is called. This will not be called if there is no Init method. This should never throw an exception. An exception will abort the loading of the plugin with an error. Declaration public virtual bool BeforeInit(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin to be initialized Returns Type Description Boolean whether or not to call the Init method | Improve this Doc View Source BeforeLoad(PluginLoader.PluginMetadata) Called before a plugin is loaded. This should never throw an exception. An exception will abort the loading of the plugin with an error. Declaration public virtual bool BeforeLoad(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin about to be loaded Returns Type Description Boolean whether or not the plugin should be loaded Remarks The assembly will still be loaded, but the plugin will not be constructed if this returns false . Any features it defines, for example, will still be loaded. | Improve this Doc View Source Evaluate() Evaluates the Feature for use in conditional meta-Features. This should be re-calculated on every call, unless it can be proven to not change. This will be called on every feature that returns true from Initialize(PluginLoader.PluginMetadata, String[]) Declaration public virtual bool Evaluate() Returns Type Description Boolean the truthiness of the Feature. | Improve this Doc View Source Initialize(PluginLoader.PluginMetadata, String[]) Initializes the feature with the parameters provided in the definition. Note: When no parenthesis are provided, parameters is an empty array. Declaration public abstract bool Initialize(PluginLoader.PluginMetadata meta, string[] parameters) Parameters Type Name Description PluginLoader.PluginMetadata meta the metadata of the plugin that is being prepared String [] parameters the parameters passed to the feature definition, or null Returns Type Description Boolean true if the feature is valid for the plugin, false otherwise Remarks This gets called BEFORE your Init method. Returning false does not prevent the plugin from being loaded. It simply prevents the feature from being used. | Improve this Doc View Source RequireLoaded(PluginLoader.PluginMetadata) Ensures a plugin's assembly is loaded. Do not use unless you need to. Declaration protected void RequireLoaded(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to ensure is loaded. Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Loader.PluginManager.html": { - "href": "api/IPA.Loader.PluginManager.html", - "title": "Class PluginManager", - "keywords": "Class PluginManager The manager class for all plugins. Inheritance Object PluginManager Inherited Members Object.ToString() Object.Equals(Object) Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetHashCode() Object.GetType() Object.MemberwiseClone() Namespace : IPA.Loader Assembly : IPA.Loader.dll Syntax public static class PluginManager Properties | Improve this Doc View Source AllPlugins Gets a list of all BSIPA plugins. Declaration public static IEnumerable AllPlugins { get; } Property Value Type Description IEnumerable < PluginLoader.PluginInfo > a collection of all enabled plugins as PluginLoader.PluginInfo s | Improve this Doc View Source DisabledPlugins Gets a list of disabled BSIPA plugins. Declaration public static IEnumerable DisabledPlugins { get; } Property Value Type Description IEnumerable < PluginLoader.PluginMetadata > a collection of all disabled plugins as PluginLoader.PluginMetadata | Improve this Doc View Source Plugins An IEnumerable of old IPA plugins. Declaration [Obsolete(\"I mean, IPlugin shouldn't be used, so why should this? Not renaming to extend support for old plugins.\")] public static IEnumerable Plugins { get; } Property Value Type Description IEnumerable < IPlugin > all legacy plugin instances Methods | Improve this Doc View Source DisablePlugin(PluginLoader.PluginInfo) Disables a plugin, and all dependents. Declaration public static bool DisablePlugin(PluginLoader.PluginInfo plugin) Parameters Type Name Description PluginLoader.PluginInfo plugin the plugin to disable Returns Type Description Boolean whether or not it needs a restart to enable | Improve this Doc View Source DisablePlugin(String) Disables a plugin, and all dependents. Declaration public static bool DisablePlugin(string pluginId) Parameters Type Name Description String pluginId the ID, or name if the ID is null, of the plugin to disable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source EnablePlugin(PluginLoader.PluginMetadata) Enables a plugin that had been previously disabled. Declaration public static bool EnablePlugin(PluginLoader.PluginMetadata plugin) Parameters Type Name Description PluginLoader.PluginMetadata plugin the plugin to enable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source EnablePlugin(String) Enables a plugin that had been previously disabled. Declaration public static bool EnablePlugin(string pluginId) Parameters Type Name Description String pluginId the ID, or name if the ID is null, of the plugin to enable Returns Type Description Boolean whether a restart is needed to activate | Improve this Doc View Source GetDisabledPlugin(String) Gets a disabled plugin's metadata by its name. Declaration public static PluginLoader.PluginMetadata GetDisabledPlugin(string name) Parameters Type Name Description String name the name of the disabled plugin to get Returns Type Description PluginLoader.PluginMetadata the metadata for the corresponding plugin | Improve this Doc View Source GetDisabledPluginFromId(String) Gets a disabled plugin's metadata by its ID. Declaration public static PluginLoader.PluginMetadata GetDisabledPluginFromId(string name) Parameters Type Name Description String name the ID of the disabled plugin to get Returns Type Description PluginLoader.PluginMetadata the metadata for the corresponding plugin | Improve this Doc View Source GetPlugin(String) Gets info about the plugin with the specified name. Declaration public static PluginLoader.PluginInfo GetPlugin(string name) Parameters Type Name Description String name the name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source GetPluginFromId(String) Gets info about the plugin with the specified ID. Declaration public static PluginLoader.PluginInfo GetPluginFromId(string name) Parameters Type Name Description String name the ID name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source GetPluginFromModSaberName(String) Gets info about the plugin with the specified ModSaber name. Declaration [Obsolete(\"Old name. Use GetPluginFromId instead.\")] public static PluginLoader.PluginInfo GetPluginFromModSaberName(string name) Parameters Type Name Description String name the ModSaber name of the plugin to get (must be an exact match) Returns Type Description PluginLoader.PluginInfo the plugin info for the requested plugin or null | Improve this Doc View Source InfoFromMetadata(PluginLoader.PluginMetadata) Converts a plugin's metadata to a PluginLoader.PluginInfo . Declaration public static PluginLoader.PluginInfo InfoFromMetadata(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the metadata Returns Type Description PluginLoader.PluginInfo the plugin info | Improve this Doc View Source IsDisabled(PluginLoader.PluginMetadata) Checks if a given plugin is disabled. Declaration public static bool IsDisabled(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the plugin to check Returns Type Description Boolean true if the plugin is disabled, false otherwise. | Improve this Doc View Source IsEnabled(PluginLoader.PluginMetadata) Checks if a given plugin is enabled. Declaration public static bool IsEnabled(PluginLoader.PluginMetadata meta) Parameters Type Name Description PluginLoader.PluginMetadata meta the plugin to check Returns Type Description Boolean true if the plugin is enabled, false otherwise. Events | Improve this Doc View Source PluginDisabled Called whenever a plugin is disabled. Declaration public static event PluginManager.PluginDisableDelegate PluginDisabled Event Type Type Description PluginManager.PluginDisableDelegate | Improve this Doc View Source PluginEnabled Called whenever a plugin is enabled. Declaration public static event PluginManager.PluginEnableDelegate PluginEnabled Event Type Type Description PluginManager.PluginEnableDelegate" + "api/IPA.IGenericEnhancedPlugin.html": { + "href": "api/IPA.IGenericEnhancedPlugin.html", + "title": "Interface IGenericEnhancedPlugin", + "keywords": "Interface IGenericEnhancedPlugin A generic interface for the modification for enhanced plugins. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IGenericEnhancedPlugin Properties | Improve this Doc View Source Filter Gets a list of executables this plugin should be executed on (without the file ending) Declaration [Obsolete(\"Ignored.\")] string[] Filter { get; } Property Value Type Description String [] Examples { \"PlayClub\", \"PlayClubStudio\" } Methods | Improve this Doc View Source OnLateUpdate() Called after Update. Declaration void OnLateUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Config.Config.TypeAttribute.html": { - "href": "api/IPA.Config.Config.TypeAttribute.html", - "title": "Class Config.TypeAttribute", - "keywords": "Class Config.TypeAttribute Defines the type of the IConfigProvider Inheritance Object Attribute Config.TypeAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Class)] public class TypeAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source TypeAttribute(String) Constructs the attribute with a specified extension. Declaration public TypeAttribute(string ext) Parameters Type Name Description String ext the extension associated with this type, without the '.' Properties | Improve this Doc View Source Extension The extension associated with this type, without the '.' Declaration public string Extension { get; } Property Value Type Description String the extension to register the config provider as Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.IBeatSaberPlugin.html": { + "href": "api/IPA.IBeatSaberPlugin.html", + "title": "Interface IBeatSaberPlugin", + "keywords": "Interface IBeatSaberPlugin Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins. Namespace : IPA Assembly : IPA.Loader.dll Syntax public interface IBeatSaberPlugin Methods | Improve this Doc View Source OnActiveSceneChanged(Scene, Scene) Gets invoked whenever a scene is changed Declaration void OnActiveSceneChanged(Scene prevScene, Scene nextScene) Parameters Type Name Description Scene prevScene The Scene that was previously loaded Scene nextScene The Scene being loaded | Improve this Doc View Source OnApplicationQuit() Gets invoked when the application is closed. Declaration void OnApplicationQuit() | Improve this Doc View Source OnApplicationStart() Gets invoked when the application is started. THIS EVENT WILL NOT BE GUARANTEED TO FIRE. USE Init OR OnEnable() INSTEAD. Declaration void OnApplicationStart() | Improve this Doc View Source OnFixedUpdate() Gets invoked on ever physics update. Declaration void OnFixedUpdate() | Improve this Doc View Source OnSceneLoaded(Scene, LoadSceneMode) Gets invoked whenever a scene is loaded. Declaration void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode) Parameters Type Name Description Scene scene The scene currently loaded LoadSceneMode sceneMode The type of loading | Improve this Doc View Source OnSceneUnloaded(Scene) Gets invoked whenever a scene is unloaded Declaration void OnSceneUnloaded(Scene scene) Parameters Type Name Description Scene scene The unloaded scene | Improve this Doc View Source OnUpdate() Gets invoked on every graphic update. Declaration void OnUpdate() Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" }, - "api/IPA.Config.Config.PreferAttribute.html": { - "href": "api/IPA.Config.Config.PreferAttribute.html", - "title": "Class Config.PreferAttribute", - "keywords": "Class Config.PreferAttribute Specifies that a particular parameter is preferred to be a specific type of IConfigProvider . If it is not available, also specifies backups. If none are available, the default is used. Inheritance Object Attribute Config.PreferAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax [AttributeUsage(AttributeTargets.Parameter)] public class PreferAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source PreferAttribute(String[]) Constructs the attribute with a specific preference list. Each entry is the extension without a '.' Declaration public PreferAttribute(params string[] preference) Parameters Type Name Description String [] preference The preferences in order of preference. Properties | Improve this Doc View Source PreferenceOrder The order of preference for the config type. Declaration public string[] PreferenceOrder { get; } Property Value Type Description String [] the list of config extensions in order of preference Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + "api/IPA.Config.IConfigProvider.html": { + "href": "api/IPA.Config.IConfigProvider.html", + "title": "Interface IConfigProvider", + "keywords": "Interface IConfigProvider An interface for configuration providers. Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public interface IConfigProvider Properties | Improve this Doc View Source Filename Will be set with the filename (no extension) to save to. When saving, the implementation should add the appropriate extension. Should error if set multiple times. Declaration string Filename { set; } Property Value Type Description String the extensionless filename to save to | Improve this Doc View Source HasChanged Returns true if object has changed since the last save Declaration bool HasChanged { get; } Property Value Type Description Boolean true if object has changed since the last save, else false | Improve this Doc View Source InMemoryChanged Returns true if the data in memory has been changed - notably including loads. Declaration bool InMemoryChanged { get; set; } Property Value Type Description Boolean true if the data in memory has been changed, else false | Improve this Doc View Source LastModified Gets the last time the config was modified. Declaration DateTime LastModified { get; } Property Value Type Description DateTime the last time the config file was modified Methods | Improve this Doc View Source Load() Loads the state of the file on disk. Declaration void Load() | Improve this Doc View Source Parse() Loads the data provided by this IConfigProvider into an object of type T . Declaration T Parse() Returns Type Description T the values from the config provider parsed into the object Type Parameters Name Description T the type of the object to parse into | Improve this Doc View Source Save() Saves configuration to file. Should error if not a root object. Declaration void Save() | Improve this Doc View Source Store(T) Stores the data from obj into the IConfigProvider . Declaration void Store(T obj) Parameters Type Name Description T obj the object containing the data to save Type Parameters Name Description T the type of obj Extension Methods Config.MakeLink(IConfigProvider, Action>) Config.RemoveLinks(IConfigProvider) ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" + }, + "api/IPA.Config.Config.NameAttribute.html": { + "href": "api/IPA.Config.Config.NameAttribute.html", + "title": "Class Config.NameAttribute", + "keywords": "Class Config.NameAttribute Specifies a preferred config name, instead of using the plugin's name. Inheritance Object Attribute Config.NameAttribute Implements _Attribute Inherited Members Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, Boolean) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, Boolean) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(ParameterInfo, Boolean) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, Boolean) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, Boolean) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, Boolean) Attribute.GetCustomAttributes(Module, Type, Boolean) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, Boolean) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, Boolean) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, Boolean) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, Boolean) Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, Boolean) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, Boolean) Attribute.Equals(Object) Attribute.GetHashCode() Attribute.Match(Object) Attribute.IsDefaultAttribute() Attribute._Attribute.GetTypeInfoCount(UInt32) Attribute._Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) Attribute._Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) Attribute._Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) Attribute.TypeId Object.ToString() Object.Equals(Object, Object) Object.ReferenceEquals(Object, Object) Object.GetType() Object.MemberwiseClone() Namespace : IPA.Config Assembly : IPA.Loader.dll Syntax public class NameAttribute : Attribute, _Attribute Constructors | Improve this Doc View Source NameAttribute(String) Constructs the attribute with a specific name. Declaration public NameAttribute(string name) Parameters Type Name Description String name the name to use for the config. Properties | Improve this Doc View Source Name The name to use for the config. Declaration public string Name { get; } Property Value Type Description String the name to use for the config Implements System.Runtime.InteropServices._Attribute Extension Methods ReflectionUtil.SetPrivateField(Object, String, Object) ReflectionUtil.GetPrivateField(Object, String) ReflectionUtil.SetPrivateProperty(Object, String, Object) ReflectionUtil.InvokePrivateMethod(Object, String, Object[]) ReflectionUtil.InvokePrivateMethod(Object, String, Object[])" } } \ No newline at end of file diff --git a/manifest.json b/manifest.json index b4e153e0..9867f8f0 100644 --- a/manifest.json +++ b/manifest.json @@ -18,7 +18,7 @@ "output": { ".html": { "relative_path": "api/BSIPA_ModList.UI.ViewControllers.MarkdownView.html", - "hash": "C01NMzi3WI06ifj56ck7EA==" + "hash": "Vns4e6Zb7SU3i6q4bTLVxg==" } }, "is_incremental": false, @@ -42,7 +42,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.Config.NameAttribute.html", - "hash": "kFYa24CI3V5I/SQ1JJwBkQ==" + "hash": "4O/3IpMvntxyIyGnn4+d8w==" } }, "is_incremental": false, @@ -54,7 +54,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.Config.PreferAttribute.html", - "hash": "Q0XLkEnpg3VBUB51UCSOQA==" + "hash": "AmaCzkcM7oAGYB1yDUcwQg==" } }, "is_incremental": false, @@ -66,7 +66,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.Config.TypeAttribute.html", - "hash": "+eNhDTousrTFLz5tW27aHA==" + "hash": "5fSQG3rlz/vGSqFLNcbZdQ==" } }, "is_incremental": false, @@ -78,7 +78,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.Config.html", - "hash": "UuOYVSkSr1nBQoZVJ/5oJg==" + "hash": "wy2eZWOJBeMVaeApqHB68A==" } }, "is_incremental": false, @@ -90,7 +90,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.IConfigProvider.html", - "hash": "k+feVWjePrJY/91OSp4yIw==" + "hash": "Ec7zqdcUnBXgYSaYLgVe7Q==" } }, "is_incremental": false, @@ -102,7 +102,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.IModPrefs.html", - "hash": "sLVpE8cs8qUDWkHKf4TdYA==" + "hash": "rAyvqadT0RSFbZkA+FxjMw==" } }, "is_incremental": false, @@ -114,7 +114,7 @@ "output": { ".html": { "relative_path": "api/IPA.Config.ModPrefs.html", - "hash": "9x6CMAOIBkWB+1no1D5TDw==" + "hash": "bQzQiHT6AUFEPIm3z+LZOg==" } }, "is_incremental": false, @@ -138,7 +138,7 @@ "output": { ".html": { "relative_path": "api/IPA.IBeatSaberPlugin.html", - "hash": "uU1CfU07Dt5ZVfdn5bai/g==" + "hash": "b3FCZZfy2CPyMapnhOdAFQ==" } }, "is_incremental": false, @@ -150,7 +150,7 @@ "output": { ".html": { "relative_path": "api/IPA.IDisablablePlugin.html", - "hash": "mlpVpH8aidS+8oni1B46uA==" + "hash": "bubwmDMKKL8hz1LqUdpqow==" } }, "is_incremental": false, @@ -162,7 +162,7 @@ "output": { ".html": { "relative_path": "api/IPA.IEnhancedBeatSaberPlugin.html", - "hash": "GvsDhysKk1KndtCgw38JxA==" + "hash": "xm3fJZ6Gq92wBEukVnztcg==" } }, "is_incremental": false, @@ -174,7 +174,7 @@ "output": { ".html": { "relative_path": "api/IPA.IGenericEnhancedPlugin.html", - "hash": "2Tqr0bucCYxHwKhhyBW78A==" + "hash": "jtTtgMKYnWY95cY1WQz1YA==" } }, "is_incremental": false, @@ -186,7 +186,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.Features.Feature.html", - "hash": "4q0wBD4iCAB0SEiGtMMnmw==" + "hash": "/nKKj/BV4JqRJTQbXf0BLw==" } }, "is_incremental": false, @@ -210,7 +210,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginInitInjector.InjectParameter.html", - "hash": "3GQ1bjosuZjHdCXl59hgsg==" + "hash": "gECrp6Bh3YaK0CnjYkr41g==" } }, "is_incremental": false, @@ -222,7 +222,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginInitInjector.html", - "hash": "fq8Y2noQa3u3BoUN5qQ+ew==" + "hash": "JQKV9MVtgZ2ISw+67SJ5Sg==" } }, "is_incremental": false, @@ -234,7 +234,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginLoader.PluginInfo.html", - "hash": "skbWnuM/reOq0oA2y/3IRg==" + "hash": "FlIiHBrZpoBemhxvEdh2iA==" } }, "is_incremental": false, @@ -246,7 +246,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginLoader.PluginMetadata.html", - "hash": "rNZHYOffIrtYLfjqyhn6Nw==" + "hash": "kfyobkoit7wIFmow00A/Zw==" } }, "is_incremental": false, @@ -258,7 +258,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginLoader.html", - "hash": "EDFjJ8xJ5/AEqLA4imY8DA==" + "hash": "n6B4Obfp/LxBEpcJkfXRwQ==" } }, "is_incremental": false, @@ -270,7 +270,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginManager.PluginDisableDelegate.html", - "hash": "QmbdT5dHkJY90EJ4VWK/hg==" + "hash": "hvrCyNUnKSdGjeTloBUWBQ==" } }, "is_incremental": false, @@ -282,7 +282,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginManager.PluginEnableDelegate.html", - "hash": "D1qHZh1dtRguNBK6UH50EA==" + "hash": "X6bmz4Xkdp1UrzLc/NlDkw==" } }, "is_incremental": false, @@ -294,7 +294,7 @@ "output": { ".html": { "relative_path": "api/IPA.Loader.PluginManager.html", - "hash": "MR5VVvxgA/uixqI2Z1gbbg==" + "hash": "g4/KAgK043aXFnQZqzkyGg==" } }, "is_incremental": false, @@ -318,7 +318,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.LogPrinter.html", - "hash": "BUUuLP8Z4u47xCE6ovAxKQ==" + "hash": "cSRosqvbE6dGwzhj9PXcTA==" } }, "is_incremental": false, @@ -330,7 +330,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Logger.Level.html", - "hash": "974jzTF02n4efBXW38MAJA==" + "hash": "gzj7xelV4M45AYO89ldF5Q==" } }, "is_incremental": false, @@ -342,7 +342,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Logger.LogLevel.html", - "hash": "gOT93k/B7MiTomF7eeje7A==" + "hash": "xNHmKHnckoO2ec2Pqr9Gkw==" } }, "is_incremental": false, @@ -354,7 +354,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Logger.html", - "hash": "lrdFuAk1QMS1crH7lD6yaw==" + "hash": "Lik5sEbzpnPDd0weeUQyxg==" } }, "is_incremental": false, @@ -366,7 +366,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.LoggerExtensions.html", - "hash": "OYJLONYN+llFbLIqmHIfEg==" + "hash": "ixPDA2qsFCGAnry1hnViAA==" } }, "is_incremental": false, @@ -378,7 +378,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.ColoredConsolePrinter.html", - "hash": "ZiUP+MdVK8ugqfHWs9d9vg==" + "hash": "amS7FvCeeuGVCUv9VqvtaQ==" } }, "is_incremental": false, @@ -390,7 +390,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.ColorlessConsolePrinter.html", - "hash": "fiaf+wR+oAiLrzmRTgWq5Q==" + "hash": "6UIzQ4/m2GpETiq/VHUNIA==" } }, "is_incremental": false, @@ -402,7 +402,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.GZFilePrinter.html", - "hash": "8QVhwPn40cWNhVSu5hoBxg==" + "hash": "5wrTk7NLcn8FNQ+miDLAYw==" } }, "is_incremental": false, @@ -414,7 +414,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.GlobalLogFilePrinter.html", - "hash": "lve0bd/OsIGMI7tAjDRh+g==" + "hash": "kJ+U4MZouzAFRMgRXDIf6A==" } }, "is_incremental": false, @@ -426,7 +426,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.PluginLogFilePrinter.html", - "hash": "ux3wOTNHHTK71ykqSDg/KA==" + "hash": "r9AKR8c5ZPvT+8FAC5Hr2Q==" } }, "is_incremental": false, @@ -438,7 +438,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.Printers.PluginSubLogPrinter.html", - "hash": "BstMqBnR9v/ASczH8Co9IQ==" + "hash": "qwVzfYwdpHxBcOhfYFeFHg==" } }, "is_incremental": false, @@ -462,7 +462,7 @@ "output": { ".html": { "relative_path": "api/IPA.Logging.StandardLogger.html", - "hash": "iJzOOKMsWSM4TY8dxwK6mg==" + "hash": "V432hBX7eQMDo9aerRbNYw==" } }, "is_incremental": false, @@ -486,7 +486,7 @@ "output": { ".html": { "relative_path": "api/IPA.Old.IEnhancedPlugin.html", - "hash": "VtWpVDsAvEoopDJj5xG40w==" + "hash": "67qj8qe/8xUBtzRGXW8j5Q==" } }, "is_incremental": false, @@ -498,7 +498,7 @@ "output": { ".html": { "relative_path": "api/IPA.Old.IPlugin.html", - "hash": "Qc1MNokkMfBKPHot3bwbCg==" + "hash": "0TL5ox063yFumOMvRNzkYQ==" } }, "is_incremental": false, @@ -522,7 +522,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.AlmostVersion.StoredAs.html", - "hash": "7GMIGi9ewwnUSrv0QFQI4g==" + "hash": "2yBPZF6zUzQgjVnxk9oCXQ==" } }, "is_incremental": false, @@ -534,7 +534,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.AlmostVersion.html", - "hash": "dX8s7KJDxZjKP1P0zc95Ug==" + "hash": "rF5ekyRub16oiQT4vY+nmQ==" } }, "is_incremental": false, @@ -546,7 +546,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.BeatSaber.Release.html", - "hash": "uSaxjlPaQ9lc059GscgPig==" + "hash": "f/nAguG4rhUqkWlASYvJKw==" } }, "is_incremental": false, @@ -558,7 +558,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.BeatSaber.html", - "hash": "G5q54bSSWUvtyNHjhN9Adw==" + "hash": "r266qKm6EIDGIFkEJxnVXg==" } }, "is_incremental": false, @@ -570,7 +570,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.CriticalSection.html", - "hash": "1h0jvI7pknQl9jGw57rqpg==" + "hash": "P7TOprNqt37ZDViPsFnzSg==" } }, "is_incremental": false, @@ -582,7 +582,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.Extensions.html", - "hash": "/mEGRdF3UI0D88FHvxejCg==" + "hash": "G7b/i8P/lZ/KwrdZ3RqhgA==" } }, "is_incremental": false, @@ -594,7 +594,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.Ref-1.html", - "hash": "qW/Bgb4KXDoHpkcF5F1BFw==" + "hash": "WOze/ThhThfvSCEx1CdA2A==" } }, "is_incremental": false, @@ -606,7 +606,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.Ref.html", - "hash": "TGBYrrOqIMpUDXwHkxWHdw==" + "hash": "kIuuJNx7PpUIbC/J4HdlxA==" } }, "is_incremental": false, @@ -618,7 +618,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.ReflectionUtil.html", - "hash": "trx7Ih8B6VOR/wdQYCdtPA==" + "hash": "5S0+XmmuVQEx9eESmKby/g==" } }, "is_incremental": false, @@ -630,7 +630,7 @@ "output": { ".html": { "relative_path": "api/IPA.Utilities.Utils.html", - "hash": "8pnQeCasdEe/SBFfuGS3sQ==" + "hash": "ru871Lf4PyVhdHFCzI8LKw==" } }, "is_incremental": false, @@ -666,7 +666,7 @@ "output": { ".html": { "relative_path": "api/index.html", - "hash": "u/GGyOP4jKo7kiMkKRyjWA==" + "hash": "fql55B4pRQo3yP9THG0eMg==" } }, "is_incremental": false, @@ -690,7 +690,7 @@ "output": { ".html": { "relative_path": "articles/command-line.html", - "hash": "gxnGJhO7Y+vucF9/u4rA1Q==" + "hash": "7zhzCgyc1FY134RAcf61Gw==" } }, "is_incremental": false, @@ -702,7 +702,7 @@ "output": { ".html": { "relative_path": "articles/index.html", - "hash": "hMzDN3c9UB381f4ndQZMAg==" + "hash": "OVWUyeIDCw9r8wyIxsJTnQ==" } }, "is_incremental": false, @@ -714,7 +714,7 @@ "output": { ".html": { "relative_path": "articles/start-dev.html", - "hash": "LOEBxFcy+ZZImwnzJYvQEw==" + "hash": "eWKv5TK1xrsrbLQGT1xJwA==" } }, "is_incremental": false, @@ -726,7 +726,7 @@ "output": { ".html": { "relative_path": "articles/start-user.html", - "hash": "EKGOO57IjODBisnmm+E1Dg==" + "hash": "bqMyruK7HqPYqvdCB6y+Yg==" } }, "is_incremental": false, @@ -816,7 +816,7 @@ "output": { ".html": { "relative_path": "index.html", - "hash": "ACahHPSfyUr8lVpit2taeg==" + "hash": "cjZ7941NVep5ylsEiFfX+w==" } }, "is_incremental": false, @@ -828,7 +828,7 @@ "output": { ".html": { "relative_path": "other_api/config/index.html", - "hash": "8NcFQwE3cL7lg7jfHv3mxQ==" + "hash": "E4d1lUHRMmBNkkclhQ82TA==" } }, "is_incremental": false, @@ -840,7 +840,7 @@ "output": { ".html": { "relative_path": "other_api/config/schema.html", - "hash": "lsCphVjwvZJtI9DQQ7W4Mw==" + "hash": "ZLDylQiVF8+E5kdJ6TzSGQ==" } }, "is_incremental": false, @@ -852,7 +852,7 @@ "output": { ".html": { "relative_path": "other_api/index.html", - "hash": "6pPUsXWxqRyfU3KTrMOT7w==" + "hash": "ms4enwPbKTzq4kRAou4zhg==" } }, "is_incremental": false, diff --git a/other_api/config/index.html b/other_api/config/index.html index 78fe7168..77066f7b 100644 --- a/other_api/config/index.html +++ b/other_api/config/index.html @@ -87,7 +87,7 @@ diff --git a/other_api/config/schema.html b/other_api/config/schema.html index 511cde50..17086ef5 100644 --- a/other_api/config/schema.html +++ b/other_api/config/schema.html @@ -168,7 +168,7 @@ diff --git a/other_api/index.html b/other_api/index.html index 2b30e299..15271e9e 100644 --- a/other_api/index.html +++ b/other_api/index.html @@ -87,7 +87,7 @@