From cc0968cb3294b06fa3bd40e7372ab77deafcf2b0 Mon Sep 17 00:00:00 2001 From: CWX Date: Tue, 28 Jan 2025 20:41:00 +0000 Subject: [PATCH] add logger check wrapping debug logs --- .../Core/Controllers/DialogueController.cs | 15 +++-- Libraries/Core/Controllers/GameController.cs | 16 +++++- .../Core/Controllers/HealthController.cs | 30 +++++++--- .../Core/Controllers/InsuranceController.cs | 36 +++++++++--- .../Core/Controllers/InventoryController.cs | 56 ++++++++++++++++--- .../Core/Controllers/LauncherV2Controller.cs | 2 + .../Core/Controllers/LocationController.cs | 2 + Libraries/Core/Controllers/QuestController.cs | 2 + .../Core/Controllers/RagfairController.cs | 17 ++++-- .../Controllers/RepeatableQuestController.cs | 43 +++++++++----- Libraries/Core/Controllers/TradeController.cs | 15 +++-- .../Core/Controllers/TraderController.cs | 4 ++ 12 files changed, 186 insertions(+), 52 deletions(-) diff --git a/Libraries/Core/Controllers/DialogueController.cs b/Libraries/Core/Controllers/DialogueController.cs index bcd68f74..f6b28790 100644 --- a/Libraries/Core/Controllers/DialogueController.cs +++ b/Libraries/Core/Controllers/DialogueController.cs @@ -253,14 +253,18 @@ public class DialogueController( }; if (request.Type != MessageType.USER_MESSAGE) + { return profile.DialogueRecords[request.DialogId!]; + } var dialogue = profile.DialogueRecords[request.DialogId!]; dialogue.Users = []; var chatBot = _dialogueChatBots.FirstOrDefault(cb => cb.GetChatBot().Id == request.DialogId); if (chatBot is null) + { return profile.DialogueRecords[request.DialogId!]; + } dialogue.Users ??= []; dialogue.Users.Add(chatBot.GetChatBot()); @@ -286,7 +290,9 @@ public class DialogueController( result.AddRange(userDialogs); if (result.Any(userDialog => userDialog.Id == fullProfile.ProfileInfo?.ProfileId)) + { return result; + } // Player doesn't exist, add them in before returning var pmcProfile = fullProfile.CharacterData?.PmcData; @@ -492,10 +498,11 @@ public class DialogueController( { _mailSendService.SendPlayerMessageToNpc(sessionId, request.DialogId!, request.Text!); - return (_dialogueChatBots.FirstOrDefault(cb => cb.GetChatBot().Id == request.DialogId) - ?.HandleMessage(sessionId, request) ?? - request.DialogId) ?? - string.Empty; + return (_dialogueChatBots.FirstOrDefault(cb => + cb.GetChatBot().Id == request.DialogId) + ?.HandleMessage(sessionId, request) + ?? request.DialogId) + ?? string.Empty; } /// diff --git a/Libraries/Core/Controllers/GameController.cs b/Libraries/Core/Controllers/GameController.cs index c714abe1..3c28ce4c 100644 --- a/Libraries/Core/Controllers/GameController.cs +++ b/Libraries/Core/Controllers/GameController.cs @@ -88,24 +88,34 @@ public class GameController( fullProfile.FriendProfileIds ??= []; if (fullProfile.ProfileInfo?.IsWiped is not null && fullProfile.ProfileInfo.IsWiped.Value) + { return; + } fullProfile.CharacterData!.PmcData!.WishList ??= new DictionaryOrList(new Dictionary(), []); fullProfile.CharacterData.ScavData!.WishList ??= new DictionaryOrList(new Dictionary(), []); if (fullProfile.DialogueRecords is not null) + { _profileFixerService.CheckForAndFixDialogueAttachments(fullProfile); + } if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Started game with session {sessionId} {fullProfile.ProfileInfo?.Username}"); + } var pmcProfile = fullProfile.CharacterData.PmcData; if (_coreConfig.Fixes.FixProfileBreakingInventoryItemIssues) + { _profileFixerService.FixProfileBreakingInventoryItemIssues(pmcProfile); + } if (pmcProfile.Health is not null) + { UpdateProfileHealthValues(pmcProfile); + } if (pmcProfile.Inventory is not null) { @@ -134,7 +144,9 @@ public class GameController( } if (pmcProfile.Skills?.Common is not null) + { WarnOnActiveBotReloadSkill(pmcProfile); + } _seasonalEventService.GivePlayerSeasonalGifts(sessionId); } @@ -317,9 +329,11 @@ public class GameController( energyRegenPerHour += pmcProfile.Bonuses! .Where(bonus => bonus.Type == BonusType.EnergyRegeneration) .Aggregate(0d, (sum, bonus) => sum + (bonus.Value!.Value)); + hydrationRegenPerHour += pmcProfile.Bonuses! .Where(bonus => bonus.Type == BonusType.HydrationRegeneration) .Aggregate(0d, (sum, bonus) => sum + (bonus.Value!.Value)); + hpRegenPerHour += pmcProfile.Bonuses! .Where(bonus => bonus.Type == BonusType.HealthRegeneration) .Aggregate(0d, (sum, bonus) => sum + (bonus.Value!.Value)); @@ -439,7 +453,7 @@ public class GameController( // Get active mods _logger.Error("NOT IMPLEMENTED - _preSptModLoader SaveActiveModsToProfile()"); - //var activeMods = _preSptModLoader.GetImportedModDetails(); // TODO IMPLEMENT _preSptModLoader + //var activeMods = _preSptModLoader.GetImportedModDetails(); // TODO: IMPLEMENT _preSptModLoader // var activeMods = new Dictionary(); // foreach (var modKvP in activeMods) // { diff --git a/Libraries/Core/Controllers/HealthController.cs b/Libraries/Core/Controllers/HealthController.cs index 573ea2fa..d791402e 100644 --- a/Libraries/Core/Controllers/HealthController.cs +++ b/Libraries/Core/Controllers/HealthController.cs @@ -44,7 +44,8 @@ public class HealthController( // Update medkit used (hpresource) var healingItemToUse = pmcData.Inventory.Items.FirstOrDefault(item => item.Id == request.Item); - if (healingItemToUse is null) { + if (healingItemToUse is null) + { var errorMessage = _localisationService.GetText("health-healing_item_not_found", request.Item); _logger.Error(errorMessage); @@ -54,9 +55,12 @@ public class HealthController( // Ensure item has a upd object _itemHelper.AddUpdObjectToItem(healingItemToUse); - if (healingItemToUse.Upd.MedKit is not null) { + if (healingItemToUse.Upd.MedKit is not null) + { healingItemToUse.Upd.MedKit.HpResource -= request.Count; - } else { + } + else + { // Get max healing from db var maxhp = _itemHelper.GetItem(healingItemToUse.Template).Value.Properties.MaxHpResource; healingItemToUse.Upd.MedKit = new UpdMedKit { HpResource = maxhp - request.Count }; // Subtract amout used from max @@ -65,7 +69,8 @@ public class HealthController( } // Resource in medkit is spent, delete it - if (healingItemToUse.Upd.MedKit.HpResource <= 0) { + if (healingItemToUse.Upd.MedKit.HpResource <= 0) + { _inventoryHelper.RemoveItem(pmcData, request.Item, sessionID, output); } @@ -73,7 +78,8 @@ public class HealthController( var healItemEffectDetails = healingItemDbDetails.Value.Properties.EffectsDamage; BodyPartHealth bodyPartToHeal = pmcData.Health.BodyParts.GetValueOrDefault(request.Part.ToString()); - if (bodyPartToHeal is null) { + if (bodyPartToHeal is null) + { _logger.Warning($"Player: {sessionID} Tried to heal a non-existent body part: {request.Part}"); return output; @@ -84,13 +90,16 @@ public class HealthController( // Check if healing item removes negative effects var itemRemovesEffects = healingItemDbDetails.Value.Properties.EffectsDamage.Count > 0; - if (itemRemovesEffects && bodyPartToHeal.Effects is not null) { + if (itemRemovesEffects && bodyPartToHeal.Effects is not null) + { // Can remove effects and limb has effects to remove var effectsOnBodyPart = bodyPartToHeal.Effects.Keys; - foreach (var effectKey in effectsOnBodyPart) { + foreach (var effectKey in effectsOnBodyPart) + { // Check if healing item removes the effect on limb var matchingEffectFromHealingItem = healItemEffectDetails.GetValueOrDefault(effectKey); - if (matchingEffectFromHealingItem is null) { + if (matchingEffectFromHealingItem is null) + { // Healing item doesnt have matching effect, it doesnt remove the effect continue; } @@ -105,7 +114,8 @@ public class HealthController( bodyPartToHeal.Health.Current += amountToHealLimb; // Ensure we've not healed beyond the limbs max hp - if (bodyPartToHeal.Health.Current > bodyPartToHeal.Health.Maximum) { + if (bodyPartToHeal.Health.Current > bodyPartToHeal.Health.Maximum) + { bodyPartToHeal.Health.Current = bodyPartToHeal.Health.Maximum; } @@ -262,7 +272,9 @@ public class HealthController( { // Found some, loop over them and remove from pmc profile foreach (var effect in partRequest.Effects) + { pmcData.Health.BodyParts[bodyPartKvP.Key].Effects.Remove(effect); + } // Remove empty effect object if (pmcData.Health.BodyParts[bodyPartKvP.Key].Effects.Count == 0) diff --git a/Libraries/Core/Controllers/InsuranceController.cs b/Libraries/Core/Controllers/InsuranceController.cs index 8b17bd54..45f2e583 100644 --- a/Libraries/Core/Controllers/InsuranceController.cs +++ b/Libraries/Core/Controllers/InsuranceController.cs @@ -88,7 +88,9 @@ public class InsuranceController( if (profileInsuranceDetails.Count > 0) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Found {profileInsuranceDetails.Count} insurance packages in profile {sessionId}"); + } } return profileInsuranceDetails.Where(insured => insuranceTime >= insured.ScheduledTime).ToList(); @@ -104,9 +106,11 @@ public class InsuranceController( protected void ProcessInsuredItems(List insuranceDetails, string sessionId) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug( $"Processing {insuranceDetails.Count} insurance packages, which includes a total of: {CountAllInsuranceItems(insuranceDetails)} items, in profile: {sessionId}" ); + } // Iterate over each of the insurance packages. foreach (var insured in insuranceDetails) @@ -167,7 +171,9 @@ public class InsuranceController( .ToList(); if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Removed processed insurance package. Remaining packages: {profile.InsuranceList.Count}"); + } } /** @@ -211,7 +217,9 @@ public class InsuranceController( if (!toDelete.Any()) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Marked {toDelete.Count} items for deletion from insurance."); + } } return toDelete; @@ -300,8 +308,6 @@ public class InsuranceController( { parent.Add(insuredItem); } - - ; } else { @@ -436,7 +442,9 @@ public class InsuranceController( itemsMap.TryGetValue(parentObj.Key, out var parentItem); var parentName = _itemHelper.GetItemName(parentItem.Template); if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Processing attachments of parent {parentName}"); + } // Process the attachments for this individual parent item. ProcessAttachmentByParent(parentObj.Value, insuredTraderId, toDelete); @@ -481,7 +489,9 @@ public class InsuranceController( LogAttachmentsBeingRemoved(attachmentIdsToRemove, attachments, weightedAttachmentByPrice); if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Number of attachments to be deleted: {attachmentIdsToRemove.Count}"); + } } private void LogAttachmentsBeingRemoved(List attachmentIdsToRemove, List attachments, Dictionary attachmentPrices) @@ -489,10 +499,13 @@ public class InsuranceController( var index = 1; foreach (var attachmentId in attachmentIdsToRemove) { - _logger.Debug( - $"Attachment {index} Id: {attachmentId} Tpl: {attachments.FirstOrDefault((x) => x.Id == attachmentId)?.Template} - " + - $"Price: {attachmentPrices[attachmentId]}" - ); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug( + $"Attachment {index} Id: {attachmentId} Tpl: {attachments.FirstOrDefault((x) => x.Id == attachmentId)?.Template} - " + + $"Price: {attachmentPrices[attachmentId]}" + ); + } index++; } } @@ -579,8 +592,8 @@ public class InsuranceController( private bool IsMapLabsAndInsuranceDisabled(Insurance insurance, string labsId = "laboratory") { - return ( - insurance.SystemData?.Location?.ToLower() == labsId && !(_databaseService.GetLocation(labsId)?.Base?.Insurance.GetValueOrDefault(false) ?? false) + return (insurance.SystemData?.Location?.ToLower() == labsId + && !(_databaseService.GetLocation(labsId)?.Base?.Insurance.GetValueOrDefault(false) ?? false) ); } @@ -621,7 +634,9 @@ public class InsuranceController( var itemName = insuredItem is not null ? $"{_itemHelper.GetItemName(insuredItem.Template)}" : ""; var status = roll ? "Delete" : "Keep"; if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Rolling {itemName} with {trader} - Return {traderReturnChance}% - Roll: {returnChance} - Status: {status}"); + } return roll; } @@ -712,7 +727,10 @@ public class InsuranceController( foreach (var softInsertSlot in softInsertSlots) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"SoftInsertSlots: {softInsertSlot.SlotId}"); + } + pmcData.InsuredItems.Add(new InsuredItem { TId = body.TransactionId, ItemId = softInsertSlot.Id }); } } @@ -744,7 +762,9 @@ public class InsuranceController( if (!inventoryItemsHash.ContainsKey(itemId)) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Item with id: {itemId} missing from player inventory, skipping"); + } continue; } diff --git a/Libraries/Core/Controllers/InventoryController.cs b/Libraries/Core/Controllers/InventoryController.cs index 47567c7c..af4c5e5d 100644 --- a/Libraries/Core/Controllers/InventoryController.cs +++ b/Libraries/Core/Controllers/InventoryController.cs @@ -83,7 +83,9 @@ public class InventoryController( // Item is moving into or out of place of fame dog tag slot if (moveRequest.To?.Container != null && (moveRequest.To.Container.StartsWith("dogtag") || originalLocationSlotId.StartsWith("dogtag"))) + { _hideoutHelper.ApplyPlaceOfFameDogtagBonus(pmcData); + } } else { @@ -345,16 +347,23 @@ public class InventoryController( inventoryItem.ParentId = change.ParentId; inventoryItem.SlotId = change.SlotId; if (change.Location is not null) + { inventoryItem.Location = change.Location; + } else + { inventoryItem.Location = null; + } } } public ItemEventRouterResponse ReadEncyclopedia(PmcData pmcData, InventoryReadEncyclopediaRequestData body, string sessionId) { - foreach (var id in body.Ids) pmcData.Encyclopedia[id] = true; + foreach (var id in body.Ids) + { + pmcData.Encyclopedia[id] = true; + } return _eventOutputHolder.GetOutput(sessionId); } @@ -406,22 +415,29 @@ public class InventoryController( if (_presetHelper.IsPreset(request.Item)) return _presetHelper.GetBaseItemTpl(request.Item); if (request.FromOwner.Id == Traders.FENCE) + { // Get tpl from fence assorts return _fenceService.GetRawFenceAssorts().Items.FirstOrDefault(x => x.Id == request.Item)?.Template; + } if (request.FromOwner.Type == "Trader") + { // Not fence // get tpl from trader assort return _databaseService .GetTrader(request.FromOwner.Id) .Assort.Items.FirstOrDefault(item => item.Id == request.Item) ?.Template; + } if (request.FromOwner.Type == "RagFair") { // Try to get tplId from items.json first var item = _itemHelper.GetItem(request.Item); - if (item.Key) return item.Value.Id; + if (item.Key) + { + return item.Value.Id; + } // Try alternate way of getting offer if first approach fails var offer = _ragfairOfferService.GetOfferByOfferId(request.Item) ?? @@ -429,7 +445,10 @@ public class InventoryController( // Try find examine item inside offer items array var matchingItem = offer.Items.FirstOrDefault(offerItem => offerItem.Id == request.Item); - if (matchingItem is not null) return matchingItem.Template; + if (matchingItem is not null) + { + return matchingItem.Template; + } // Unable to find item in database or ragfair _logger.Warning(_localisationService.GetText("inventory-unable_to_find_item", request.Item)); @@ -476,8 +495,7 @@ public class InventoryController( public void BindItem(PmcData pmcData, InventoryBindRequestData bindRequest, string sessionId, ItemEventRouterResponse output) { - foreach (var kvp in pmcData.Inventory.FastPanel - .Where(kvp => kvp.Value == bindRequest.Index)) + foreach (var kvp in pmcData.Inventory.FastPanel.Where(kvp => kvp.Value == bindRequest.Index)) { pmcData.Inventory.FastPanel.Remove(kvp.Key); @@ -542,7 +560,9 @@ public class InventoryController( // We may be folding data on scav profile, get that profile instead if (request.FromOwner?.Type == "Profile" && request.FromOwner.Id != playerData.Id) + { playerData = _profileHelper.GetScavProfile(sessionId); + } var itemToFold = playerData.Inventory.Items.FirstOrDefault(item => item?.Id == request.Item); if (itemToFold is null) @@ -573,7 +593,9 @@ public class InventoryController( // During post-raid scav transfer, the swap may be in the scav inventory var playerData = pmcData; if (request.FromOwner?.Type == "Profile" && request.FromOwner.Id != playerData.Id) + { playerData = _profileHelper.GetScavProfile(sessionId); + } var itemOne = playerData.Inventory.Items.FirstOrDefault(x => x.Id == request.Item); if (itemOne is null) @@ -609,17 +631,24 @@ public class InventoryController( // Request object has location data, add it in, otherwise remove existing location from object if (request.To.Location is not null) + { itemOne.Location = request.To.Location; + } else - // biome-ignore lint/performance/noDelete: Delete is fine here as we entirely want to get rid of the location. + { itemOne.Location = null; + } itemTwo.ParentId = request.To2.Id; itemTwo.SlotId = request.To2.Container; if (request.To2.Location is not null) + { itemTwo.Location = request.To2.Location; + } else + { itemTwo.Location = null; + } // Client already informed of inventory locations, nothing for us to do return _eventOutputHolder.GetOutput(sessionId); @@ -667,11 +696,15 @@ public class InventoryController( var sourceStackCount = sourceItem.Upd.StackObjectsCount; if (sourceStackCount > request.Count) + { // Source items stack count greater than new desired count sourceItem.Upd.StackObjectsCount = sourceStackCount - request.Count; + } else + { // Moving a full stack onto a smaller stack sourceItem.Upd.StackObjectsCount = sourceStackCount - 1; + } destinationItem.Upd ??= new Upd { StackObjectsCount = 1 }; @@ -710,18 +743,27 @@ public class InventoryController( } if (destinationItem.Upd?.StackObjectsCount is null) + { // No stackcount on destination, add one destinationItem.Upd = new Upd { StackObjectsCount = 1 }; + } if (sourceItem.Upd is null) + { sourceItem.Upd = new Upd { StackObjectsCount = 1 }; + } else if (sourceItem.Upd.StackObjectsCount is null) + { // Items pulled out of raid can have no stack count if the stack should be 1 sourceItem.Upd.StackObjectsCount = 1; + } // Remove FiR status from destination stack when source stack has no FiR but destination does if (!sourceItem.Upd.SpawnedInSession.GetValueOrDefault(false) && - destinationItem.Upd.SpawnedInSession.GetValueOrDefault(false)) destinationItem.Upd.SpawnedInSession = false; + destinationItem.Upd.SpawnedInSession.GetValueOrDefault(false)) + { + destinationItem.Upd.SpawnedInSession = false; + } destinationItem.Upd.StackObjectsCount += sourceItem.Upd.StackObjectsCount; // Add source stackcount to destination diff --git a/Libraries/Core/Controllers/LauncherV2Controller.cs b/Libraries/Core/Controllers/LauncherV2Controller.cs index ae288ced..e30c70dd 100644 --- a/Libraries/Core/Controllers/LauncherV2Controller.cs +++ b/Libraries/Core/Controllers/LauncherV2Controller.cs @@ -199,7 +199,9 @@ public class LauncherV2Controller( { if (info.Username == profile.Value.ProfileInfo!.Username && info.Password == profile.Value.ProfileInfo.Password) + { return profile.Key; + } } return null; diff --git a/Libraries/Core/Controllers/LocationController.cs b/Libraries/Core/Controllers/LocationController.cs index 0b5b6d33..f1d52da8 100644 --- a/Libraries/Core/Controllers/LocationController.cs +++ b/Libraries/Core/Controllers/LocationController.cs @@ -39,7 +39,9 @@ public class LocationController( if (mapBase == null) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Map: {kvp} has no base json file, skipping generation"); + } continue; } diff --git a/Libraries/Core/Controllers/QuestController.cs b/Libraries/Core/Controllers/QuestController.cs index f5a6d68e..cbeea0f7 100644 --- a/Libraries/Core/Controllers/QuestController.cs +++ b/Libraries/Core/Controllers/QuestController.cs @@ -190,7 +190,9 @@ public class QuestController( if (matchingQuest is not null) { if(_logger.IsLogEnabled(LogLevel.Debug)) + { _logger.Debug($"Accepted repeatable quest {acceptedQuest.QuestId} from {repeatableQuest.Name}"); + } matchingQuest.SptRepatableGroupName = repeatableQuest.Name; return matchingQuest; diff --git a/Libraries/Core/Controllers/RagfairController.cs b/Libraries/Core/Controllers/RagfairController.cs index accbb0e8..877869cc 100644 --- a/Libraries/Core/Controllers/RagfairController.cs +++ b/Libraries/Core/Controllers/RagfairController.cs @@ -18,6 +18,7 @@ using Core.Generators; using System.Xml.Linq; using System; using Core.Models.Spt.Services; +using LogLevel = Core.Models.Spt.Logging.LogLevel; namespace Core.Controllers; @@ -290,7 +291,10 @@ public class RagfairController else { _logger.Error(_localisationService.GetText("ragfair-unable_to_get_categories")); - _logger.Debug(_jsonUtil.Serialize(searchRequest)); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug(_jsonUtil.Serialize(searchRequest)); + } return new Dictionary(); } @@ -530,7 +534,7 @@ public class RagfairController private ItemEventRouterResponse CreateMultiOffer(string sessionID, AddOfferRequestData offerRequest, SptProfile fullProfile, ItemEventRouterResponse output) { var pmcData = fullProfile.CharacterData.PmcData; - var itemsToListCount = offerRequest.Items.Count; // Does not count stack size, only items + // var itemsToListCount = offerRequest.Items.Count; // Wasnt used to commented out for now // Does not count stack size, only items // multi-offers are all the same item, // Get first item and its children and use as template @@ -631,7 +635,7 @@ public class RagfairController private ItemEventRouterResponse CreatePackOffer(string sessionID, AddOfferRequestData offerRequest, SptProfile fullProfile, ItemEventRouterResponse output) { var pmcData = fullProfile.CharacterData.PmcData; - var itemsToListCount = offerRequest.Items.Count; // Does not count stack size, only items + // var itemsToListCount = offerRequest.Items.Count; // Wasnt used so commented out for now // Does not count stack size, only items // multi-offers are all the same item, // Get first item and its children and use as template @@ -731,7 +735,7 @@ public class RagfairController ItemEventRouterResponse output) { var pmcData = fullProfile.CharacterData.PmcData; - //var itemsToListCount = offerRequest.Items.Count; // Does not count stack size, only items + // var itemsToListCount = offerRequest.Items.Count; // Wasnt used so commented out for now // Does not count stack size, only items // Find items to be listed on flea from player inventory var result = GetItemsToListOnFleaFromInventory(pmcData, offerRequest.Items); @@ -840,7 +844,10 @@ public class RagfairController offerRequest.SellInOnePiece.GetValueOrDefault(false) ); - _logger.Debug($"Offer tax to charge: {tax}, pulled from client: {storedClientTaxValue.Count is not null}"); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug($"Offer tax to charge: {tax}, pulled from client: {storedClientTaxValue.Count is not null}"); + } // cleanup of cache now we've used the tax value from it _ragfairTaxService.ClearStoredOfferTaxById(offerRequest.Items.First()); diff --git a/Libraries/Core/Controllers/RepeatableQuestController.cs b/Libraries/Core/Controllers/RepeatableQuestController.cs index bf8b573f..d8ca18e4 100644 --- a/Libraries/Core/Controllers/RepeatableQuestController.cs +++ b/Libraries/Core/Controllers/RepeatableQuestController.cs @@ -114,9 +114,12 @@ public class RepeatableQuestController( newRepeatableQuest.Side = repeatableConfig.Side; repeatablesOfTypeInProfile.ActiveQuests.Add(newRepeatableQuest); - _logger.Debug( - $"Removing: {repeatableConfig.Name} quest: {questToReplace.Id} from trader: {questToReplace.TraderId} as its been replaced" - ); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug( + $"Removing: {repeatableConfig.Name} quest: {questToReplace.Id} from trader: {questToReplace.TraderId} as its been replaced" + ); + } RemoveQuestFromProfile(fullProfile, questToReplace.Id); @@ -261,7 +264,7 @@ public class RepeatableQuestController( if (attempts > maxAttempts) { - _logger.Debug("We were stuck in repeatable quest generation. This should never happen. Please report"); + _logger.Error("We were stuck in repeatable quest generation. This should never happen. Please report"); } return newRepeatableQuest; @@ -333,7 +336,10 @@ public class RepeatableQuestController( { returnData.Add(generatedRepeatables); - _logger.Debug($"[Quest Check] {repeatableTypeLower} quests are still valid."); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug($"[Quest Check] {repeatableTypeLower} quests are still valid."); + } continue; } @@ -343,7 +349,10 @@ public class RepeatableQuestController( // Set endtime to be now + new duration generatedRepeatables.EndTime = currentTime + repeatableConfig.ResetTime; generatedRepeatables.InactiveQuests = []; - _logger.Debug($"Generating new {repeatableTypeLower}"); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug($"Generating new {repeatableTypeLower}"); + } // Put old quests to inactive (this is required since only then the client makes them fail due to non-completion) // Also need to push them to the "inactiveQuests" list since we need to remove them from offraidData.profile.Quests @@ -371,7 +380,7 @@ public class RepeatableQuestController( lifeline++; if (lifeline > 10) { - _logger.Debug( + _logger.Error( "We were stuck in repeatable quest generation. This should never happen. Please report" ); @@ -470,7 +479,10 @@ public class RepeatableQuestController( // Scav and daily quests not unlocked yet if (repeatableConfig.Side == "Scav" && !PlayerHasDailyScavQuestsUnlocked(pmcData)) { - _logger.Debug("Daily scav quests still locked, Intel center not built"); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug("Daily scav quests still locked, Intel center not built"); + } return false; } @@ -516,9 +528,12 @@ public class RepeatableQuestController( if (questStatusInProfile.Status == QuestStatusEnum.AvailableForFinish) { questsToKeep.Add(activeQuest); - _logger.Debug( - $"Keeping repeatable quest: {activeQuest.Id} in activeQuests since it is available to hand in" - ); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug( // TODO: this shouldnt happen, doesnt on live + $"Keeping repeatable quest: {activeQuest.Id} in activeQuests since it is available to hand in" + ); + } continue; } @@ -616,10 +631,12 @@ public class RepeatableQuestController( { var locationNames = new List(); foreach (var locationName in value) + { if (IsPmcLevelAllowedOnLocation(locationName, pmcLevel)) { locationNames.Add(locationName); } + } if (locationNames.Count > 0) { @@ -668,9 +685,7 @@ public class RepeatableQuestController( } // Add elite bonus to daily quests - if (repeatableConfig.Name.ToLower() == "daily" && - _profileHelper.HasEliteSkillLevel(SkillTypes.Charisma, pmcData) - ) + if (repeatableConfig.Name.ToLower() == "daily" && _profileHelper.HasEliteSkillLevel(SkillTypes.Charisma, pmcData)) { // Elite charisma skill gives extra daily quest(s) questCount += _databaseService diff --git a/Libraries/Core/Controllers/TradeController.cs b/Libraries/Core/Controllers/TradeController.cs index 7e426779..688dd309 100644 --- a/Libraries/Core/Controllers/TradeController.cs +++ b/Libraries/Core/Controllers/TradeController.cs @@ -152,7 +152,10 @@ public class TradeController( if (PlayerLacksTraderLoyaltyLevelToBuyOffer(fleaOffer, pmcData)) { var errorMessage = $"Unable to buy item: {fleaOffer.Items[0].Template} from trader: {fleaOffer.User.Id} as loyalty level too low, skipping"; - _logger.Debug(errorMessage); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug(errorMessage); + } _httpResponseUtil.AppendErrorToOutput(output, errorMessage, BackendErrorCodes.RagfairUnavailable); @@ -293,7 +296,10 @@ public class TradeController( int roublesToSend, string trader) { - _logger.Debug($"Selling scav items to fence for {roublesToSend} roubles"); + if (_logger.IsLogEnabled(LogLevel.Debug)) + { + _logger.Debug($"Selling scav items to fence for {roublesToSend} roubles"); + } // Create single currency item with all currency on it Item rootCurrencyReward = new Item @@ -334,9 +340,10 @@ public class TradeController( var itemWithChildren = _itemHelper.FindAndReturnChildrenAsItems(items, parentItemId); var totalPrice = 0; - foreach (var itemToSell in itemWithChildren) { + foreach (var itemToSell in itemWithChildren) + { var itemDetails = _itemHelper.GetItem(itemToSell.Template); - if (!(itemDetails.Key && _itemHelper.IsOfBaseclasses(itemDetails.Value.Id, traderDetails.ItemsBuy.Category))) + if (!(itemDetails.Key && _itemHelper.IsOfBaseclasses(itemDetails.Value.Id, traderDetails.ItemsBuy.Category))) { // Skip if tpl isn't item OR item doesn't fulfil match traders buy categories continue; diff --git a/Libraries/Core/Controllers/TraderController.cs b/Libraries/Core/Controllers/TraderController.cs index 166dcb65..d3f0bbcc 100644 --- a/Libraries/Core/Controllers/TraderController.cs +++ b/Libraries/Core/Controllers/TraderController.cs @@ -102,7 +102,9 @@ public class TraderController( case Traders.FENCE: { if (_fenceService.NeedsPartialRefresh()) + { _fenceService.GenerateFenceAssorts(); + } continue; } } @@ -134,7 +136,9 @@ public class TraderController( traders.Add(_traderHelper.GetTrader(traderId, sessionId)); if (pmcData?.Info != null) + { _traderHelper.LevelUp(traderId, pmcData); + } } traders.Sort(SortByTraderId);