Rejig LogStringHandler (#30706)

* Rejig LogStringHandler

* Fix session logs

* Fix properly

* comments

* IAsType support

* Fix mind logs

* Fix mind logging AGAIN

---------

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
This commit is contained in:
Leon Friedrich
2025-09-06 00:22:49 +12:00
committed by GitHub
parent f45bf4590f
commit 828b1f2044
17 changed files with 413 additions and 198 deletions

View File

@@ -608,15 +608,14 @@ public abstract partial class SharedMindSystem : EntitySystem
}
/// <summary>
/// A string to represent the mind for logging
/// A string to represent the mind for logging.
/// </summary>
public string MindOwnerLoggingString(MindComponent mind)
public MindStringRepresentation MindOwnerLoggingString(MindComponent mind)
{
if (mind.OwnedEntity != null)
return ToPrettyString(mind.OwnedEntity.Value);
if (mind.UserId != null)
return mind.UserId.Value.ToString();
return "(originally " + mind.OriginalOwnerUserId + ")";
return new MindStringRepresentation(
ToPrettyString(mind.OwnedEntity),
mind.UserId != null,
mind.UserId ?? mind.OriginalOwnerUserId);
}
public string? GetCharacterName(NetUserId userId)
@@ -733,3 +732,16 @@ public record struct GetCharactedDeadIcEvent(bool? Dead);
/// <param name="Unrevivable"></param>
[ByRefEvent]
public record struct GetCharacterUnrevivableIcEvent(bool? Unrevivable);
public sealed record MindStringRepresentation(EntityStringRepresentation? OwnedEntity, bool PlayerPresent, NetUserId? Player) : IAdminLogsPlayerValue
{
public override string ToString()
{
var str = OwnedEntity?.ToString() ?? "mind without entity";
if (Player != null)
str += $" ({(PlayerPresent ? "" : "originally ")} {Player})";
return str;
}
IEnumerable<NetUserId> IAdminLogsPlayerValue.Players => Player == null ? [] : [Player.Value];
}