From c3740ed484144de8edb5acdc73cd0b900b833041 Mon Sep 17 00:00:00 2001 From: CWX Date: Sat, 25 Jan 2025 15:44:27 +0000 Subject: [PATCH 1/5] re-enable bot gen --- Libraries/Core/Controllers/BotController.cs | 30 ++++++++++----------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/Libraries/Core/Controllers/BotController.cs b/Libraries/Core/Controllers/BotController.cs index 1276aa73..866c795a 100644 --- a/Libraries/Core/Controllers/BotController.cs +++ b/Libraries/Core/Controllers/BotController.cs @@ -132,15 +132,13 @@ public class BotController( public List Generate(string sessionId, GenerateBotsRequestData info) { - // var pmcProfile = _profileHelper.GetPmcProfile(sessionId); - // - // // Use this opportunity to create and cache bots for later retrieval - // var multipleBotTypesRequested = info.Conditions?.Count > 1; - // return multipleBotTypesRequested - // ? GenerateMultipleBotsAndCache(info, pmcProfile, sessionId) - // : ReturnSingleBotFromCache(sessionId, info); - - return new List(); + var pmcProfile = _profileHelper.GetPmcProfile(sessionId); + + // Use this opportunity to create and cache bots for later retrieval + var multipleBotTypesRequested = info.Conditions?.Count > 1; + return multipleBotTypesRequested + ? GenerateMultipleBotsAndCache(info, pmcProfile, sessionId) + : ReturnSingleBotFromCache(sessionId, info); } private List GenerateMultipleBotsAndCache(GenerateBotsRequestData request, PmcData? pmcProfile, string sessionId) @@ -205,16 +203,16 @@ public class BotController( for (var i = 0; i < botsToGenerate; i++) { - try - { + // try + // { var detailsClone = _cloner.Clone(botGenerationDetails); GenerateSingleBotAndStoreInCache(detailsClone, sessionId, cacheKey); progressWriter.Increment(); - } - catch (Exception e) - { - _logger.Error($"Failed to generate bot #{i + 1}: {e.Message}"); - } + // } + // catch (Exception e) + // { + // _logger.Error($"Failed to generate bot #{i + 1}: {e.Message}"); + // } } _logger.Debug( From dc119a68ddf1cddf4333fa05c8c162804d1e3f9a Mon Sep 17 00:00:00 2001 From: CWX Date: Sat, 25 Jan 2025 15:44:41 +0000 Subject: [PATCH 2/5] allow raid configuration --- Libraries/Core/Callbacks/MatchCallbacks.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Libraries/Core/Callbacks/MatchCallbacks.cs b/Libraries/Core/Callbacks/MatchCallbacks.cs index b6913773..f547be19 100644 --- a/Libraries/Core/Callbacks/MatchCallbacks.cs +++ b/Libraries/Core/Callbacks/MatchCallbacks.cs @@ -303,6 +303,7 @@ public class MatchCallbacks( /// public string GetRaidConfiguration(string url, GetRaidConfigurationRequestData info, string sessionID) { + _matchController.ConfigureOfflineRaid(info, sessionID); return _httpResponseUtil.NullResponse(); } From 831ca48fbc77ecf882f745dad54045948ae85fe3 Mon Sep 17 00:00:00 2001 From: CWX Date: Sat, 25 Jan 2025 15:44:54 +0000 Subject: [PATCH 3/5] null guarding and formatting --- Libraries/Core/Services/BotEquipmentFilterService.cs | 6 +++--- Libraries/Core/Services/LocationLifecycleService.cs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Libraries/Core/Services/BotEquipmentFilterService.cs b/Libraries/Core/Services/BotEquipmentFilterService.cs index 8e075ee4..603d1309 100644 --- a/Libraries/Core/Services/BotEquipmentFilterService.cs +++ b/Libraries/Core/Services/BotEquipmentFilterService.cs @@ -122,8 +122,8 @@ public class BotEquipmentFilterService foreach (var itemKey in generationChanges) { - baseBotGeneration.Items.GetByJsonProp(itemKey.Key).Weights = generationChanges.GetByJsonProp(itemKey.Key).Weights; - baseBotGeneration.Items.GetByJsonProp(itemKey.Key).Whitelist = generationChanges.GetByJsonProp(itemKey.Key).Whitelist; + baseBotGeneration.Items.GetByJsonProp(itemKey.Key).Weights = generationChanges.GetValueOrDefault(itemKey.Key).Weights; + baseBotGeneration.Items.GetByJsonProp(itemKey.Key).Whitelist = generationChanges.GetValueOrDefault(itemKey.Key).Whitelist; } } @@ -476,7 +476,7 @@ public class BotEquipmentFilterService foreach (var itemToEditKvP in poolAdjustmentKvP.Value) { // Only make change if item exists as we're editing, not adding - if (locationToUpdate[itemToEditKvP.Key] != null || locationToUpdate[itemToEditKvP.Key] == 0) + if (locationToUpdate.GetValueOrDefault(itemToEditKvP.Key) != null || locationToUpdate.GetValueOrDefault(itemToEditKvP.Key) == 0) { locationToUpdate[itemToEditKvP.Key] = itemToEditKvP.Value; } diff --git a/Libraries/Core/Services/LocationLifecycleService.cs b/Libraries/Core/Services/LocationLifecycleService.cs index 6cef2d0e..efceb569 100644 --- a/Libraries/Core/Services/LocationLifecycleService.cs +++ b/Libraries/Core/Services/LocationLifecycleService.cs @@ -156,6 +156,7 @@ public class LocationLifecycleService var transitionData = _applicationContext .GetLatestValue(ContextVariableType.TRANSIT_INFO) ?.GetValue(); + if (transitionData is not null) { _logger.Success($"Player: {sessionId} is in transit to {request.Location}"); result.Transition.TransitionType = TransitionType.COMMON; From 04423082bd9836557f91879c89f77115421cca36 Mon Sep 17 00:00:00 2001 From: CWX Date: Sat, 25 Jan 2025 16:14:54 +0000 Subject: [PATCH 4/5] add pop function to List, fix accessing Dict --- Libraries/Core/Controllers/BotController.cs | 2 +- Libraries/Core/Services/BotGenerationCacheService.cs | 3 ++- SptCommon/Extensions/ListExtensions.cs | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Libraries/Core/Controllers/BotController.cs b/Libraries/Core/Controllers/BotController.cs index 866c795a..73484059 100644 --- a/Libraries/Core/Controllers/BotController.cs +++ b/Libraries/Core/Controllers/BotController.cs @@ -356,7 +356,7 @@ public class BotController( { var mapSpecificConversionValues = _pmcConfig.ConvertIntoPmcChance!.GetValueOrDefault(location?.ToLower(), null); return mapSpecificConversionValues is null - ? _pmcConfig.ConvertIntoPmcChance.GetByJsonProp>("default").GetByJsonProp(requestedBotRole) + ? _pmcConfig.ConvertIntoPmcChance.GetValueOrDefault("default")?.GetValueOrDefault(requestedBotRole) : mapSpecificConversionValues.GetByJsonProp(requestedBotRole?.ToLower()); } diff --git a/Libraries/Core/Services/BotGenerationCacheService.cs b/Libraries/Core/Services/BotGenerationCacheService.cs index 7dac2e7f..ec47911b 100644 --- a/Libraries/Core/Services/BotGenerationCacheService.cs +++ b/Libraries/Core/Services/BotGenerationCacheService.cs @@ -1,6 +1,7 @@ using SptCommon.Annotations; using Core.Models.Eft.Common.Tables; using Core.Models.Utils; +using SptCommon.Extensions; namespace Core.Services; @@ -43,7 +44,7 @@ public class BotGenerationCacheService( { try { - return _activeBotsInRaid.Dequeue(); + return bots.Pop(); } catch (Exception _) { diff --git a/SptCommon/Extensions/ListExtensions.cs b/SptCommon/Extensions/ListExtensions.cs index dea6bdd1..c5833bdc 100644 --- a/SptCommon/Extensions/ListExtensions.cs +++ b/SptCommon/Extensions/ListExtensions.cs @@ -8,4 +8,11 @@ public static class ListExtensions source.RemoveRange(index,count); return items; } + + public static T Pop(this List source) + { + T r = source.Last(); + source.Remove(source.Last()); + return r; + } } From 88df3e6651fa2976908748da9a5ed68aafbfca72 Mon Sep 17 00:00:00 2001 From: Chomp Date: Sat, 25 Jan 2025 16:49:35 +0000 Subject: [PATCH 5/5] Implemented GetValidOffers + lint --- Libraries/Core/Helpers/RagfairOfferHelper.cs | 75 ++++++++++++++++---- 1 file changed, 62 insertions(+), 13 deletions(-) diff --git a/Libraries/Core/Helpers/RagfairOfferHelper.cs b/Libraries/Core/Helpers/RagfairOfferHelper.cs index 9200177a..89d8fb15 100644 --- a/Libraries/Core/Helpers/RagfairOfferHelper.cs +++ b/Libraries/Core/Helpers/RagfairOfferHelper.cs @@ -46,7 +46,47 @@ public class RagfairOfferHelper( Dictionary traderAssorts, PmcData pmcData) { - throw new NotImplementedException(); + var playerIsFleaBanned = _profileHelper.PlayerIsFleaBanned(pmcData); + var tieredFlea = _ragfairConfig.TieredFlea; + var tieredFleaLimitTypes = tieredFlea.UnlocksType; + return _ragfairOfferService.GetOffers() + .Where( + offer => + { + if (!PassesSearchFilterCriteria(searchRequest, offer, pmcData)) + { + return false; + } + + var isDisplayable = IsDisplayableOffer( + searchRequest, + itemsToAdd, + traderAssorts, + offer, + pmcData, + playerIsFleaBanned + ); + + if (!isDisplayable) + { + return false; + } + + // Not trader offer + tiered flea enabled + if (tieredFlea.Enabled && !OfferIsFromTrader(offer)) + { + CheckAndLockOfferFromPlayerTieredFlea( + tieredFlea, + offer, + tieredFleaLimitTypes.Keys.ToList(), + pmcData.Info.Level.Value + ); + } + + return true; + } + ) + .ToList(); } /// @@ -114,19 +154,28 @@ public class RagfairOfferHelper( var requiredOffers = _ragfairRequiredItemsService.GetRequiredItemsById(searchRequest.NeededSearchId); var tieredFlea = _ragfairConfig.TieredFlea; var tieredFleaLimitTypes = tieredFlea.UnlocksType; - return requiredOffers.Where((offer) => { - if (!PassesSearchFilterCriteria(searchRequest, offer, pmcData)) - { - return false; - } + return requiredOffers.Where( + offer => + { + if (!PassesSearchFilterCriteria(searchRequest, offer, pmcData)) + { + return false; + } - if (tieredFlea.Enabled && !OfferIsFromTrader(offer)) - { - CheckAndLockOfferFromPlayerTieredFlea(tieredFlea, offer, tieredFleaLimitTypes.Keys.ToList(), pmcData.Info.Level.Value); - } + if (tieredFlea.Enabled && !OfferIsFromTrader(offer)) + { + CheckAndLockOfferFromPlayerTieredFlea( + tieredFlea, + offer, + tieredFleaLimitTypes.Keys.ToList(), + pmcData.Info.Level.Value + ); + } - return true; - }).ToList(); + return true; + } + ) + .ToList(); } /// @@ -624,7 +673,7 @@ public class RagfairOfferHelper( protected void DeleteOfferById(string sessionId, string offerId) { var profileRagfairInfo = _profileHelper.GetPmcProfile(sessionId).RagfairInfo; - var index = profileRagfairInfo.Offers.FindIndex((o) => o.Id == offerId); + var index = profileRagfairInfo.Offers.FindIndex(o => o.Id == offerId); profileRagfairInfo.Offers.Splice(index, 1); // Also delete from ragfair