Fixed up SptFriend not being able to process gifts

This commit is contained in:
CWX
2025-04-19 16:14:52 +01:00
parent 3cbfc348cd
commit d1ce58f693
15 changed files with 24 additions and 21 deletions
@@ -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,
@@ -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,
@@ -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)
@@ -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)
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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,
@@ -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);
}
@@ -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,
@@ -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,
@@ -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<CoreConfig>();
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:
@@ -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,
@@ -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(),