Please disclose if your mod was created primarily 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 JBLM v2.3.2
JBLM.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using GameNetcodeStuff; using JBLM.NetcodePatcher; using LethalCompanyTemplate.Behaviours; using LethalLib.Modules; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; using UnityEngine.Events; [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("JBLM")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("JB Lethal Mod")] [assembly: AssemblyFileVersion("2.3.0.0")] [assembly: AssemblyInformationalVersion("2.3.0+96b67800dfc884c5fa84388de7e0637cf35b75ab")] [assembly: AssemblyProduct("JBLM")] [assembly: AssemblyTitle("JBLM")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.3.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { } } 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; } } } public class CrolardBehaviour : PhysicsProp { private InteractTrigger[] triggers; private BoxCollider container; private AudioSource ganjaSource; public AudioClip ganjaCrolard; public AudioClip ganjaNoiseLow; public AudioClip ganjaNoiseMedium; public AudioClip ganjaNoiseHigh; public AudioClip ganjaExplosion; private float w1 = 1f; private float w2 = 3f; private float chanceMin = 0.005f; private float chanceMax = 0.2f; private float addedWeight = 0f; public override void Start() { ((GrabbableObject)this).Start(); triggers = ((Component)this).GetComponentsInChildren<InteractTrigger>(); ganjaSource = ((Component)this).GetComponentInChildren<AudioSource>(); BoxCollider[] componentsInChildren = ((Component)this).GetComponentsInChildren<BoxCollider>(); foreach (BoxCollider val in componentsInChildren) { Debug.LogError((object)("Box collider found : " + ((Object)val).name + " !")); if (!(((Object)val).name != "PlaceableBounds")) { container = val; break; } } if ((Object)(object)container == (Object)null) { Debug.LogError((object)"Couldn't find BoxCollider component in the prefab..."); } if (triggers == null) { Debug.LogError((object)"Couldn't find InteractTrigger components in the prefab..."); } InteractTrigger[] array = triggers; foreach (InteractTrigger val2 in array) { ((UnityEvent<PlayerControllerB>)(object)val2.onInteract).AddListener((UnityAction<PlayerControllerB>)InteractCrolard); ((Component)val2).tag = "InteractTrigger"; Debug.Log((object)"The tag is InteractTrigger"); val2.interactCooldown = false; val2.cooldownTime = 0f; val2.timeToHold = 1.2f; val2.oneHandedItemAllowed = true; val2.twoHandedItemAllowed = true; val2.disableTriggerMesh = true; val2.holdInteraction = true; } } public override void ItemActivate(bool used, bool buttonDown = true) { //IL_00bc: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).ItemActivate(used, buttonDown); if (buttonDown && (Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null) { if (w1 < addedWeight && addedWeight <= w2) { ganjaSource.PlayOneShot(ganjaNoiseMedium, 0.8f); } else if (addedWeight <= w1) { ganjaSource.PlayOneShot(ganjaNoiseLow, 0.6f); } else { ganjaSource.PlayOneShot(ganjaNoiseHigh, 1f); } RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 60f, 1f, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0); } } public override void Update() { ((GrabbableObject)this).Update(); UpdateInteractTriggers(); } private void UpdateInteractTriggers() { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((Object)(object)localPlayerController == (Object)null) { return; } if (!localPlayerController.isHoldingObject) { SetInteractTriggers(interactable: false, "No item to feed"); return; } GrabbableObject currentlyHeldObjectServer = localPlayerController.currentlyHeldObjectServer; if (!((Object)(object)((Component)currentlyHeldObjectServer).GetComponent<CrolardBehaviour>() != (Object)null)) { if (!currentlyHeldObjectServer.itemProperties.isScrap) { SetInteractTriggers(interactable: false, "You can only feed scrap to Crolard"); } else if ((Object)(object)RoundManager.Instance == (Object)null || (Object)(object)RoundManager.Instance.dungeonGenerator == (Object)null || !RoundManager.Instance.dungeonCompletedGenerating) { SetInteractTriggers(interactable: false, "You're not on a planet"); } else { SetInteractTriggers(interactable: true, "Feed Crolard [LMB]"); } } } private void SetInteractTriggers(bool interactable = false, string hoverTip = "Default text") { InteractTrigger[] array = triggers; foreach (InteractTrigger val in array) { val.interactable = interactable; if (interactable) { val.hoverTip = hoverTip; } else { val.disabledHoverTip = hoverTip; } } } [ServerRpc(RequireOwnership = false)] public void UpdateInternalWeightServerRpc(float newWeight) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2671713532u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref newWeight, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2671713532u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { UpdateInternalWeightClientRpc(newWeight); } } } [ClientRpc] public void UpdateInternalWeightClientRpc(float newWeight) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2516328432u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref newWeight, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2516328432u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { addedWeight = newWeight; } } } [ServerRpc(RequireOwnership = false)] public void UpdateValueServerRpc(int newValue) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(811550316u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, newValue); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 811550316u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { UpdateValueClientRpc(newValue); } } } [ClientRpc] public void UpdateValueClientRpc(int newValue) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4289962534u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, newValue); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4289962534u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ((GrabbableObject)this).scrapValue = newValue; ((GrabbableObject)this).SetScrapValue(((GrabbableObject)this).scrapValue); } } } [ServerRpc(RequireOwnership = false)] public void ExplodeServerRpc(Vector3 location) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3046441327u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref location); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3046441327u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ExplodeClientRpc(location); } } } [ClientRpc] public void ExplodeClientRpc(Vector3 location) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4123934730u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref location); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4123934730u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ganjaSource.pitch = Random.Range(0.93f, 1.07f); ganjaSource.PlayOneShot(ganjaExplosion, 1.2f); SpawnExplosion(location, spawnExplosionEffect: false, 5.7f, 6.4f); } } } private void InteractCrolard(PlayerControllerB playerInteractor) { //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) if (!playerInteractor.isHoldingObject) { return; } if ((Object)(object)playerInteractor.currentlyHeldObjectServer == (Object)null) { Debug.LogError((object)"Item is null"); return; } if (!playerInteractor.currentlyHeldObjectServer.itemProperties.isScrap) { Debug.LogError((object)"This is not scrap"); return; } int num = (int)((double)playerInteractor.currentlyHeldObjectServer.scrapValue * 1.3); float num2 = (playerInteractor.currentlyHeldObjectServer.itemProperties.weight - 1f) * 1.25f; if ((Object)(object)((Component)playerInteractor.currentlyHeldObjectServer).GetComponent<SaucisseBehaviour>() != (Object)null) { ganjaSource.PlayOneShot(ganjaCrolard, 0.8f); RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 800f, 1f, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0); UpdateValueServerRpc(((GrabbableObject)this).scrapValue + 70); playerInteractor.DespawnHeldObject(); return; } playerInteractor.DespawnHeldObject(); UpdateInternalWeightServerRpc(addedWeight + num2); UpdateValueServerRpc(((GrabbableObject)this).scrapValue + num); float num3 = ((w1 < addedWeight && addedWeight <= w2) ? (chanceMin + (addedWeight - w1) * (chanceMax - chanceMin) / (w2 - w1)) : ((!(addedWeight <= w1)) ? chanceMax : chanceMin)); if (Random.Range(0f, 1f) < num3) { ExplodeServerRpc(((Component)this).transform.position + Vector3.up); UpdateInternalWeightServerRpc(0f); UpdateValueServerRpc((((GrabbableObject)this).scrapValue - num) / 2); } } public static void SpawnExplosion(Vector3 explosionPosition, bool spawnExplosionEffect = false, float killRange = 1f, float damageRange = 1f) { //IL_005c: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)"Spawning explosion at pos: {explosionPosition}"); if (spawnExplosionEffect) { Object.Instantiate<GameObject>(StartOfRound.Instance.explosionPrefab, explosionPosition, Quaternion.Euler(-90f, 0f, 0f), RoundManager.Instance.mapPropsContainer.transform).SetActive(true); } float num = Vector3.Distance(((Component)GameNetworkManager.Instance.localPlayerController).transform.position, explosionPosition); if ((double)num < 14.0) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); } else if ((double)num < 25.0) { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } Collider[] array = Physics.OverlapSphere(explosionPosition, 6f, 2621448, (QueryTriggerInteraction)2); for (int i = 0; i < array.Length; i++) { float num2 = Vector3.Distance(explosionPosition, ((Component)array[i]).transform.position); if (!((double)num2 <= 4.0) && Physics.Linecast(explosionPosition, ((Component)array[i]).transform.position + Vector3.up * 0.3f, 256, (QueryTriggerInteraction)1)) { continue; } if (((Component)array[i]).gameObject.layer == 3) { PlayerControllerB component = ((Component)array[i]).gameObject.GetComponent<PlayerControllerB>(); if ((Object)(object)component != (Object)null && ((NetworkBehaviour)component).IsOwner) { if ((double)num2 < (double)killRange) { Vector3 val = (((Component)component.gameplayCamera).transform.position - explosionPosition) * 80f / Vector3.Distance(((Component)component.gameplayCamera).transform.position, explosionPosition); component.KillPlayer(val, true, (CauseOfDeath)3, 0); } else if ((double)num2 < (double)damageRange) { component.DamagePlayer(50, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); } } } else if (((Component)array[i]).gameObject.layer == 19) { EnemyAICollisionDetect componentInChildren = ((Component)array[i]).gameObject.GetComponentInChildren<EnemyAICollisionDetect>(); if ((Object)(object)componentInChildren != (Object)null && ((NetworkBehaviour)componentInChildren.mainScript).IsOwner && (double)num2 < 4.5) { componentInChildren.mainScript.HitEnemyOnLocalClient(6, default(Vector3), (PlayerControllerB)null, false); } } } int num3 = ~LayerMask.GetMask(new string[1] { "Room" }); int num4 = ~LayerMask.GetMask(new string[1] { "Colliders" }); Collider[] array2 = Physics.OverlapSphere(explosionPosition, 10f, num4); for (int j = 0; j < array2.Length; j++) { Component val2 = (Component)(object)array2[j]; Rigidbody component2 = val2.GetComponent<Rigidbody>(); if ((Object)(object)component2 != (Object)null) { component2.AddExplosionForce(70f, explosionPosition, 10f); } } } public override void GrabItem() { ((GrabbableObject)this).GrabItem(); if (Object.op_Implicit((Object)(object)((GrabbableObject)this).playerHeldBy) && (Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)((GrabbableObject)this).playerHeldBy) { PlayerControllerB playerHeldBy = ((GrabbableObject)this).playerHeldBy; playerHeldBy.carryWeight += Mathf.Clamp(addedWeight, 0f, 10f); } } public override void DiscardItem() { if (Object.op_Implicit((Object)(object)((GrabbableObject)this).playerHeldBy) && (Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)((GrabbableObject)this).playerHeldBy) { PlayerControllerB playerHeldBy = ((GrabbableObject)this).playerHeldBy; playerHeldBy.carryWeight -= Mathf.Clamp(addedWeight, 0f, 10f); } ((GrabbableObject)this).DiscardItem(); } public override void OnBroughtToShip() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).OnBroughtToShip(); ganjaSource.PlayOneShot(ganjaCrolard, 1f); RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 300f, 1f, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0); } protected override void __initializeVariables() { ((PhysicsProp)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_CrolardBehaviour() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2671713532u, new RpcReceiveHandler(__rpc_handler_2671713532)); NetworkManager.__rpc_func_table.Add(2516328432u, new RpcReceiveHandler(__rpc_handler_2516328432)); NetworkManager.__rpc_func_table.Add(811550316u, new RpcReceiveHandler(__rpc_handler_811550316)); NetworkManager.__rpc_func_table.Add(4289962534u, new RpcReceiveHandler(__rpc_handler_4289962534)); NetworkManager.__rpc_func_table.Add(3046441327u, new RpcReceiveHandler(__rpc_handler_3046441327)); NetworkManager.__rpc_func_table.Add(4123934730u, new RpcReceiveHandler(__rpc_handler_4123934730)); } private static void __rpc_handler_2671713532(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float newWeight = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref newWeight, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((CrolardBehaviour)(object)target).UpdateInternalWeightServerRpc(newWeight); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2516328432(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float newWeight = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref newWeight, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((CrolardBehaviour)(object)target).UpdateInternalWeightClientRpc(newWeight); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_811550316(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int newValue = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref newValue); target.__rpc_exec_stage = (__RpcExecStage)1; ((CrolardBehaviour)(object)target).UpdateValueServerRpc(newValue); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4289962534(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int newValue = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref newValue); target.__rpc_exec_stage = (__RpcExecStage)2; ((CrolardBehaviour)(object)target).UpdateValueClientRpc(newValue); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3046441327(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 location = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref location); target.__rpc_exec_stage = (__RpcExecStage)1; ((CrolardBehaviour)(object)target).ExplodeServerRpc(location); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4123934730(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 location = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref location); target.__rpc_exec_stage = (__RpcExecStage)2; ((CrolardBehaviour)(object)target).ExplodeClientRpc(location); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "CrolardBehaviour"; } } namespace LethalCompanyTemplate { [BepInPlugin("JBLM", "JBLM", "2.3.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static AssetBundle crolard_bundle; private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin JBLM start loading!"); Type[] types = Assembly.GetExecutingAssembly().GetTypes(); Type[] array = types; foreach (Type type in array) { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array2 = methods; foreach (MethodInfo methodInfo in array2) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin JBLM loaded netcode patcher !"); string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); crolard_bundle = AssetBundle.LoadFromFile(Path.Combine(directoryName, "crolard")); if ((Object)(object)crolard_bundle == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load custom assets."); return; } int num = 3; ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loading Crolard Item"); Item val = crolard_bundle.LoadAsset<Item>("Assets/CrolardMod/Items/Scraps/crolard/CrolardItem.asset"); CrolardBehaviour crolardBehaviour = val.spawnPrefab.AddComponent<CrolardBehaviour>(); ((GrabbableObject)crolardBehaviour).grabbable = true; ((GrabbableObject)crolardBehaviour).grabbableToEnemies = true; ((GrabbableObject)crolardBehaviour).itemProperties = val; crolardBehaviour.ganjaCrolard = crolard_bundle.LoadAsset<AudioClip>("Assets/CrolardMod/Items/Scraps/crolard/MoaningFar.mp3"); crolardBehaviour.ganjaNoiseLow = crolard_bundle.LoadAsset<AudioClip>("Assets/CrolardMod/Items/Scraps/crolard/crilow.mp3"); crolardBehaviour.ganjaNoiseMedium = crolard_bundle.LoadAsset<AudioClip>("Assets/CrolardMod/Items/Scraps/crolard/crimid.mp3"); crolardBehaviour.ganjaNoiseHigh = crolard_bundle.LoadAsset<AudioClip>("Assets/CrolardMod/Items/Scraps/crolard/crihigh.mp3"); crolardBehaviour.ganjaExplosion = crolard_bundle.LoadAsset<AudioClip>("Assets/CrolardMod/Items/Scraps/crolard/explosion.mp3"); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Registering Crolard as scrap"); Utilities.FixMixerGroups(val.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(val.spawnPrefab); Items.RegisterScrap(val, num, (LevelTypes)(-1)); int num2 = 20; ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loading Saucisse Item"); Item val2 = crolard_bundle.LoadAsset<Item>("Assets/CrolardMod/Items/Scraps/saucisse/SaucisseItem.asset"); SaucisseBehaviour saucisseBehaviour = val2.spawnPrefab.AddComponent<SaucisseBehaviour>(); ((GrabbableObject)saucisseBehaviour).grabbable = true; ((GrabbableObject)saucisseBehaviour).grabbableToEnemies = true; ((GrabbableObject)saucisseBehaviour).itemProperties = val2; ((BaseUnityPlugin)this).Logger.LogInfo((object)"Registering Saucisse as scrap"); Utilities.FixMixerGroups(val2.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab); Items.RegisterScrap(val2, num2, (LevelTypes)(-1)); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin JBLM is loaded!"); } } public static class PluginInfo { public const string PLUGIN_GUID = "JBLM"; public const string PLUGIN_NAME = "JBLM"; public const string PLUGIN_VERSION = "2.3.0"; } } namespace LethalCompanyTemplate.Behaviours { public class SaucisseBehaviour : PhysicsProp { public override void ItemActivate(bool used, bool buttonDown = true) { ((GrabbableObject)this).ItemActivate(used, buttonDown); } protected override void __initializeVariables() { ((PhysicsProp)this).__initializeVariables(); } protected internal override string __getTypeName() { return "SaucisseBehaviour"; } } } namespace JBLM.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }