diff --git a/Libraries/SPTarkov.Common/Extensions/ObjectExtensions.cs b/Libraries/SPTarkov.Common/Extensions/ObjectExtensions.cs index 8688d1ee..74b82c16 100644 --- a/Libraries/SPTarkov.Common/Extensions/ObjectExtensions.cs +++ b/Libraries/SPTarkov.Common/Extensions/ObjectExtensions.cs @@ -60,6 +60,11 @@ public static class ObjectExtensions foreach (var prop in list) { + if (string.Equals(prop.Name, "extensiondata", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + result.Add(prop.GetValue(obj)); } @@ -68,7 +73,15 @@ public static class ObjectExtensions public static Dictionary GetAllPropsAsDict(this object? obj) { - var props = obj.GetType().GetProperties(); + if (obj is null) + { + return []; + } + + var props = obj + .GetType() + .GetProperties() + .Where(prop => !string.Equals(prop.Name, "extensiondata", StringComparison.OrdinalIgnoreCase)); return props.ToDictionary(prop => prop.Name, prop => prop.GetValue(obj)); } diff --git a/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs b/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs index e02db3b3..608cf88e 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/HealthController.cs @@ -275,11 +275,6 @@ public class HealthController( foreach (var bodyPartKvP in healthTreatmentRequest.Difference.BodyParts.GetAllPropsAsDict()) { - if (string.Equals(bodyPartKvP.Key, "extensiondata", StringComparison.InvariantCultureIgnoreCase)) - { - continue; - } - // Get body part from request + from pmc profile var partRequest = (BodyPartEffects) bodyPartKvP.Value; var profilePart = pmcData.Health.BodyParts[bodyPartKvP.Key]; diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs b/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs index efaa2c73..21bf90ab 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LauncherController.cs @@ -62,7 +62,9 @@ public class LauncherController( { var result = new Dictionary(); var dbProfiles = _databaseService.GetProfiles(); - foreach (var templatesProperty in typeof(ProfileTemplates).GetProperties().Where(p => p.CanWrite && p.Name != "ExtensionData")) + foreach (var templatesProperty in typeof(ProfileTemplates).GetProperties() + .Where(p => p.CanWrite + && !string.Equals(p.Name, "extensiondata", StringComparison.InvariantCultureIgnoreCase))) { var propertyValue = templatesProperty.GetValue(dbProfiles); if (propertyValue == null) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs index a0612b21..9e8a69df 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/LauncherV2Controller.cs @@ -48,7 +48,9 @@ public class LauncherV2Controller( var result = new Dictionary(); var dbProfiles = _databaseService.GetProfiles(); - foreach (var templatesProperty in typeof(ProfileTemplates).GetProperties().Where(p => p.CanWrite && p.Name != "ExtensionData")) + foreach (var templatesProperty in typeof(ProfileTemplates).GetProperties() + .Where(p => p.CanWrite + && !string.Equals(p.Name, "extensiondata", StringComparison.InvariantCultureIgnoreCase))) { var propertyValue = templatesProperty.GetValue(dbProfiles); if (propertyValue == null) diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index 6f1b2a73..5889b013 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -1205,11 +1205,6 @@ public class QuestHelper( continue; } - if (string.Equals(rewardType.Key, "extensiondata", StringComparison.InvariantCultureIgnoreCase)) - { - continue; - } - propsAsDict[rewardType.Key] = ((List) propsAsDict[rewardType.Key]) .Where(reward => _rewardHelper.RewardIsForGameEdition(reward, gameVersion)