diff --git a/Content.Server/Ghost/GhostCommand.cs b/Content.Server/Ghost/GhostCommand.cs index a2f361d29d..26163f6d4d 100644 --- a/Content.Server/Ghost/GhostCommand.cs +++ b/Content.Server/Ghost/GhostCommand.cs @@ -1,7 +1,9 @@ using Content.Server.Popups; using Content.Shared.Administration; +using Content.Shared.GameTicking; using Content.Shared.Mind; using Robust.Shared.Console; +using Content.Server.GameTicking; namespace Content.Server.Ghost { @@ -23,6 +25,14 @@ namespace Content.Server.Ghost return; } + var gameTicker = _entities.System(); + if (!gameTicker.PlayerGameStatuses.TryGetValue(player.UserId, out var playerStatus) || + playerStatus is not PlayerGameStatus.JoinedGame) + { + shell.WriteLine("ghost-command-error-lobby"); + return; + } + if (player.AttachedEntity is { Valid: true } frozen && _entities.HasComponent(frozen)) { diff --git a/Resources/Locale/en-US/chat/commands/ghost-command.ftl b/Resources/Locale/en-US/chat/commands/ghost-command.ftl index 08e78d34ce..53dfa478d6 100644 --- a/Resources/Locale/en-US/chat/commands/ghost-command.ftl +++ b/Resources/Locale/en-US/chat/commands/ghost-command.ftl @@ -3,3 +3,4 @@ ghost-command-help-text = The ghost command turns you into a ghost and makes the Please note that you cannot return to your character's body after ghosting. ghost-command-no-session = You have no session, you can't ghost. ghost-command-denied = You cannot ghost right now. +ghost-command-error-lobby = You can't ghost right now. You are not in the game!