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 TeleportDeclineFixed v1.2.1
TeleportDeclineFixed.dll
Decompiled 8 months 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 BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalCompanyInputUtils.Api; using Microsoft.CodeAnalysis; using StaticNetcodeLib; using TMPro; using TeleportDecline.Patches; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("EasyTextEffects")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: AssemblyCompany("TeleportDeclineFixed")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("A mod for Lethal Company that enables you to prevent/decline a teleport.")] [assembly: AssemblyFileVersion("1.2.1.0")] [assembly: AssemblyInformationalVersion("1.2.1+20e5daa91680c713a6402028faf2452f782ac8da")] [assembly: AssemblyProduct("TeleportDeclineFixed")] [assembly: AssemblyTitle("TeleportDeclineFixed")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/Packsolite/TeleportDeclineFixed")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] 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 TeleportDecline { [BepInPlugin("MasterAli2.TeleportDeclineFixed", "Teleport Decline Fixed", "1.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class TeleportDeclineBase : BaseUnityPlugin { public const string GUID = "MasterAli2.TeleportDeclineFixed"; public const string NAME = "Teleport Decline Fixed"; public const string VERSION = "1.1.0"; public const string AUTHOR = "MasterAli2"; private readonly Harmony harmony = new Harmony("MasterAli2.TeleportDeclineFixed"); internal ManualLogSource mls; public static TeleportDeclineBase instance; public bool isTeleporting = false; public bool declining = false; public ShipTeleporter teleporter; private void Awake() { if ((Object)(object)instance == (Object)null) { instance = this; } mls = ((BaseUnityPlugin)this).Logger; TeleportDeclineInput.instance.DeclineKey.performed += DeclineTeleport; ApplyPatches(); mls.LogInfo((object)"MasterAli2.TeleportDeclineFixed v1.1.0 has loaded!"); } private void ApplyPatches() { mls.LogInfo((object)"Patching..."); harmony.PatchAll(typeof(Patch)); mls.LogInfo((object)"Patched..."); } public void DeclineTeleport(CallbackContext context) { if (((CallbackContext)(ref context)).performed && isTeleporting) { StartOfRound.Instance.localPlayerController.beamUpParticle.Stop(); ((TMP_Text)HUDManager.Instance.tipsPanelBody).text = "Declining teleport..."; declining = true; TeleportDeclineNetcode.DeclineTeleportServerRpc(); mls.LogInfo((object)"Declining teleport..."); } } } public class TeleportDeclineInput : LcInputActions { public static TeleportDeclineInput instance = new TeleportDeclineInput(); [InputAction("<Keyboard>/c", Name = "Decline Teleport")] public InputAction DeclineKey { get; set; } } [StaticNetcode] public static class TeleportDeclineNetcode { [ClientRpc] public static void DeclineTeleportClientRpc() { TeleportDeclineBase instance = TeleportDeclineBase.instance; if (instance.declining) { ((TMP_Text)HUDManager.Instance.tipsPanelBody).text = "Teleport declined!"; instance.declining = false; } ((MonoBehaviour)instance.teleporter).StopCoroutine(instance.teleporter.beamUpPlayerCoroutine); instance.isTeleporting = false; instance.mls.LogInfo((object)"Teleport was declined!"); if (!instance.isTeleporting && StartOfRound.Instance.localPlayerController.isInHangarShipRoom) { HUDManager.Instance.DisplayTip("Teleport Decline", "That teleport got declined", false, false, "LC_Tip1"); } } [ServerRpc] public static void DeclineTeleportServerRpc() { DeclineTeleportClientRpc(); } } } namespace TeleportDecline.Patches { internal class Patch { [HarmonyPatch(typeof(ShipTeleporter), "PressTeleportButtonClientRpc")] [HarmonyPostfix] private static void PressTeleportButtonClientRpcPostfix(ShipTeleporter __instance) { if (!__instance.isInverseTeleporter && !StartOfRound.Instance.localPlayerController.isPlayerDead) { TeleportDeclineBase.instance.teleporter = __instance; if ((Object)(object)StartOfRound.Instance.mapScreen.targetedPlayer == (Object)(object)StartOfRound.Instance.localPlayerController) { HUDManager.Instance.DisplayTip("Teleporting!", "Press " + InputActionRebindingExtensions.GetBindingDisplayString(TeleportDeclineInput.instance.DeclineKey, (DisplayStringOptions)0, (string)null).Split("|")[0] + "to stop teleport", false, false, "LC_Tip1"); TeleportDeclineBase.instance.isTeleporting = true; } } } [HarmonyPatch(typeof(ShipTeleporter), "SetPlayerTeleporterId")] [HarmonyPostfix] private static void SetPlayerTeleporterIdPostfix(ShipTeleporter __instance, ref int teleporterId) { if (!((Object)(object)TeleportDeclineBase.instance.teleporter != (Object)(object)__instance)) { TeleportDeclineBase.instance.isTeleporting = false; } } [HarmonyPatch(typeof(PlayerControllerB), "TeleportPlayer")] [HarmonyPrefix] private static bool TeleportPlayer(ShipTeleporter __instance, Vector3 pos, bool withRotation, float rot, bool allowInteractTrigger, bool enableController) { if (!TeleportDeclineBase.instance.declining) { return true; } TeleportDeclineBase.instance.declining = false; TeleportDeclineBase.instance.mls.LogWarning((object)"Teleport decline not acknowledged by host. Desync may occur."); return false; } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }