diff --git a/Content.Server/Body/Commands/AttachBodyPartCommand.cs b/Content.Server/Body/Commands/AttachBodyPartCommand.cs index 82f7161937..9172e9e87e 100644 --- a/Content.Server/Body/Commands/AttachBodyPartCommand.cs +++ b/Content.Server/Body/Commands/AttachBodyPartCommand.cs @@ -100,21 +100,23 @@ namespace Content.Server.Body.Commands var slotId = $"AttachBodyPartVerb-{partUid}"; - // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract - if (body.RootContainer.ContainedEntity != null) + if (body.RootContainer.ContainedEntity is null && !bodySystem.AttachPartToRoot(bodyId, partUid.Value, body, part)) { - bodySystem.AttachPartToRoot(bodyId, partUid.Value, body, part); - } - else - { - var (rootPartId, rootPart) = bodySystem.GetRootPartOrNull(bodyId, body)!.Value; - if (!bodySystem.TryCreatePartSlotAndAttach(rootPartId, slotId, partUid.Value, part.PartType, rootPart, part)) - { - shell.WriteError($"Could not create slot {slotId} on entity {_entManager.ToPrettyString(bodyId)}"); - return; - } + shell.WriteError("Body container does not have a root entity to attach to the body part!"); + return; } + var (rootPartId, rootPart) = bodySystem.GetRootPartOrNull(bodyId, body)!.Value; + if (!bodySystem.TryCreatePartSlotAndAttach(rootPartId, + slotId, + partUid.Value, + part.PartType, + rootPart, + part)) + { + shell.WriteError($"Could not create slot {slotId} on entity {_entManager.ToPrettyString(bodyId)}"); + return; + } shell.WriteLine($"Attached part {_entManager.ToPrettyString(partUid.Value)} to {_entManager.ToPrettyString(bodyId)}"); } }