Add EntityUid AdminLogConverter

This commit is contained in:
DrSmugleaf
2021-11-22 20:36:03 +01:00
parent d12fa22ce1
commit 86ce2aeb22
3 changed files with 53 additions and 27 deletions

View File

@@ -0,0 +1,17 @@
using System.Text.Json;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Administration.Logs.Converters;
[AdminLogConverter]
public class EntityConverter : AdminLogConverter<Entity>
{
[Dependency] private readonly IEntityManager _entities = default!;
public override void Write(Utf8JsonWriter writer, Entity value, JsonSerializerOptions options)
{
EntityUidConverter.Write(writer, value.Uid, options, _entities);
}
}

View File

@@ -1,27 +0,0 @@
using System.Text.Json;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Administration.Logs.Converters;
[AdminLogConverter]
public class EntityJsonConverter : AdminLogConverter<Entity>
{
[Dependency] private readonly IEntityManager _entities = default!;
public override void Write(Utf8JsonWriter writer, Entity value, JsonSerializerOptions options)
{
writer.WriteStartObject();
writer.WriteNumber("id", (int) value.Uid);
writer.WriteString("name", value.Name);
if (_entities.TryGetComponent(value.Uid, out ActorComponent? actor))
{
writer.WriteString("player", actor.PlayerSession.UserId.UserId);
}
writer.WriteEndObject();
}
}

View File

@@ -0,0 +1,36 @@
using System.Text.Json;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Administration.Logs.Converters;
[AdminLogConverter]
public class EntityUidConverter : AdminLogConverter<EntityUid>
{
[Dependency] private readonly IEntityManager _entities = default!;
public static void Write(Utf8JsonWriter writer, EntityUid value, JsonSerializerOptions options, IEntityManager entities)
{
writer.WriteStartObject();
writer.WriteNumber("id", (int) value);
if (entities.TryGetEntity(value, out var entity))
{
writer.WriteString("name", entity.Name);
}
if (entities.TryGetComponent(value, out ActorComponent? actor))
{
writer.WriteString("player", actor.PlayerSession.UserId.UserId);
}
writer.WriteEndObject();
}
public override void Write(Utf8JsonWriter writer, EntityUid value, JsonSerializerOptions options)
{
Write(writer, value, options, _entities);
}
}