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 BunkbedRevive V80Fix v1.0.0
BunkbedRevive_V80Fix.dll
Decompiled 7 hours agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using Microsoft.CodeAnalysis; using UnityEngine; [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("BunkbedRevive_V80Fix")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BunkbedRevive_V80Fix")] [assembly: AssemblyTitle("BunkbedRevive_V80Fix")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 BunkbedRevive_V80Fix { [BepInPlugin("com.v80fix.BunkbedRevive", "BunkbedRevive_V80Fix", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public sealed class Plugin : BaseUnityPlugin { private Type bunkbedControllerType; private FieldInfo interactTriggerField; private object reviveTrigger; private FieldInfo oneHandedItemAllowedField; private FieldInfo twoHandedItemAllowedField; private FieldInfo interactableField; private float nextCheckTime; private bool loggedSuccess; private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"BunkbedRevive_V80Fix 1.0.0 loaded."); } private void Update() { if (Time.unscaledTime < nextCheckTime) { return; } nextCheckTime = Time.unscaledTime + 0.25f; if (ResolveSomexTrigger()) { oneHandedItemAllowedField.SetValue(reviveTrigger, true); twoHandedItemAllowedField.SetValue(reviveTrigger, true); if (interactableField != null) { interactableField.SetValue(reviveTrigger, true); } if (!loggedSuccess) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Somex ReviveBed trigger found. oneHandedItemAllowed=true, twoHandedItemAllowed=true."); loggedSuccess = true; } } } private bool ResolveSomexTrigger() { if (reviveTrigger != null && oneHandedItemAllowedField != null && twoHandedItemAllowedField != null) { return true; } if (bunkbedControllerType == null) { Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); for (int i = 0; i < assemblies.Length; i++) { Type type = assemblies[i].GetType("BunkbedRevive.BunkbedController", throwOnError: false); if (type != null) { bunkbedControllerType = type; break; } } if (bunkbedControllerType == null) { return false; } } if (interactTriggerField == null) { interactTriggerField = bunkbedControllerType.GetField("interactTrigger", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); if (interactTriggerField == null) { ((BaseUnityPlugin)this).Logger.LogError((object)"BunkbedController found but interactTrigger field was not found."); return false; } } reviveTrigger = interactTriggerField.GetValue(null); if (reviveTrigger == null) { return false; } Type type2 = reviveTrigger.GetType(); BindingFlags bindingAttr = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; oneHandedItemAllowedField = type2.GetField("oneHandedItemAllowed", bindingAttr); twoHandedItemAllowedField = type2.GetField("twoHandedItemAllowed", bindingAttr); interactableField = type2.GetField("interactable", bindingAttr); if (oneHandedItemAllowedField == null || twoHandedItemAllowedField == null) { ((BaseUnityPlugin)this).Logger.LogError((object)"ReviveBed trigger found but V80 interaction fields were not found."); reviveTrigger = null; return false; } return true; } } }