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 TooManyEmotesVRFix v1.0.0
TooManyEmotesVRFix.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using LCVR.Managers; using TooManyEmotesVRFix.Patches; using TooManyEmotesVRFix.Tools; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("TooManyEmotesVRFix")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("TooManyEmotesVRFix")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("cdbbb476-26d6-4951-b66f-2667d45fe642")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace TooManyEmotesVRFix.Tools { public static class PatchHelper { public static HarmonyMethod Method(Expression<Action> action, bool debug = false) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown return new HarmonyMethod(SymbolExtensions.GetMethodInfo(action), -1, (string[])null, (string[])null, (bool?)debug) { priority = 10000 }; } public static HarmonyMethod Method<A>(Expression<Action<A>> action, bool debug = false) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown return new HarmonyMethod(SymbolExtensions.GetMethodInfo<A>(action), -1, (string[])null, (string[])null, (bool?)debug) { priority = 10000 }; } public static HarmonyMethod Method<A, B>(Expression<Action<A, B>> action, bool debug = false) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown return new HarmonyMethod(SymbolExtensions.GetMethodInfo((LambdaExpression)action), -1, (string[])null, (string[])null, (bool?)debug) { priority = 10000 }; } } public static class Reflection { public static Type Type(string type) { return AccessTools.TypeByName(type); } public static List<ConstructorInfo> Constructors(string type) { return AccessTools.GetDeclaredConstructors(Type(type), (bool?)null); } public static List<ConstructorInfo> Constructors(Type type) { return AccessTools.GetDeclaredConstructors(type, (bool?)null); } public static MethodBase Method(string type, string method, Type[] args = null, bool declared = true) { if (declared) { return AccessTools.DeclaredMethod(Type(type), method, args, (Type[])null); } return AccessTools.Method(Type(type), method, args, (Type[])null); } public static MethodBase Method(Type type, string method, Type[] args = null, bool declared = true) { if (declared) { return AccessTools.DeclaredMethod(type, method, args, (Type[])null); } return AccessTools.Method(type, method, args, (Type[])null); } public static FieldInfo Field(string type, string field, bool declared = true) { if (declared) { return AccessTools.DeclaredField(Type(type), field); } return AccessTools.Field(Type(type), field); } public static FieldInfo Field(Type type, string field, bool declared = true) { if (declared) { return AccessTools.DeclaredField(type, field); } return AccessTools.Field(type, field); } public static PropertyInfo Property(string type, string property, bool declared = true) { if (declared) { return AccessTools.DeclaredProperty(Type(type), property); } return AccessTools.Property(Type(type), property); } public static PropertyInfo Property(Type type, string property, bool declared = true) { if (declared) { return AccessTools.DeclaredProperty(type, property); } return AccessTools.Property(type, property); } } } namespace TooManyEmotesVRFix.Patches { public static class LVCR_Compat_Patches { public static void Apply(Harmony harmony) { harmony.Patch(Reflection.Method("TooManyEmotes.Compatibility.LCVR_Compat", "get_LoadedAndEnabled"), (HarmonyMethod)null, (HarmonyMethod)null, PatchHelper.Method(() => GetterTranspiler(null, null)), (HarmonyMethod)null, (HarmonyMethod)null); } private static IEnumerable<CodeInstruction> GetterTranspiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator) { List<CodeInstruction> list = new List<CodeInstruction>(); foreach (CodeInstruction instruction in instructions) { if (instruction.opcode == OpCodes.Call && instruction.operand is MethodInfo methodInfo && methodInfo.Name.Equals("get_VRModeEnabled")) { instruction.operand = Reflection.Method("TooManyEmotesVRFix.Patches.LVCR_Compat_Hook", "IsInVr"); } list.Add(instruction); } return list; } } public static class LVCR_Compat_Hook { public static bool IsInVr() { return VRSession.InVR; } } } namespace TooManyEmotesVRFix.Core { public static class TooManyEmotesVRFixInfo { public const string GUID = "lauriichan.tmevrfix"; public const string PrintName = "TooManyEmotesVRFix"; public const string Version = "1.0.0"; } [BepInPlugin("lauriichan.tmevrfix", "TooManyEmotesVRFix", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] internal class TooManyEmotesVRFixPlugin : BaseUnityPlugin { private Harmony harmony; public static ManualLogSource Log { get; private set; } public void Awake() { Log = ((BaseUnityPlugin)this).Logger; SetupPatches(); } private void SetupPatches() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown if (harmony == null) { harmony = new Harmony("lauriichan.tmevrfix"); LVCR_Compat_Patches.Apply(harmony); } } public void OnDestroy() { if (harmony != null) { harmony.UnpatchSelf(); harmony = null; } } } }