DogtagSide

This commit is contained in:
hulkhan22
2025-04-26 21:37:08 +02:00
parent 89c36650ca
commit 38f561b85d
3 changed files with 49 additions and 10 deletions
@@ -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")]
@@ -0,0 +1,12 @@
namespace SPTarkov.Server.Core.Models.Enums;
public enum DogtagSide
{
/// <summary>
/// This is for the dogtag equipped by the player, which shows up as 0 (integer) on the profile json.
/// </summary>
NotApplicable,
Usec,
Bear
}
@@ -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<DogtagSide>
{
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<DogtagSide>(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;
}
}
}