Changes to MailSendService
originally we had the trader id -> then used a method to get the EnumValue as a string -> then later turned it BACK into a traderId unless im missing something major this should simplify things? example: we took "6617beeaa9cfa777ca915b7c" and turned it to "Ref" to then turn it back to "6617beeaa9cfa777ca915b7c"
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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<string>()),
|
||||
curencyReward.SelectMany(x => x).ToList(),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -129,7 +129,7 @@ public class RagfairServerHelper(
|
||||
{
|
||||
mailSendService.SendLocalisedNpcMessageToPlayer(
|
||||
sessionID,
|
||||
traderHelper.GetTraderById(Traders.RAGMAN).ToString(),
|
||||
Traders.RAGMAN,
|
||||
MessageType.MESSAGE_WITH_ITEMS,
|
||||
goodsReturnedTemplate,
|
||||
returnedItems,
|
||||
|
||||
@@ -625,6 +625,7 @@ public class TraderHelper(
|
||||
/// </summary>
|
||||
/// <param name="traderEnumValue">The trader enum value to validate</param>
|
||||
/// <returns>The validated trader enum value as a string, or an empty string if invalid</returns>
|
||||
/// TODO: might not be needed
|
||||
public string GetValidTraderIdByEnumValue(string traderEnumValue)
|
||||
{
|
||||
var traderId = _databaseService.GetTraders();
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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}");
|
||||
|
||||
Reference in New Issue
Block a user