diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/AreYouABotMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/AreYouABotMessageHandler.cs index a225129b..e708429c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/AreYouABotMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/AreYouABotMessageHandler.cs @@ -21,7 +21,7 @@ public class AreYouABotMessageHandler( return message.ToLower() == "are you a bot"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/FishMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/FishMessageHandler.cs index 80f452d7..3e45d17c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/FishMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/FishMessageHandler.cs @@ -19,7 +19,7 @@ public class FishMessageHandler( return message.ToLower() == "fish"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceChristmasMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceChristmasMessageHandler.cs index 539b765b..527ca53b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceChristmasMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceChristmasMessageHandler.cs @@ -24,7 +24,7 @@ public class ForceChristmasMessageHandler( return message.ToLower() == "hohoho"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { var enableEventResult = _seasonalEventService.ForceSeasonalEvent(SeasonalEventType.Christmas); if (enableEventResult) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceHalloweenMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceHalloweenMessageHandler.cs index 17145bb1..8fc2ce3a 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceHalloweenMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceHalloweenMessageHandler.cs @@ -24,7 +24,7 @@ public class ForceHalloweenMessageHandler( return message.ToLower() == "veryspooky"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { var enableEventResult = _seasonalEventService.ForceSeasonalEvent(SeasonalEventType.Halloween); if (enableEventResult) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSnowMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSnowMessageHandler.cs index ad53a667..a33c137c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSnowMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSnowMessageHandler.cs @@ -28,7 +28,7 @@ public class ForceSnowMessageHandler( return message.ToLower() == "itsonlysnowalan"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _weatherConfig.OverrideSeason = Season.WINTER; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSummerMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSummerMessageHandler.cs index f0ada51f..85a3e89a 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSummerMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/ForceSummerMessageHandler.cs @@ -28,7 +28,7 @@ public class ForceSummerMessageHandler( return message.ToLower() == "givemesunshine"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _weatherConfig.OverrideSeason = Season.SUMMER; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GarbageMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GarbageMessageHandler.cs index 7990ac5e..f01d7232 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GarbageMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GarbageMessageHandler.cs @@ -21,7 +21,7 @@ public class GarbageMessageHandler( return message.ToLower() == "garbage"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { var beforeCollect = GC.GetTotalMemory(false) / 1024 / 1024; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GiveMeSpaceMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GiveMeSpaceMessageHandler.cs index ff8851ea..7143dd2c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GiveMeSpaceMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/GiveMeSpaceMessageHandler.cs @@ -28,7 +28,7 @@ public class GiveMeSpaceMessageHandler( return message.ToLower() == "givemespace"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { const string stashRowGiftId = "StashRows"; var maxGiftsToSendCount = _coreConfig.Features.ChatbotFeatures.CommandUseLimits[stashRowGiftId] ?? 5; diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/HelloMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/HelloMessageHandler.cs index dffb5338..3b7e7ec3 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/HelloMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/HelloMessageHandler.cs @@ -26,7 +26,7 @@ public class HelloMessageHandler( return _listOfGreetings.Contains(message, StringComparer.OrdinalIgnoreCase); } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/IChatMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/IChatMessageHandler.cs index 59e2fedb..e46f5c30 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/IChatMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/IChatMessageHandler.cs @@ -8,6 +8,6 @@ public interface IChatMessageHandler // Lower = More priority int GetPriority(); - public bool CanHandle(string message); - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender); + public bool CanHandle(string? message); + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null); } diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/LoveYouChatMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/LoveYouChatMessageHandler.cs index b90e39d5..f885b26e 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/LoveYouChatMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/LoveYouChatMessageHandler.cs @@ -22,7 +22,7 @@ public class LoveYouChatMessageHandler( return message.ToLower() == "love you"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/NikitaMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/NikitaMessageHandler.cs index 9e4676ed..23e13dad 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/NikitaMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/NikitaMessageHandler.cs @@ -21,7 +21,7 @@ public class NikitaMessageHandler( return message.ToLower() == "nikita"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SendGiftMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SendGiftMessageHandler.cs index ac92ee9d..06a73d96 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SendGiftMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SendGiftMessageHandler.cs @@ -6,6 +6,7 @@ using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; using SPTarkov.Common.Annotations; +using SPTarkov.Server.Core.Models.Eft.Dialog; namespace SPTarkov.Server.Core.Helpers.Dialogue.SPTFriend.Commands; @@ -17,7 +18,6 @@ public class SendGiftMessageHandler( ConfigServer _configServer) : IChatMessageHandler { private readonly CoreConfig _coreConfig = _configServer.GetConfig(); - private readonly string commandSent = string.Empty; public int GetPriority() { @@ -26,10 +26,10 @@ public class SendGiftMessageHandler( public bool CanHandle(string message) { - return _giftService.GiftExists(message.ToLower()); + return _giftService.GiftExists(message); } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender, object? extraInfo = null) { // Gifts may be disabled via config if (!_coreConfig.Features.ChatbotFeatures.SptFriendGiftsEnabled) @@ -37,7 +37,8 @@ public class SendGiftMessageHandler( return; } - var giftSent = _giftService.SendGiftToPlayer(sessionId, commandSent); + var messageTest = ((SendMessageRequest) extraInfo).Text; + var giftSent = _giftService.SendGiftToPlayer(sessionId, messageTest); switch (giftSent) { case GiftSentResult.SUCCESS: diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SptMessageHandler.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SptMessageHandler.cs index 6a3ddff9..d9285a9b 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SptMessageHandler.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SPTFriend/Commands/SptMessageHandler.cs @@ -21,7 +21,7 @@ public class SptMessageHandler( return message.ToLower() == "spt"; } - public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData sender) + public void Process(string sessionId, UserDialogInfo sptFriendUser, PmcData? sender, object? extraInfo = null) { _mailSendService.SendUserMessageToPlayer( sessionId, diff --git a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs index ff9892ce..3ae08f3c 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/Dialogue/SptDialogueChatBot.cs @@ -52,16 +52,18 @@ public class SptDialogueChatBot( return SendPlayerHelpMessage(sessionId, request); } + var handler = _chatMessageHandlers.FirstOrDefault(h => + { + return h.CanHandle(request.Text); + }); - var handler = _chatMessageHandlers.FirstOrDefault(v => v.CanHandle(request.Text)); if (handler is not null) { - handler.Process(sessionId, sptFriendUser, sender); + handler.Process(sessionId, sptFriendUser, sender, request); return request.DialogId; } - _mailSendService.SendUserMessageToPlayer( sessionId, GetChatBot(),