Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of LogMute v1.0.4
LogMute.dll
Decompiled 2 years agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using IL.RoR2; using IL.RoR2.UI; using LogMute.Patches; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using MonoMod.RuntimeDetour; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using UnityEngine; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("LogMute")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+d499e3e7f47576ef7dda072463273a315406e375")] [assembly: AssemblyProduct("LogMute")] [assembly: AssemblyTitle("LogMute")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace LogMute { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("_score.LogMute", "LogMute", "1.0.4")] public class LogMutePlugin : BaseUnityPlugin { public const string PluginGUID = "_score.LogMute"; public const string PluginAuthor = "score"; public const string PluginName = "LogMute"; public const string PluginVersion = "1.0.4"; public static bool RooInstalled => Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions"); public static LogMutePlugin Instance { get; private set; } public void Awake() { Instance = this; PluginConfig.Init(); MuteHarmonyPatches.Init(); if (PluginConfig.muteVanilla.Value) { VanillaPatches.Init(); } } } internal static class PluginConfig { public static ConfigFile myConfig; public static ConfigEntry<bool> muteVanilla; public static ConfigEntry<string> exactMatch; public static ConfigEntry<string> prefixMatch; public static ConfigEntry<string> infixMatch; [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void Init() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown myConfig = new ConfigFile(Path.Combine(Paths.ConfigPath, "_score.LogMute.cfg"), true); if (LogMutePlugin.RooInstalled) { InitRoO(); } muteVanilla = BindOption("General", "Mute Vanilla Logs", defaultValue: true, "Mutes a handful of the more annoying and spammy logs present in vanilla.", restartRequired: true); exactMatch = BindOption("General", "Exact Matches to Filter", "Teambuff", "List of exact matches to filter, separated by comma. accepts regex patterns."); prefixMatch = BindOption("General", "Prefix Matches to Filter", string.Empty, "List of prefix matches to filter, separated by comma. accepts regex patterns."); infixMatch = BindOption("General", "Infix Matches to Filter", string.Empty, "List of infix matches to filter, separated by comma. accepts regex patterns."); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ConfigEntry<T> BindOption<T>(string section, string name, T defaultValue, string description = "", bool restartRequired = false) { if (string.IsNullOrEmpty(description)) { description = name; } if (restartRequired) { description += " (restart required)"; } ConfigEntry<T> val = myConfig.Bind<T>(section, name, defaultValue, description); if (LogMutePlugin.RooInstalled) { TryRegisterOption<T>(val, restartRequired); } return val; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ConfigEntry<T> BindOptionSlider<T>(string section, string name, T defaultValue, string description = "", float min = 0f, float max = 20f, bool restartRequired = false) { if (string.IsNullOrEmpty(description)) { description = name; } string text = description; T val = defaultValue; description = text + " (Default: " + val?.ToString() + ")"; if (restartRequired) { description += " (restart required)"; } ConfigEntry<T> val2 = myConfig.Bind<T>(section, name, defaultValue, description); if (LogMutePlugin.RooInstalled) { TryRegisterOptionSlider<T>(val2, min, max, restartRequired); } return val2; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void InitRoO() { ModSettingsManager.SetModDescription("Mutes annoying logs."); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void TryRegisterOption<T>(ConfigEntry<T> entry, bool restartRequired) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown if (entry is ConfigEntry<string> val) { ModSettingsManager.AddOption((BaseOption)new StringInputFieldOption(val, restartRequired)); } else if (entry is ConfigEntry<float> val2) { ModSettingsManager.AddOption((BaseOption)new SliderOption(val2, new SliderConfig { min = 0f, max = 20f, FormatString = "{0:0.00}", restartRequired = restartRequired })); } else if (entry is ConfigEntry<int> val3) { ModSettingsManager.AddOption((BaseOption)new IntSliderOption(val3, restartRequired)); } else if (entry is ConfigEntry<bool> val4) { ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(val4, restartRequired)); } else if (entry is ConfigEntry<KeyboardShortcut> val5) { ModSettingsManager.AddOption((BaseOption)new KeyBindOption(val5, restartRequired)); } else if (typeof(T).IsEnum) { ModSettingsManager.AddOption((BaseOption)new ChoiceOption((ConfigEntryBase)(object)entry, restartRequired)); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void TryRegisterOptionSlider<T>(ConfigEntry<T> entry, float min, float max, bool restartRequired) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Expected O, but got Unknown if (entry is ConfigEntry<int> val) { ModSettingsManager.AddOption((BaseOption)new IntSliderOption(val, new IntSliderConfig { min = (int)min, max = (int)max, formatString = "{0:0.00}", restartRequired = restartRequired })); } else if (entry is ConfigEntry<float> val2) { ModSettingsManager.AddOption((BaseOption)new SliderOption(val2, new SliderConfig { min = min, max = max, FormatString = "{0:0.00}", restartRequired = restartRequired })); } } } } namespace LogMute.Patches { public static class MuteHarmonyPatches { public static List<Regex> LogMuteCustom { get; set; } public static bool RegexExclude(object content) { return !LogMuteCustom.Any((Regex x) => x.IsMatch(content?.ToString() ?? "Null")); } public static void Init() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) PluginConfig.myConfig.SettingChanged += ConfigReloaded; ConfigReloaded(null, null); Harmony val = new Harmony("_score.LogMute"); val.PatchAll(typeof(ScaryClassVanilla)); val.PatchAll(typeof(ScaryClassVanillaFormat)); val.PatchAll(typeof(ScaryClassVanillaException)); val.PatchAll(typeof(ScaryClassModded)); } private static void ConfigReloaded(object _, EventArgs __) { List<Regex> list = new List<Regex>(); list.AddRange(from x in CustomSplit(PluginConfig.exactMatch.Value) select new Regex("^\\s*" + x.Trim() + "\\s*$")); list.AddRange(from x in CustomSplit(PluginConfig.prefixMatch.Value) select new Regex("^\\s*" + x.Trim())); list.AddRange(from x in CustomSplit(PluginConfig.infixMatch.Value) select new Regex(x.Trim())); LogMuteCustom = list; } private static IEnumerable<string> CustomSplit(string str) { List<string> list = new List<string>(); string text = string.Empty; for (int i = 0; i < str.Length; i++) { if (str[i] == ',') { list.Add(text); text = ""; } else if (i + 1 < str.Length && str[i] == '\\' && str[i + 1] == ',') { text += ","; i++; } else if (i + 1 < str.Length && str[i] == '\\' && str[i + 1] == '\\') { text += "\\\\"; i++; } else { text += str[i]; } } list.Add(text); return list.Where((string x) => !string.IsNullOrWhiteSpace(x)); } } [HarmonyPatch] public class ScaryClassVanilla { public static bool Prefix(ref object message) { return MuteHarmonyPatches.RegexExclude(message); } public static IEnumerable<MethodBase> TargetMethods() { return new <>z__ReadOnlyArray<MethodBase>(new MethodBase[6] { typeof(Debug).GetMethod("Log", new Type[1] { typeof(object) }), typeof(Debug).GetMethod("Log", new Type[2] { typeof(object), typeof(Object) }), typeof(Debug).GetMethod("LogError", new Type[1] { typeof(object) }), typeof(Debug).GetMethod("LogError", new Type[2] { typeof(object), typeof(Object) }), typeof(Debug).GetMethod("LogWarning", new Type[1] { typeof(object) }), typeof(Debug).GetMethod("LogWarning", new Type[2] { typeof(object), typeof(Object) }) }); } } [HarmonyPatch] public class ScaryClassVanillaFormat { public static bool Prefix(ref object format) { return MuteHarmonyPatches.RegexExclude(format); } public static IEnumerable<MethodBase> TargetMethods() { return new <>z__ReadOnlyArray<MethodBase>(new MethodBase[6] { typeof(Debug).GetMethod("LogFormat", new Type[2] { typeof(string), typeof(object[]) }), typeof(Debug).GetMethod("LogFormat", new Type[3] { typeof(Object), typeof(string), typeof(object[]) }), typeof(Debug).GetMethod("LogErrorFormat", new Type[2] { typeof(string), typeof(object[]) }), typeof(Debug).GetMethod("LogErrorFormat", new Type[3] { typeof(Object), typeof(string), typeof(object[]) }), typeof(Debug).GetMethod("LogWarningFormat", new Type[2] { typeof(string), typeof(object[]) }), typeof(Debug).GetMethod("LogWarningFormat", new Type[3] { typeof(Object), typeof(string), typeof(object[]) }) }); } } [HarmonyPatch] public class ScaryClassVanillaException { public static bool Prefix(ref Exception exception) { return MuteHarmonyPatches.RegexExclude(exception); } public static IEnumerable<MethodBase> TargetMethods() { return new <>z__ReadOnlyArray<MethodBase>(new MethodBase[2] { typeof(Debug).GetMethod("LogException", new Type[1] { typeof(Exception) }), typeof(Debug).GetMethod("LogException", new Type[2] { typeof(Exception), typeof(Object) }) }); } } [HarmonyPatch] public class ScaryClassModded { public static bool Prefix(ref object data) { return MuteHarmonyPatches.RegexExclude(data); } public static MethodBase TargetMethod() { return typeof(ManualLogSource).GetMethod("Log", new Type[2] { typeof(LogLevel), typeof(object) }); } } public static class VanillaPatches { [CompilerGenerated] private static class <>O { public static Manipulator <0>__EffectComponent_Start; public static Manipulator <1>__EffectManagerHelper_Reset; public static Manipulator <2>__EffectManagerHelper_StopAllParticleSystems; public static Manipulator <3>__Tracer_PrepForPoolUsage; public static Manipulator <4>__EffectManager_SpawnEffect_GameObject_EffectData_bool; public static Manipulator <5>__InputSourceFilter_Refresh; public static Manipulator <6>__MapZone_TryZoneStart; public static Manipulator <7>__EffectManager_ClearAllPools; public static Manipulator <8>__EffectManager_KillAllPools; public static Manipulator <9>__NetworkScene_RegisterPrefab; public static Manipulator <10>__NetworkScene_RegisterPrefab2; public static Manipulator <11>__NetworkScene_RegisterSpawnHandler; public static Manipulator <12>__Transform_setParent; public static Manipulator <13>__Def_setIndex; } private static void RemoveLogFormat(this ILCursor c, string logName) { c.RemoveLog(logName, 2); } private static void RemoveLog(this ILCursor c, string logName, int count = 1) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) if (c.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<Debug>(x, logName) })) { for (int i = 0; i < count; i++) { c.Emit(OpCodes.Pop); } c.Remove(); } } public static void Init() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Expected O, but got Unknown //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Expected O, but got Unknown //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Expected O, but got Unknown //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Expected O, but got Unknown //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Expected O, but got Unknown //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Expected O, but got Unknown //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Expected O, but got Unknown //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Expected O, but got Unknown //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Expected O, but got Unknown object obj = <>O.<0>__EffectComponent_Start; if (obj == null) { Manipulator val = EffectComponent_Start; <>O.<0>__EffectComponent_Start = val; obj = (object)val; } EffectComponent.Start += (Manipulator)obj; object obj2 = <>O.<1>__EffectManagerHelper_Reset; if (obj2 == null) { Manipulator val2 = EffectManagerHelper_Reset; <>O.<1>__EffectManagerHelper_Reset = val2; obj2 = (object)val2; } EffectManagerHelper.Reset += (Manipulator)obj2; object obj3 = <>O.<2>__EffectManagerHelper_StopAllParticleSystems; if (obj3 == null) { Manipulator val3 = EffectManagerHelper_StopAllParticleSystems; <>O.<2>__EffectManagerHelper_StopAllParticleSystems = val3; obj3 = (object)val3; } EffectManagerHelper.StopAllParticleSystems += (Manipulator)obj3; object obj4 = <>O.<3>__Tracer_PrepForPoolUsage; if (obj4 == null) { Manipulator val4 = Tracer_PrepForPoolUsage; <>O.<3>__Tracer_PrepForPoolUsage = val4; obj4 = (object)val4; } Tracer.PrepForPoolUsage += (Manipulator)obj4; object obj5 = <>O.<4>__EffectManager_SpawnEffect_GameObject_EffectData_bool; if (obj5 == null) { Manipulator val5 = EffectManager_SpawnEffect_GameObject_EffectData_bool; <>O.<4>__EffectManager_SpawnEffect_GameObject_EffectData_bool = val5; obj5 = (object)val5; } EffectManager.SpawnEffect_GameObject_EffectData_bool += (Manipulator)obj5; object obj6 = <>O.<5>__InputSourceFilter_Refresh; if (obj6 == null) { Manipulator val6 = InputSourceFilter_Refresh; <>O.<5>__InputSourceFilter_Refresh = val6; obj6 = (object)val6; } InputSourceFilter.Refresh += (Manipulator)obj6; object obj7 = <>O.<6>__MapZone_TryZoneStart; if (obj7 == null) { Manipulator val7 = MapZone_TryZoneStart; <>O.<6>__MapZone_TryZoneStart = val7; obj7 = (object)val7; } MapZone.TryZoneStart += (Manipulator)obj7; object obj8 = <>O.<7>__EffectManager_ClearAllPools; if (obj8 == null) { Manipulator val8 = EffectManager_ClearAllPools; <>O.<7>__EffectManager_ClearAllPools = val8; obj8 = (object)val8; } EffectManager.ClearAllPools += (Manipulator)obj8; object obj9 = <>O.<8>__EffectManager_KillAllPools; if (obj9 == null) { Manipulator val9 = EffectManager_KillAllPools; <>O.<8>__EffectManager_KillAllPools = val9; obj9 = (object)val9; } EffectManager.KillAllPools += (Manipulator)obj9; MethodInfo methodInfo = AccessTools.DeclaredMethod(typeof(NetworkScene), "RegisterPrefab", new Type[1] { typeof(GameObject) }, (Type[])null); object obj10 = <>O.<9>__NetworkScene_RegisterPrefab; if (obj10 == null) { Manipulator val10 = NetworkScene_RegisterPrefab; <>O.<9>__NetworkScene_RegisterPrefab = val10; obj10 = (object)val10; } new ILHook((MethodBase)methodInfo, (Manipulator)obj10); MethodInfo methodInfo2 = AccessTools.DeclaredMethod(typeof(NetworkScene), "RegisterPrefab", new Type[2] { typeof(GameObject), typeof(NetworkHash128) }, (Type[])null); object obj11 = <>O.<10>__NetworkScene_RegisterPrefab2; if (obj11 == null) { Manipulator val11 = NetworkScene_RegisterPrefab2; <>O.<10>__NetworkScene_RegisterPrefab2 = val11; obj11 = (object)val11; } new ILHook((MethodBase)methodInfo2, (Manipulator)obj11); MethodInfo methodInfo3 = AccessTools.DeclaredMethod(typeof(NetworkScene), "RegisterSpawnHandler", (Type[])null, (Type[])null); object obj12 = <>O.<11>__NetworkScene_RegisterSpawnHandler; if (obj12 == null) { Manipulator val12 = NetworkScene_RegisterSpawnHandler; <>O.<11>__NetworkScene_RegisterSpawnHandler = val12; obj12 = (object)val12; } new ILHook((MethodBase)methodInfo3, (Manipulator)obj12); MethodInfo methodInfo4 = AccessTools.DeclaredPropertySetter(typeof(Transform), "parent"); object obj13 = <>O.<12>__Transform_setParent; if (obj13 == null) { Manipulator val13 = Transform_setParent; <>O.<12>__Transform_setParent = val13; obj13 = (object)val13; } new ILHook((MethodBase)methodInfo4, (Manipulator)obj13); MethodInfo methodInfo5 = AccessTools.DeclaredPropertyGetter(typeof(ItemDef), "itemIndex"); object obj14 = <>O.<13>__Def_setIndex; if (obj14 == null) { Manipulator val14 = Def_setIndex; <>O.<13>__Def_setIndex = val14; obj14 = (object)val14; } new ILHook((MethodBase)methodInfo5, (Manipulator)obj14); MethodInfo methodInfo6 = AccessTools.DeclaredPropertyGetter(typeof(ItemTierDef), "tier"); object obj15 = <>O.<13>__Def_setIndex; if (obj15 == null) { Manipulator val15 = Def_setIndex; <>O.<13>__Def_setIndex = val15; obj15 = (object)val15; } new ILHook((MethodBase)methodInfo6, (Manipulator)obj15); MethodInfo methodInfo7 = AccessTools.DeclaredPropertyGetter(typeof(EquipmentDef), "equipmentIndex"); object obj16 = <>O.<13>__Def_setIndex; if (obj16 == null) { Manipulator val16 = Def_setIndex; <>O.<13>__Def_setIndex = val16; obj16 = (object)val16; } new ILHook((MethodBase)methodInfo7, (Manipulator)obj16); } private static void EffectManager_KillAllPools(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown RemoveLog(new ILCursor(il), "LogWarning"); } private static void NetworkScene_RegisterPrefab(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_0029: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLog(val, "Log"); RemoveLog(val, "LogWarning"); RemoveLog(val, "LogError"); } private static void NetworkScene_RegisterPrefab2(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001d: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLog(val, "Log"); RemoveLog(val, "LogError"); } private static void NetworkScene_RegisterSpawnHandler(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_0035: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLog(val, "LogError"); RemoveLog(val, "LogError"); RemoveLog(val, "LogError"); RemoveLog(val, "Log"); } private static void Def_setIndex(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001d: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLog(val, "LogError"); RemoveLog(val, "LogError"); } private static void Tracer_PrepForPoolUsage(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_001b: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLogFormat(val, "LogFormat"); RemoveLogFormat(val, "LogFormat"); } private static void EffectManager_SpawnEffect_GameObject_EffectData_bool(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001d: Expected O, but got Unknown ILCursor val = new ILCursor(il); RemoveLog(val, "LogError"); RemoveLog(val, "LogError"); } private static void EffectManager_ClearAllPools(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown RemoveLog(new ILCursor(il), "LogWarning"); } private static void MapZone_TryZoneStart(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown RemoveLogFormat(new ILCursor(il), "LogFormat"); } private static void Transform_setParent(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown RemoveLogFormat(new ILCursor(il), "LogWarning"); } private static void InputSourceFilter_Refresh(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown RemoveLogFormat(new ILCursor(il), "LogWarningFormat"); } private static void EffectManagerHelper_StopAllParticleSystems(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown RemoveLogFormat(new ILCursor(il), "LogFormat"); } private static void EffectManagerHelper_Reset(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown RemoveLogFormat(new ILCursor(il), "LogFormat"); } private static void EffectComponent_Start(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown RemoveLog(new ILCursor(il), "LogErrorFormat", 3); } } } internal sealed class <>z__ReadOnlyArray<T> : IEnumerable, ICollection, IList, IEnumerable<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection<T>, IList<T> { int ICollection.Count => _items.Length; bool ICollection.IsSynchronized => false; object ICollection.SyncRoot => this; object IList.this[int index] { get { return _items[index]; } set { throw new NotSupportedException(); } } bool IList.IsFixedSize => true; bool IList.IsReadOnly => true; int IReadOnlyCollection<T>.Count => _items.Length; T IReadOnlyList<T>.this[int index] => _items[index]; int ICollection<T>.Count => _items.Length; bool ICollection<T>.IsReadOnly => true; T IList<T>.this[int index] { get { return _items[index]; } set { throw new NotSupportedException(); } } public <>z__ReadOnlyArray(T[] items) { _items = items; } IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)_items).GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { ((ICollection)_items).CopyTo(array, index); } int IList.Add(object value) { throw new NotSupportedException(); } void IList.Clear() { throw new NotSupportedException(); } bool IList.Contains(object value) { return ((IList)_items).Contains(value); } int IList.IndexOf(object value) { return ((IList)_items).IndexOf(value); } void IList.Insert(int index, object value) { throw new NotSupportedException(); } void IList.Remove(object value) { throw new NotSupportedException(); } void IList.RemoveAt(int index) { throw new NotSupportedException(); } IEnumerator<T> IEnumerable<T>.GetEnumerator() { return ((IEnumerable<T>)_items).GetEnumerator(); } void ICollection<T>.Add(T item) { throw new NotSupportedException(); } void ICollection<T>.Clear() { throw new NotSupportedException(); } bool ICollection<T>.Contains(T item) { return ((ICollection<T>)_items).Contains(item); } void ICollection<T>.CopyTo(T[] array, int arrayIndex) { ((ICollection<T>)_items).CopyTo(array, arrayIndex); } bool ICollection<T>.Remove(T item) { throw new NotSupportedException(); } int IList<T>.IndexOf(T item) { return ((IList<T>)_items).IndexOf(item); } void IList<T>.Insert(int index, T item) { throw new NotSupportedException(); } void IList<T>.RemoveAt(int index) { throw new NotSupportedException(); } }