Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of UnityExplorerFix v1.0.0
UnityExplorerFix.dll
Decompiled a year agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using MonoMod.RuntimeDetour; using On.RoR2; using On.RoR2.UI; using RoR2; using RoR2.UI; using UnityEngine; using UnityEngine.EventSystems; using UnityExplorer.UI; [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("UnityExplorerFix")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+242e73a99540e4307a4c231f69fe4ee09f6dfb55")] [assembly: AssemblyProduct("UnityExplorerFix")] [assembly: AssemblyTitle("UnityExplorerFix")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace HDeMods; [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.HDeDeDe.UnityExplorerFix", "UnityExplorerFix", "1.0.0")] public sealed class UnityExplorerFixPlugin : BaseUnityPlugin { public const string PluginGUID = "com.HDeDeDe.UnityExplorerFix"; public const string PluginAuthor = "HDeDeDe"; public const string PluginName = "UnityExplorerFix"; public const string PluginVersion = "1.0.0"; private void Awake() { UnityExplorerFix.Startup(); } } public static class UnityExplorerFix { public delegate void ShowMenuDel(Action<bool> orig, bool enable); private static Hook showMenuHook; public static bool unsafeToOpen; private static LocalUser lastKnownUser; internal static void Startup() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown SurvivorIconController.GetLocalUser += new hook_GetLocalUser(SurvivorIconController_GetLocalUser); PauseStopController.Awake += new hook_Awake(PauseStopController_Awake); RuleChoiceController.Start += new hook_Start(RuleChoiceController_Start); RuleChoiceController.FindNetworkUser += new hook_FindNetworkUser(RuleChoiceController_FindNetworkUser); showMenuHook = new Hook((MethodBase)AccessTools.PropertySetter(typeof(UIManager), "ShowMenu"), (Delegate)new ShowMenuDel(BlockIfUnsafe)); } private static NetworkUser RuleChoiceController_FindNetworkUser(orig_FindNetworkUser orig, RuleChoiceController self) { if (((Object)EventSystem.current).name != "UniverseLibCanvas") { return orig.Invoke(self); } LocalUser obj = lastKnownUser; if (obj == null) { return null; } return obj.currentNetworkUser; } private static void BlockIfUnsafe(Action<bool> orig, bool enable) { if (!unsafeToOpen) { orig(enable); } } private static void RuleChoiceController_Start(orig_Start orig, RuleChoiceController self) { orig.Invoke(self); unsafeToOpen = false; } private static void PauseStopController_Awake(orig_Awake orig, PauseStopController self) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) if (UIManager.ShowMenu) { UIManager.ShowMenu = false; } unsafeToOpen = true; orig.Invoke(self); lastKnownUser = ((MPEventSystem)EventSystem.current).localUser; } private static LocalUser SurvivorIconController_GetLocalUser(orig_GetLocalUser orig, SurvivorIconController self) { if (((Object)EventSystem.current).name != "UniverseLibCanvas") { lastKnownUser = orig.Invoke(self); } return lastKnownUser; } }