1
0

EntityStringRepresentationConverter.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Text.Json;
  2. using Content.Server.Administration.Managers;
  3. using Robust.Server.Player;
  4. namespace Content.Server.Administration.Logs.Converters;
  5. [AdminLogConverter]
  6. public sealed class EntityStringRepresentationConverter : AdminLogConverter<EntityStringRepresentation>
  7. {
  8. [Dependency] private readonly IAdminManager _adminManager = default!;
  9. public override void Write(Utf8JsonWriter writer, EntityStringRepresentation value, JsonSerializerOptions options)
  10. {
  11. writer.WriteStartObject();
  12. writer.WriteNumber("id", (int) value.Uid);
  13. if (value.Name != null)
  14. {
  15. writer.WriteString("name", value.Name);
  16. }
  17. if (value.Session != null)
  18. {
  19. writer.WriteString("player", value.Session.UserId.UserId);
  20. if (_adminManager.IsAdmin(value.Uid))
  21. {
  22. writer.WriteBoolean("admin", true);
  23. }
  24. }
  25. if (value.Prototype != null)
  26. {
  27. writer.WriteString("prototype", value.Prototype);
  28. }
  29. if (value.Deleted)
  30. {
  31. writer.WriteBoolean("deleted", true);
  32. }
  33. writer.WriteEndObject();
  34. }
  35. }