From ddaf5f21cf5c3593be2ddcd29c7d1df7c45f6a9a Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Fri, 19 Jan 2018 14:03:31 -0300 Subject: [PATCH] Fixed exception when using radio chat without an inventory --- .../Source/Networking/GameServer.cs | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs index 02233f50c..226f34c46 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs @@ -1861,19 +1861,26 @@ namespace Barotrauma.Networking case ChatMessageType.Radio: if (!receiver.IsDead) { - var receiverItem = receiver.Inventory.Items.FirstOrDefault(i => i?.GetComponent() != null); - //client doesn't have a radio -> don't send - if (receiverItem == null) return ""; + if (receiver.Inventory != null) + { + var receiverItem = receiver.Inventory.Items.FirstOrDefault(i => i?.GetComponent() != null); + //client doesn't have a radio -> don't send + if (receiverItem == null) return ""; - var senderItem = sender.Inventory.Items.FirstOrDefault(i => i?.GetComponent() != null); - if (senderItem == null) return ""; + var senderItem = sender.Inventory.Items.FirstOrDefault(i => i?.GetComponent() != null); + if (senderItem == null) return ""; - var receiverRadio = receiverItem.GetComponent(); - var senderRadio = senderItem.GetComponent(); + var receiverRadio = receiverItem.GetComponent(); + var senderRadio = senderItem.GetComponent(); - if (!receiverRadio.CanReceive(senderRadio)) return ""; + if (!receiverRadio.CanReceive(senderRadio)) return ""; - return ChatMessage.ApplyDistanceEffect(receiverItem, senderItem, message, senderRadio.Range); + return ChatMessage.ApplyDistanceEffect(receiverItem, senderItem, message, senderRadio.Range); + } + else + { + return ChatMessage.ApplyDistanceEffect(receiver, sender, message, ChatMessage.SpeakRange, 3.0f); + } } break; }