diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs index 99a92129..fee7ee02 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs @@ -595,7 +595,7 @@ public class InsuranceController( // Send the insurance message _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, - _traderHelper.GetTraderById(insurance.TraderId).ToString(), + insurance.TraderId, insurance.MessageType ?? MessageType.SYSTEM_MESSAGE, insurance.MessageTemplateId, insurance.Items, diff --git a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs index 26bec296..813e9da4 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs @@ -110,7 +110,7 @@ public class QuestController( // Send started text + any starting reward items found above to player _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - _traderHelper.GetTraderById(questFromDb.TraderId).ToString(), + questFromDb.TraderId, MessageType.QUEST_START, messageId, startedQuestRewardItems.ToList(), diff --git a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs index 3b7b9cd3..92060864 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs @@ -320,7 +320,7 @@ public class TradeController( // Send mail from trader _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, - _traderHelper.GetTraderById(trader).ToString(), + trader, MessageType.MESSAGE_WITH_ITEMS, _randomUtil.GetArrayValue(_databaseService.GetTrader(trader).Dialogue.TryGetValue("soldItems", out var items) ? items : new List()), curencyReward.SelectMany(x => x).ToList(), diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index 4a88b71d..981067b6 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -741,8 +741,7 @@ public class QuestHelper( { _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - _traderHelper.GetTraderById(quest?.TraderId ?? matchingRepeatableQuest?.TraderId) - .ToString(), // Can be undefined when repeatable quest has been moved to inactiveQuests + quest?.TraderId ?? matchingRepeatableQuest?.TraderId, MessageType.QUEST_FAIL, quest.FailMessageText, questRewards.ToList(), @@ -1379,7 +1378,7 @@ public class QuestHelper( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - _traderHelper.GetTraderById(quest.TraderId).ToString(), + quest.TraderId, MessageType.QUEST_SUCCESS, quest.SuccessMessageText, questRewards, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs index 0a99ca09..a01feb4b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs @@ -129,7 +129,7 @@ public class RagfairServerHelper( { mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - traderHelper.GetTraderById(Traders.RAGMAN).ToString(), + Traders.RAGMAN, MessageType.MESSAGE_WITH_ITEMS, goodsReturnedTemplate, returnedItems, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs index d8f487c6..e2a3917b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/TraderHelper.cs @@ -625,6 +625,7 @@ public class TraderHelper( /// /// The trader enum value to validate /// The validated trader enum value as a string, or an empty string if invalid + /// TODO: might not be needed public string GetValidTraderIdByEnumValue(string traderEnumValue) { var traderId = _databaseService.GetTraders(); diff --git a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs index 51602535..cfc1f994 100644 --- a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs @@ -110,7 +110,7 @@ public class InsuranceService( // Send "i will go look for your stuff" message from trader to player _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - traderEnum.ToString(), + traderKvP.Key, MessageType.NPC_TRADER, _randomUtil.GetArrayValue(dialogueTemplates["insuranceStart"] ?? ["INSURANCE START MESSAGE MISSING"]), null, diff --git a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs index 36341c46..240300f1 100644 --- a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs @@ -513,7 +513,7 @@ public class LocationLifecycleService // Send message from fence giving player reward generated above _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, - _traderHelper.GetValidTraderIdByEnumValue(Traders.FENCE), + Traders.FENCE, MessageType.MESSAGE_WITH_ITEMS, _randomUtil.GetArrayValue(_traderConfig.Fence.CoopExtractGift.MessageLocaleIds), mailableLoot, @@ -1137,7 +1137,7 @@ public class LocationLifecycleService // Send the items to the player _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, - _traderHelper.GetValidTraderIdByEnumValue(traderId), + traderId, MessageType.BTR_ITEMS_DELIVERY, messageId, items, diff --git a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs index 89b84f63..7adf447b 100644 --- a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs @@ -8,6 +8,7 @@ using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; using SPTarkov.Common.Annotations; +using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; namespace SPTarkov.Server.Core.Services; @@ -656,7 +657,12 @@ public class MailSendService( if (messageDetails.Sender == MessageType.NPC_TRADER || messageDetails.DialogType == MessageType.NPC_TRADER) { - return messageDetails.Trader is not null ? _traderHelper.GetValidTraderIdByEnumValue(messageDetails.Trader) : null; + if (messageDetails.Trader == null && _logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug($"Trader was null for {messageDetails.TemplateId}"); + } + + return messageDetails.Trader; } if (messageDetails.Sender == MessageType.USER_MESSAGE) @@ -671,7 +677,7 @@ public class MailSendService( if (messageDetails.Trader is not null) { - return _traderHelper.GetValidTraderIdByEnumValue(messageDetails.Trader); + return messageDetails.Trader; } _logger.Warning($"Unable to handle message of type: {messageDetails.Sender}");