diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index 97d6299c07..3619b65e7b 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -54,7 +54,6 @@ namespace Content.Server.Hands.Systems SubscribeLocalEvent(OnDisarmed, before: new[] { typeof(StunSystem) }); - SubscribeLocalEvent(HandlePullAttempt); SubscribeLocalEvent(HandlePullStarted); SubscribeLocalEvent(HandlePullStopped); @@ -148,19 +147,12 @@ namespace Content.Server.Hands.Systems #endregion #region pulling - private static void HandlePullAttempt(EntityUid uid, HandsComponent component, PullAttemptEvent args) + private void HandlePullStarted(EntityUid uid, HandsComponent component, PullStartedMessage args) { if (args.Puller.Owner != uid) return; - // Cancel pull if all hands full. - if (!component.IsAnyHandFree()) - args.Cancelled = true; - } - - private void HandlePullStarted(EntityUid uid, HandsComponent component, PullStartedMessage args) - { - if (args.Puller.Owner != uid) + if (TryComp(args.Puller.Owner, out var pullerComp) && !pullerComp.NeedsHands) return; if (!_virtualItemSystem.TrySpawnVirtualItemInHand(args.Pulled.Owner, uid))