Files
tbd-station-14/Content.Server/Administration/Logs/Converters/PlayerSessionConverter.cs
Vera Aguilera Puerto 5cd42c9ad6 Inline UID
2021-12-03 15:53:09 +01:00

36 lines
1017 B
C#

using System.Text.Json;
using Robust.Server.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Administration.Logs.Converters;
[AdminLogConverter]
public class PlayerSessionConverter : AdminLogConverter<SerializablePlayer>
{
public override void Write(Utf8JsonWriter writer, SerializablePlayer value, JsonSerializerOptions options)
{
writer.WriteStartObject();
if (value.Player.AttachedEntity != null)
{
writer.WriteNumber("id", (int) (EntityUid) value.Player.AttachedEntity);
writer.WriteString("name", IoCManager.Resolve<IEntityManager>().GetComponent<MetaDataComponent>(value.Player.AttachedEntity).EntityName);
}
writer.WriteString("player", value.Player.UserId.UserId);
writer.WriteEndObject();
}
}
public readonly struct SerializablePlayer
{
public readonly IPlayerSession Player;
public SerializablePlayer(IPlayerSession player)
{
Player = player;
}
}