From 89c36650ca383916cc79ab82cb76284f0280b922 Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Sat, 26 Apr 2025 19:33:35 +0200 Subject: [PATCH 1/5] Objects --- .../Models/Eft/Common/PmcData.cs | 8 ++++-- .../Models/Eft/Common/Tables/BotBase.cs | 26 ++++++++++++++++--- .../Models/Eft/Common/Tables/Item.cs | 21 ++++++++++----- 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/PmcData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/PmcData.cs index ee22fd8e..282b8f3b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/PmcData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/PmcData.cs @@ -1,4 +1,5 @@ -using System.Text.Json.Serialization; +using System.ComponentModel; +using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Utils.Json.Converters; @@ -20,7 +21,10 @@ public record PmcData : BotBase set; } - public object CheckedChambers + /// + /// Returns the list of IDs of the weapons, which the player has checked the chamber of in the last raid. + /// + public List CheckedChambers { get; set; diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index ced49d93..7d540e94 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -763,11 +763,20 @@ public record BodyPartHealth public record BodyPartEffectProperties { + private object? _extraData; + // TODO: this was any, what actual type is it? public object? ExtraData { - get; - set; + get + { + return _extraData; + } + set + { + Console.WriteLine($"ExtraData: {value}"); + _extraData = value; + } } public double? Time @@ -1490,6 +1499,8 @@ public record DeathCause public record LastPlayerState { + private object? _equipment; + public LastPlayerStateInfo? Info { get; @@ -1505,8 +1516,15 @@ public record LastPlayerState // TODO: there is no definition on TS just any public object? Equipment { - get; - set; + get + { + return _equipment; + } + set + { + Console.WriteLine($"Equipment: {value}"); + _equipment = value; + } } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs index 19a04dce..7fa6c9df 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs @@ -169,11 +169,11 @@ public record ItemLocation } [JsonPropertyName("r")] - public object? R + public int R { get; set; - } // TODO: Can be string or number + } [JsonPropertyName("isSearched")] public bool? IsSearched @@ -186,11 +186,11 @@ public record ItemLocation /// SPT property? /// [JsonPropertyName("rotation")] - public object? Rotation + public bool? Rotation { get; set; - } // TODO: Can be string or boolean + } } public record Upd @@ -646,6 +646,8 @@ public record UpdLight public record UpdDogtag { + private object? _side; + [JsonPropertyName("AccountId")] public string? AccountId { @@ -670,8 +672,15 @@ public record UpdDogtag [JsonPropertyName("Side")] public object? Side { - get; - set; + get + { + return _side; + } + set + { + Console.WriteLine($"Side: {value}"); + _side = value; + } } [JsonPropertyName("Level")] From 38f561b85d7dd3c1a4f8bf6f0b10fe83ee570c43 Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Sat, 26 Apr 2025 21:37:08 +0200 Subject: [PATCH 2/5] DogtagSide --- .../Models/Eft/Common/Tables/Item.cs | 14 +++----- .../Models/Enums/DogtagSide.cs | 12 +++++++ .../Json/Converters/DogtagSideConverter.cs | 33 +++++++++++++++++++ 3 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 Libraries/SPTarkov.Server.Core/Models/Enums/DogtagSide.cs create mode 100644 Libraries/SPTarkov.Server.Core/Utils/Json/Converters/DogtagSideConverter.cs diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs index 7fa6c9df..29be9361 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs @@ -670,17 +670,11 @@ public record UpdDogtag } [JsonPropertyName("Side")] - public object? Side + [JsonConverter(typeof(DogtagSideConverter))] + public DogtagSide? Side { - get - { - return _side; - } - set - { - Console.WriteLine($"Side: {value}"); - _side = value; - } + get; + set; } [JsonPropertyName("Level")] diff --git a/Libraries/SPTarkov.Server.Core/Models/Enums/DogtagSide.cs b/Libraries/SPTarkov.Server.Core/Models/Enums/DogtagSide.cs new file mode 100644 index 00000000..d94e0717 --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Models/Enums/DogtagSide.cs @@ -0,0 +1,12 @@ +namespace SPTarkov.Server.Core.Models.Enums; + +public enum DogtagSide +{ + /// + /// This is for the dogtag equipped by the player, which shows up as 0 (integer) on the profile json. + /// + NotApplicable, + + Usec, + Bear +} diff --git a/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/DogtagSideConverter.cs b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/DogtagSideConverter.cs new file mode 100644 index 00000000..b7b2b4ae --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Utils/Json/Converters/DogtagSideConverter.cs @@ -0,0 +1,33 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using SPTarkov.Server.Core.Models.Enums; + +namespace SPTarkov.Server.Core.Utils.Json.Converters; + +public class DogtagSideConverter : JsonConverter +{ + public override DogtagSide Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + if (reader.TokenType == JsonTokenType.Number) + { + return DogtagSide.NotApplicable; + } + + var value = reader.GetString(); + return value != null ? Enum.Parse(value) : DogtagSide.NotApplicable; + } + + public override void Write(Utf8JsonWriter writer, DogtagSide value, JsonSerializerOptions options) + { + switch (value) + { + case DogtagSide.NotApplicable: + writer.WriteNumberValue(0); + break; + case DogtagSide.Usec: + case DogtagSide.Bear: + writer.WriteStringValue(value.ToString()); + break; + } + } +} From 871ca63aaad01518891098f0dce19c7b39f5b6a3 Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Sun, 27 Apr 2025 01:39:21 +0200 Subject: [PATCH 3/5] More type changes --- .../Assets/database/templates/quests.json | 2 +- .../Models/Eft/Common/Tables/BotBase.cs | 13 ++----------- .../Models/Eft/Common/Tables/Item.cs | 2 -- .../Models/Eft/Common/Tables/Quest.cs | 10 +++++----- UnitTests/TestAssets/quests.json | 2 +- 5 files changed, 9 insertions(+), 20 deletions(-) diff --git a/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json b/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json index 3386dc5d..8eb040f5 100644 --- a/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json +++ b/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json @@ -98657,7 +98657,7 @@ "conditionType": "Kills", "id": "655e484b52dc506c051b4409", "target": "AnyPmc", - "value": "1" + "value": 1 } ], "id": "655e483da3ee7d4c56241e18" diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index 7d540e94..19b31bed 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -1499,8 +1499,6 @@ public record DeathCause public record LastPlayerState { - private object? _equipment; - public LastPlayerStateInfo? Info { get; @@ -1516,15 +1514,8 @@ public record LastPlayerState // TODO: there is no definition on TS just any public object? Equipment { - get - { - return _equipment; - } - set - { - Console.WriteLine($"Equipment: {value}"); - _equipment = value; - } + get; + set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs index 29be9361..438b70c8 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Item.cs @@ -646,8 +646,6 @@ public record UpdLight public record UpdDogtag { - private object? _side; - [JsonPropertyName("AccountId")] public string? AccountId { diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs index 6ccbbc4e..86972834 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -179,11 +179,11 @@ public record Quest /// Becomes 'AppearStatus' inside client /// [JsonPropertyName("status")] - public object? Status + public int? Status { get; set; - } // TODO: string | number + } [JsonPropertyName("KeyQuest")] public bool? KeyQuest @@ -447,11 +447,11 @@ public record QuestCondition } [JsonPropertyName("type")] - public object? Type + public string? Type { get; set; - } // TODO: boolean | string + } [JsonPropertyName("status")] public List? Status @@ -770,7 +770,7 @@ public record QuestConditionCounterCondition } [JsonPropertyName("value")] - public object? Value + public int? Value { get; set; diff --git a/UnitTests/TestAssets/quests.json b/UnitTests/TestAssets/quests.json index 0c12f837..cd3d3388 100644 --- a/UnitTests/TestAssets/quests.json +++ b/UnitTests/TestAssets/quests.json @@ -98796,7 +98796,7 @@ "conditionType": "Kills", "id": "655e484b52dc506c051b4409", "target": "AnyPmc", - "value": "1" + "value": 1 } ], "id": "655e483da3ee7d4c56241e18" From b1fd4d2055d7029832a70b4787256f36f4eccb15 Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Sun, 27 Apr 2025 01:50:26 +0200 Subject: [PATCH 4/5] revert --- .../Models/Eft/Common/Tables/BotBase.cs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs index 19b31bed..ced49d93 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/BotBase.cs @@ -763,20 +763,11 @@ public record BodyPartHealth public record BodyPartEffectProperties { - private object? _extraData; - // TODO: this was any, what actual type is it? public object? ExtraData { - get - { - return _extraData; - } - set - { - Console.WriteLine($"ExtraData: {value}"); - _extraData = value; - } + get; + set; } public double? Time From 850059416fecba36e4303ecc2ce08679a4680d0b Mon Sep 17 00:00:00 2001 From: hulkhan22 Date: Sun, 27 Apr 2025 02:45:59 +0200 Subject: [PATCH 5/5] Reverted data change --- .../Assets/database/templates/quests.json | 2 +- .../SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs | 2 +- UnitTests/TestAssets/quests.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json b/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json index 8eb040f5..3386dc5d 100644 --- a/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json +++ b/Libraries/SPTarkov.Server.Assets/Assets/database/templates/quests.json @@ -98657,7 +98657,7 @@ "conditionType": "Kills", "id": "655e484b52dc506c051b4409", "target": "AnyPmc", - "value": 1 + "value": "1" } ], "id": "655e483da3ee7d4c56241e18" diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs index 86972834..6244b47b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -770,7 +770,7 @@ public record QuestConditionCounterCondition } [JsonPropertyName("value")] - public int? Value + public object? Value { get; set; diff --git a/UnitTests/TestAssets/quests.json b/UnitTests/TestAssets/quests.json index cd3d3388..0c12f837 100644 --- a/UnitTests/TestAssets/quests.json +++ b/UnitTests/TestAssets/quests.json @@ -98796,7 +98796,7 @@ "conditionType": "Kills", "id": "655e484b52dc506c051b4409", "target": "AnyPmc", - "value": 1 + "value": "1" } ], "id": "655e483da3ee7d4c56241e18"