diff --git a/Content.Server/Chat/SuicideSystem.cs b/Content.Server/Chat/SuicideSystem.cs index 69d87472fb..4eda532385 100644 --- a/Content.Server/Chat/SuicideSystem.cs +++ b/Content.Server/Chat/SuicideSystem.cs @@ -46,7 +46,15 @@ public sealed class SuicideSystem : EntitySystem if (!TryComp(victim, out var mobState) || _mobState.IsDead(victim, mobState)) return false; + _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(victim):player} is attempting to suicide"); + + ICommonSession? session = null; + + if (TryComp(victim, out var actor)) + session = actor.PlayerSession; + var suicideGhostEvent = new SuicideGhostEvent(victim); + RaiseLocalEvent(victim, suicideGhostEvent); // Suicide is considered a fail if the user wasn't able to ghost @@ -54,11 +62,18 @@ public sealed class SuicideSystem : EntitySystem if (!suicideGhostEvent.Handled || _tagSystem.HasTag(victim, "CannotSuicide")) return false; - _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(victim):player} is attempting to suicide"); var suicideEvent = new SuicideEvent(victim); RaiseLocalEvent(victim, suicideEvent); - _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(victim):player} suicided."); + // Since the player is already dead the log will not contain their username. + if (session != null) + { + _adminLogger.Add(LogType.Mind, $"{session:player} suicided."); + } + else + { + _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(victim):player} suicided."); + } return true; } diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index b045214329..945b0ff998 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -571,14 +571,14 @@ namespace Content.Server.Ghost } } + if (playerEntity != null) + _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(playerEntity.Value):player} ghosted{(!canReturn ? " (non-returnable)" : "")}"); + var ghost = SpawnGhost((mindId, mind), position, canReturn); if (ghost == null) return false; - if (playerEntity != null) - _adminLogger.Add(LogType.Mind, $"{EntityManager.ToPrettyString(playerEntity.Value):player} ghosted{(!canReturn ? " (non-returnable)" : "")}"); - return true; } }