From 440121514b3f6674e88b728a229a111d26ac86fc Mon Sep 17 00:00:00 2001 From: Chomp Date: Tue, 18 Feb 2025 09:31:20 +0000 Subject: [PATCH] Fix post-raid PMC messages not working after bot gen changes --- Libraries/Core/Controllers/BotController.cs | 9 +++++++++ Libraries/Core/Generators/BotGenerator.cs | 7 ------- Libraries/Core/Services/PmcChatResponseService.cs | 6 +++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Libraries/Core/Controllers/BotController.cs b/Libraries/Core/Controllers/BotController.cs index 8816d3f1..8d315b7c 100644 --- a/Libraries/Core/Controllers/BotController.cs +++ b/Libraries/Core/Controllers/BotController.cs @@ -315,6 +315,15 @@ public class BotController( // Store bot details in cache so post-raid PMC messages can use data _matchBotDetailsCacheService.CacheBot(botToCache); + + // The client expects the Side for PMCs to be `Savage` + // We do this here so it's after we cache the bot in the match details lookup, as when you die, they will have the right side + if (botToCache.Info.Side is "Bear" or "Usec") + { + botToCache.Info.Side = "Savage"; + } + + _botGenerationCacheService.StoreBots(cacheKey, [botToCache]); } private GetRaidConfigurationRequestData? GetMostRecentRaidSettings() diff --git a/Libraries/Core/Generators/BotGenerator.cs b/Libraries/Core/Generators/BotGenerator.cs index 5598f566..3c745362 100644 --- a/Libraries/Core/Generators/BotGenerator.cs +++ b/Libraries/Core/Generators/BotGenerator.cs @@ -133,13 +133,6 @@ public class BotGenerator( _logger.Error($"Unable to retrieve: {botRole} bot template, cannot generate bot of this type"); } - // The client expects the Side for PMCs to be Savage - if (botRole is "Bear" or "Usec") - { - // TODO: cleanup later - preparedBotBase.Info.Side = "Savage"; - } - return GenerateBot(sessionId, preparedBotBase, botJsonTemplateClone, botGenerationDetails); } diff --git a/Libraries/Core/Services/PmcChatResponseService.cs b/Libraries/Core/Services/PmcChatResponseService.cs index f12396f3..53ca98e6 100644 --- a/Libraries/Core/Services/PmcChatResponseService.cs +++ b/Libraries/Core/Services/PmcChatResponseService.cs @@ -101,6 +101,10 @@ public class PmcChatResponseService( return; } + // Because we've cached PMC sides as "Savage" for the client, we need to figure out + // what side it really is + var side = killerDetailsInCache.Info.Settings.Role == "pmcUSEC" ? "Usec" : "Bear"; + var killerDetails = new UserDialogInfo { Id = killerDetailsInCache.Id, @@ -108,7 +112,7 @@ public class PmcChatResponseService( Info = new UserDialogDetails { Nickname = killerDetailsInCache.Info.Nickname, - Side = killerDetailsInCache.Info.Side, + Side = side, Level = killerDetailsInCache.Info.Level, MemberCategory = killerDetailsInCache.Info.MemberCategory, SelectedMemberCategory = killerDetailsInCache.Info.SelectedMemberCategory