diff --git a/NitroxClient/Communication/Packets/Processors/PlayerHeldItemChangedProcessor.cs b/NitroxClient/Communication/Packets/Processors/PlayerHeldItemChangedProcessor.cs index e2809eca03..912a9e4a01 100644 --- a/NitroxClient/Communication/Packets/Processors/PlayerHeldItemChangedProcessor.cs +++ b/NitroxClient/Communication/Packets/Processors/PlayerHeldItemChangedProcessor.cs @@ -46,8 +46,6 @@ public override void Process(PlayerHeldItemChanged packet) Pickupable pickupable = item.GetComponent(); Validate.IsTrue(pickupable); - Validate.NotNull(pickupable.inventoryItem); - ItemsContainer inventory = opPlayer.Value.Inventory; PlayerTool tool = item.GetComponent(); @@ -87,7 +85,7 @@ public override void Process(PlayerHeldItemChanged packet) tool.mainCollider.enabled = true; } tool.GetComponent().isKinematic = false; - pickupable.inventoryItem.item.Reparent(inventory.tr); + pickupable.inventoryItem?.item.Reparent(inventory.tr); foreach (Animator componentsInChild in tool.GetComponentsInChildren()) { componentsInChild.cullingMode = AnimatorCullingMode.CullUpdateTransforms; @@ -103,15 +101,21 @@ public override void Process(PlayerHeldItemChanged packet) break; case PlayerHeldItemChanged.ChangeType.DRAW_AS_ITEM: - pickupable.inventoryItem.item.Reparent(opPlayer.Value.ItemAttachPoint); - pickupable.inventoryItem.item.SetVisible(true); - Utils.SetLayerRecursively(pickupable.inventoryItem.item.gameObject, viewModelLayer); + if (pickupable.inventoryItem != null) + { + pickupable.inventoryItem.item.Reparent(opPlayer.Value.ItemAttachPoint); + pickupable.inventoryItem.item.SetVisible(true); + Utils.SetLayerRecursively(pickupable.inventoryItem.item.gameObject, viewModelLayer); + } break; case PlayerHeldItemChanged.ChangeType.HOLSTER_AS_ITEM: - pickupable.inventoryItem.item.Reparent(inventory.tr); - pickupable.inventoryItem.item.SetVisible(false); - Utils.SetLayerRecursively(pickupable.inventoryItem.item.gameObject, defaultLayer); + if (pickupable.inventoryItem != null) + { + pickupable.inventoryItem.item.Reparent(inventory.tr); + pickupable.inventoryItem.item.SetVisible(false); + Utils.SetLayerRecursively(pickupable.inventoryItem.item.gameObject, defaultLayer); + } break; default: