From aef3a4202f88fd671be0c23534a873af3fe36da7 Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Wed, 21 May 2025 23:29:34 +0200 Subject: [PATCH] Fix presentation of messages with items (rewards & insurance returns) (#265) --- .../Controllers/DialogueController.cs | 6 ++-- .../Controllers/InsuranceController.cs | 2 +- .../Controllers/QuestController.cs | 2 +- .../Controllers/TradeController.cs | 2 +- .../Helpers/QuestHelper.cs | 4 +-- .../Helpers/RagfairOfferHelper.cs | 2 +- .../Helpers/RagfairServerHelper.cs | 2 +- .../Models/Enums/MessageType.cs | 30 +++++++++---------- .../Services/CreateProfileService.cs | 2 +- .../Services/GiftService.cs | 10 +++---- .../Services/InsuranceService.cs | 4 +-- .../Services/LocationLifecycleService.cs | 4 +-- .../Services/MailSendService.cs | 26 ++++++++-------- .../Services/PmcChatResponseService.cs | 4 +-- 14 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs index a2e288a2..0227f2f6 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/DialogueController.cs @@ -147,7 +147,7 @@ public class DialogueController( var result = new DialogueInfo { Id = dialogueId, - Type = dialogue?.Type ?? MessageType.NPC_TRADER, + Type = dialogue?.Type ?? MessageType.NpcTraderMessage, Message = _dialogueHelper.GetMessagePreview(dialogue), New = dialogue?.New, AttachmentsNew = dialogue?.AttachmentsNew, @@ -173,7 +173,7 @@ public class DialogueController( var profile = _saveServer.GetProfile(sessionId); // User to user messages are special in that they need the player to exist in them, add if they don't - if (messageType == MessageType.USER_MESSAGE && + if (messageType == MessageType.UserMessage && dialog?.Users is not null && dialog.Users.All(userDialog => userDialog.Id != profile.CharacterData?.PmcData?.SessionId)) { @@ -253,7 +253,7 @@ public class DialogueController( Type = request.Type }; - if (request.Type != MessageType.USER_MESSAGE) + if (request.Type != MessageType.UserMessage) { return profile.DialogueRecords[request.DialogId!]; } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs index 3039c635..c6040c5b 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/InsuranceController.cs @@ -599,7 +599,7 @@ public class InsuranceController( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, insurance.TraderId, - insurance.MessageType ?? MessageType.SYSTEM_MESSAGE, + insurance.MessageType ?? MessageType.SystemMessage, insurance.MessageTemplateId, insurance.Items, insurance.MaxStorageTime, diff --git a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs index b0e35598..4e75622d 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/QuestController.cs @@ -111,7 +111,7 @@ public class QuestController( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, questFromDb.TraderId, - MessageType.QUEST_START, + MessageType.QuestStart, messageId, startedQuestRewardItems.ToList(), _timeUtil.GetHoursAsSeconds((int) _questHelper.GetMailItemRedeemTimeHoursForProfile(pmcData)) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs index e1a3c239..74ada9fd 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs @@ -321,7 +321,7 @@ public class TradeController( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, trader, - MessageType.MESSAGE_WITH_ITEMS, + MessageType.MessageWithItems, _randomUtil.GetArrayValue(_databaseService.GetTrader(trader).Dialogue.TryGetValue("soldItems", out var items) ? items : new List()), curencyReward.SelectMany(x => x).ToList(), _timeUtil.GetHoursAsSeconds(72) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index be843f81..3ead1cc2 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -736,7 +736,7 @@ public class QuestHelper( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, quest?.TraderId ?? matchingRepeatableQuest?.TraderId, - MessageType.QUEST_FAIL, + MessageType.QuestFail, quest.FailMessageText, questRewards.ToList(), _timeUtil.GetHoursAsSeconds((int) GetMailItemRedeemTimeHoursForProfile(pmcData)) @@ -1367,7 +1367,7 @@ public class QuestHelper( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, quest.TraderId, - MessageType.QUEST_SUCCESS, + MessageType.QuestSuccess, quest.SuccessMessageText, questRewards, _timeUtil.GetHoursAsSeconds((int) GetMailItemRedeemTimeHoursForProfile(pmcData)) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs index d436e67c..f831ecaa 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairOfferHelper.cs @@ -793,7 +793,7 @@ public class RagfairOfferHelper( _mailSendService.SendDirectNpcMessageToPlayer( offerOwnerSessionId, Traders.RAGMAN, - MessageType.FLEAMARKET_MESSAGE, + MessageType.FleamarketMessage, GetLocalisedOfferSoldMessage(itemTpl, boughtAmount), paymentItemsToSendToPlayer, storagetime, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs index 0224c6f8..7f8b98b5 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RagfairServerHelper.cs @@ -130,7 +130,7 @@ public class RagfairServerHelper( mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, Traders.RAGMAN, - MessageType.MESSAGE_WITH_ITEMS, + MessageType.MessageWithItems, goodsReturnedTemplate, returnedItems, timeUtil.GetHoursAsSeconds((int) databaseService.GetGlobals().Configuration.RagFair.YourOfferDidNotSellMaxStorageTimeInHour) diff --git a/Libraries/SPTarkov.Server.Core/Models/Enums/MessageType.cs b/Libraries/SPTarkov.Server.Core/Models/Enums/MessageType.cs index 4fa29464..607a63f8 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Enums/MessageType.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Enums/MessageType.cs @@ -2,19 +2,19 @@ public enum MessageType { - USER_MESSAGE = 1, - NPC_TRADER = 2, - AUCTION_MESSAGE = 3, - FLEAMARKET_MESSAGE = 4, - ADMIN_MESSAGE = 5, - GROUP_CHAT_MESSAGE = 6, - SYSTEM_MESSAGE = 7, - INSURANCE_RETURN = 8, - GLOBAL_CHAT = 9, - QUEST_START = 10, - QUEST_FAIL = 11, - QUEST_SUCCESS = 12, - MESSAGE_WITH_ITEMS = 13, - INITIAL_SUPPORT = 14, - BTR_ITEMS_DELIVERY = 15 + UserMessage = 1, + NpcTraderMessage = 2, + AuctionMessage = 3, + FleamarketMessage = 4, + AdminMessage = 5, + GroupChatMessage = 6, + SystemMessage = 7, + InsuranceReturn = 8, + GlobalChat = 9, + QuestStart = 10, + QuestFail = 11, + QuestSuccess = 12, + MessageWithItems = 13, + InitialSupport = 14, + BtrItemsDelivery = 15, } diff --git a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs index ffd3279c..941fbc23 100644 --- a/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/CreateProfileService.cs @@ -524,7 +524,7 @@ public class CreateProfileService( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, questFromDb.TraderId, - MessageType.QUEST_START, + MessageType.QuestStart, messageId, itemRewards, _timeUtil.GetHoursAsSeconds(100) diff --git a/Libraries/SPTarkov.Server.Core/Services/GiftService.cs b/Libraries/SPTarkov.Server.Core/Services/GiftService.cs index 9a4dac79..0e36969b 100644 --- a/Libraries/SPTarkov.Server.Core/Services/GiftService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/GiftService.cs @@ -132,7 +132,7 @@ public class GiftService( _mailSendService.SendLocalisedNpcMessageToPlayer( playerId, giftData.Trader, - MessageType.MESSAGE_WITH_ITEMS, + MessageType.MessageWithItems, giftData.LocaleTextId, giftData.Items, _timeUtil.GetHoursAsSeconds(giftData.CollectionTimeHours ?? 1) @@ -143,7 +143,7 @@ public class GiftService( _mailSendService.SendLocalisedNpcMessageToPlayer( playerId, giftData.Trader, - MessageType.MESSAGE_WITH_ITEMS, + MessageType.MessageWithItems, giftData.MessageText, giftData.Items, _timeUtil.GetHoursAsSeconds(giftData.CollectionTimeHours ?? 1) @@ -212,11 +212,11 @@ public class GiftService( switch (giftData.Sender) { case GiftSenderType.System: - return MessageType.SYSTEM_MESSAGE; + return MessageType.SystemMessage; case GiftSenderType.Trader: - return MessageType.NPC_TRADER; + return MessageType.NpcTraderMessage; case GiftSenderType.User: - return MessageType.USER_MESSAGE; + return MessageType.UserMessage; default: _logger.Error(_localisationService.GetText("gift-unable_to_handle_message_type_command", giftData.Sender)); return null; diff --git a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs index aaef1219..b4f3b44a 100644 --- a/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/InsuranceService.cs @@ -103,7 +103,7 @@ public class InsuranceService( _mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, traderKvP.Key, - MessageType.NPC_TRADER, + MessageType.NpcTraderMessage, _randomUtil.GetArrayValue(dialogueTemplates["insuranceStart"] ?? ["INSURANCE START MESSAGE MISSING"]), null, _timeUtil.GetHoursAsSeconds((int) globals.Configuration?.Insurance?.MaxStorageTimeInHour), @@ -120,7 +120,7 @@ public class InsuranceService( TraderId = traderKvP.Key, MaxStorageTime = (int) GetMaxInsuranceStorageTime(traderBase), SystemData = systemData, - MessageType = MessageType.INSURANCE_RETURN, + MessageType = MessageType.InsuranceReturn, MessageTemplateId = _randomUtil.GetArrayValue(dialogueTemplates["insuranceFound"]), Items = GetInsurance(sessionID)[traderKvP.Key] } diff --git a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs index c0f61f30..8309824d 100644 --- a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs @@ -516,7 +516,7 @@ public class LocationLifecycleService _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, Traders.FENCE, - MessageType.MESSAGE_WITH_ITEMS, + MessageType.MessageWithItems, _randomUtil.GetArrayValue(_traderConfig.Fence.CoopExtractGift.MessageLocaleIds), mailableLoot, _timeUtil.GetHoursAsSeconds(_traderConfig.Fence.CoopExtractGift.GiftExpiryHours) @@ -1134,7 +1134,7 @@ public class LocationLifecycleService _mailSendService.SendLocalisedNpcMessageToPlayer( sessionId, traderId, - MessageType.BTR_ITEMS_DELIVERY, + MessageType.BtrItemsDelivery, messageId, items, messageStoreTime diff --git a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs index 83c2e50f..ebcd71f8 100644 --- a/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/MailSendService.cs @@ -29,7 +29,7 @@ public class MailSendService( ) { private const string _systemSenderId = "59e7125688a45068a6249071"; - protected HashSet _messageTypes = [MessageType.NPC_TRADER, MessageType.FLEAMARKET_MESSAGE]; + protected HashSet _messageTypes = [MessageType.NpcTraderMessage, MessageType.FleamarketMessage]; protected HashSet _slotNames = ["hideout", "main"]; /// @@ -74,7 +74,7 @@ public class MailSendService( { RecipientId = sessionId, Sender = messageType, - DialogType = MessageType.NPC_TRADER, + DialogType = MessageType.NpcTraderMessage, Trader = trader, MessageText = message, Items = [] @@ -142,7 +142,7 @@ public class MailSendService( { RecipientId = sessionId, Sender = messageType, - DialogType = MessageType.NPC_TRADER, + DialogType = MessageType.NpcTraderMessage, Trader = trader, TemplateId = messageLocaleId, Items = new List() @@ -194,7 +194,7 @@ public class MailSendService( SendMessageDetails details = new() { RecipientId = sessionId, - Sender = MessageType.SYSTEM_MESSAGE, + Sender = MessageType.SystemMessage, MessageText = message, Items = new List() }; @@ -235,7 +235,7 @@ public class MailSendService( SendMessageDetails details = new() { RecipientId = sessionId, - Sender = MessageType.SYSTEM_MESSAGE, + Sender = MessageType.SystemMessage, TemplateId = messageLocaleId, Items = new List() }; @@ -274,7 +274,7 @@ public class MailSendService( SendMessageDetails details = new() { RecipientId = sessionId, - Sender = MessageType.USER_MESSAGE, + Sender = MessageType.UserMessage, SenderDetails = senderDetails, MessageText = message, Items = new List() @@ -329,7 +329,7 @@ public class MailSendService( // TODO: clean up old code here // Offer Sold notifications are now separate from the main notification - if (_messageTypes.Contains(senderDialog.Type ?? MessageType.SYSTEM_MESSAGE) && + if (_messageTypes.Contains(senderDialog.Type ?? MessageType.SystemMessage) && messageDetails?.RagfairDetails is not null ) { @@ -338,7 +338,7 @@ public class MailSendService( messageDetails.RagfairDetails ); _notificationSendHelper.SendMessage(messageDetails.RecipientId, offerSoldMessage); - message.MessageType = MessageType.MESSAGE_WITH_ITEMS; // Should prevent getting the same notification popup twice + message.MessageType = MessageType.MessageWithItems; // Should prevent getting the same notification popup twice } // Send message off to player so they get it in client @@ -369,7 +369,7 @@ public class MailSendService( DateTime = _timeUtil.GetTimeStamp(), HasRewards = false, UserId = playerProfile.CharacterData.PmcData.Id, - MessageType = MessageType.USER_MESSAGE, + MessageType = MessageType.UserMessage, RewardCollected = false, Text = message } @@ -388,7 +388,7 @@ public class MailSendService( { Id = _hashUtil.Generate(), UserId = dialogId, - MessageType = messageDetails.DialogType, + MessageType = messageDetails.Sender, DateTime = _timeUtil.GetTimeStamp(), Text = messageDetails.TemplateId is not null ? "" : messageDetails.MessageText, TemplateId = messageDetails.TemplateId, @@ -651,12 +651,12 @@ public class MailSendService( /// Gets an id of the individual sending it private string? GetMessageSenderIdByType(SendMessageDetails messageDetails) { - if (messageDetails.Sender == MessageType.SYSTEM_MESSAGE) + if (messageDetails.Sender == MessageType.SystemMessage) { return _systemSenderId; } - if (messageDetails.Sender == MessageType.NPC_TRADER || messageDetails.DialogType == MessageType.NPC_TRADER) + if (messageDetails.Sender == MessageType.NpcTraderMessage || messageDetails.DialogType == MessageType.NpcTraderMessage) { if (messageDetails.Trader == null && _logger.IsLogEnabled(LogLevel.Debug)) { @@ -666,7 +666,7 @@ public class MailSendService( return messageDetails.Trader; } - if (messageDetails.Sender == MessageType.USER_MESSAGE) + if (messageDetails.Sender == MessageType.UserMessage) { return messageDetails.SenderDetails?.Id; } diff --git a/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs b/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs index 42027712..e0675846 100644 --- a/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/PmcChatResponseService.cs @@ -59,7 +59,7 @@ public class PmcChatResponseService( sessionId, victimDetails, message, - MessageType.USER_MESSAGE + MessageType.UserMessage ); } } @@ -113,7 +113,7 @@ public class PmcChatResponseService( return; } - _notificationSendHelper.SendMessageToPlayer(sessionId, killerDetails, message, MessageType.USER_MESSAGE); + _notificationSendHelper.SendMessageToPlayer(sessionId, killerDetails, message, MessageType.UserMessage); } ///