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 LethalPush v1.0.1
LethalPush.dll
Decompiled a day agousing System; using System.Collections; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using Unity.Collections; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Networking; [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: AssemblyCompany("LethalPush")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("LethalPush")] [assembly: AssemblyTitle("LethalPush")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace LethalPush { [BepInPlugin("com.YourName.LethalPush", "Lethal Push", "1.0.0")] public class Plugin : BaseUnityPlugin { private readonly Harmony harmony = new Harmony("com.YourName.LethalPush"); private void Awake() { harmony.PatchAll(typeof(PushPatch)); ((MonoBehaviour)this).StartCoroutine(LoadCustomAudio()); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Lethal Push Mod loaded (Custom Audio & Debug enabled)!"); } private IEnumerator LoadCustomAudio() { string folderPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string audioFilePath = Path.Combine(folderPath, "bump.mp3"); if (!File.Exists(audioFilePath)) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not find audio file at: " + audioFilePath)); yield break; } string url = "file://" + audioFilePath.Replace("\\", "/"); UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(url, (AudioType)13); try { yield return www.SendWebRequest(); if ((int)www.result == 2 || (int)www.result == 3) { ((BaseUnityPlugin)this).Logger.LogError((object)("Error loading custom audio: " + www.error)); yield break; } PushPatch.bumpClip = DownloadHandlerAudioClip.GetContent(www); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Successfully loaded custom bump.mp3!"); } finally { ((IDisposable)www)?.Dispose(); } } } internal class PushPatch { private static bool isMessageHandlerRegistered; private static float currentCooldown; private const float MAX_COOLDOWN = 3f; public static AudioClip? bumpClip; [HarmonyPatch(typeof(PlayerControllerB), "ConnectClientToPlayerObject")] [HarmonyPostfix] private static void InitNetworkPatch() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown if ((Object)(object)NetworkManager.Singleton != (Object)null && !isMessageHandlerRegistered) { NetworkManager.Singleton.CustomMessagingManager.RegisterNamedMessageHandler("LethalPush_ServerReceive", new HandleNamedMessageDelegate(OnServerReceivePush)); NetworkManager.Singleton.CustomMessagingManager.RegisterNamedMessageHandler("LethalPush_ClientReceive", new HandleNamedMessageDelegate(OnClientReceivePush)); isMessageHandlerRegistered = true; } } [HarmonyPatch(typeof(PlayerControllerB), "Update")] [HarmonyPostfix] private static void UpdatePatch(PlayerControllerB __instance) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0145: 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_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)__instance).IsOwner || !__instance.isPlayerControlled) { return; } if (currentCooldown > 0f) { currentCooldown -= Time.deltaTime; } if (!Mouse.current.middleButton.wasPressedThisFrame || !(currentCooldown <= 0f)) { return; } RaycastHit[] array = Physics.RaycastAll(((Component)__instance.gameplayCamera).transform.position, ((Component)__instance.gameplayCamera).transform.forward, 3f); RaycastHit[] array2 = array; FastBufferWriter val2 = default(FastBufferWriter); for (int i = 0; i < array2.Length; i++) { RaycastHit val = array2[i]; PlayerControllerB componentInParent = ((Component)((RaycastHit)(ref val)).collider).gameObject.GetComponentInParent<PlayerControllerB>(); if ((Object)(object)componentInParent != (Object)null && (Object)(object)componentInParent != (Object)(object)__instance) { currentCooldown = 3f; Vector3 forward = ((Component)__instance.gameplayCamera).transform.forward; forward.y = 0f; ((Vector3)(ref forward)).Normalize(); ((FastBufferWriter)(ref val2))..ctor(20, (Allocator)2, -1); ((FastBufferWriter)(ref val2)).WriteValueSafe<ulong>(ref componentInParent.playerClientId, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref forward.x, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref forward.y, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref forward.z, default(ForPrimitives)); NetworkManager.Singleton.CustomMessagingManager.SendNamedMessage("LethalPush_ServerReceive", 0uL, val2, (NetworkDelivery)3); if ((Object)(object)bumpClip != (Object)null) { AudioSource.PlayClipAtPoint(bumpClip, ((Component)componentInParent).transform.position, 1f); } break; } } } private static void OnServerReceivePush(ulong senderClientId, FastBufferReader reader) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0047: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) if (NetworkManager.Singleton.IsServer) { ulong num = default(ulong); ((FastBufferReader)(ref reader)).ReadValueSafe<ulong>(ref num, default(ForPrimitives)); float num2 = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num2, default(ForPrimitives)); float num3 = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num3, default(ForPrimitives)); float num4 = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num4, default(ForPrimitives)); FastBufferWriter val = default(FastBufferWriter); ((FastBufferWriter)(ref val))..ctor(12, (Allocator)2, -1); ((FastBufferWriter)(ref val)).WriteValueSafe<float>(ref num2, default(ForPrimitives)); ((FastBufferWriter)(ref val)).WriteValueSafe<float>(ref num3, default(ForPrimitives)); ((FastBufferWriter)(ref val)).WriteValueSafe<float>(ref num4, default(ForPrimitives)); NetworkManager.Singleton.CustomMessagingManager.SendNamedMessage("LethalPush_ClientReceive", num, val, (NetworkDelivery)3); } } private static void OnClientReceivePush(ulong senderClientId, FastBufferReader reader) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) float num = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives)); float num2 = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num2, default(ForPrimitives)); float num3 = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num3, default(ForPrimitives)); PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController != (Object)null) { Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(num, num2, num3); float num4 = 500f; localPlayerController.externalForces += val * num4; if ((Object)(object)bumpClip != (Object)null) { AudioSource.PlayClipAtPoint(bumpClip, ((Component)localPlayerController).transform.position, 1f); } } } } }