]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Stop terminating entities from being removed from containers (#22232)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Sun, 10 Dec 2023 01:00:53 +0000 (20:00 -0500)
committerGitHub <noreply@github.com>
Sun, 10 Dec 2023 01:00:53 +0000 (12:00 +1100)
Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs
Content.Shared/Inventory/InventorySystem.Equip.cs

index 42909201328c1226c447ceb27b708721fbcbc841..15b07cb62f871194254f4bc00e768864f515ad3e 100644 (file)
@@ -177,6 +177,9 @@ public abstract partial class SharedHandsSystem
 
         var entity = hand.Container.ContainedEntity.Value;
 
+        if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(entity))
+            return;
+
         if (!hand.Container.Remove(entity, EntityManager))
         {
             Log.Error($"Failed to remove {ToPrettyString(entity)} from users hand container when dropping. User: {ToPrettyString(uid)}. Hand: {hand.Name}.");
index a6c818ca7e8587407f63b68c36b17533cb72eee3..456c8373df546622ceb0d615ec875c5bffd88ff6 100644 (file)
@@ -331,6 +331,10 @@ public abstract partial class InventorySystem
         bool force = false, bool predicted = false, InventoryComponent? inventory = null, ClothingComponent? clothing = null)
     {
         removedItem = null;
+
+        if (TerminatingOrDeleted(target))
+            return false;
+
         if (!Resolve(target, ref inventory, false))
         {
             if(!silent && _gameTiming.IsFirstTimePredicted)
@@ -347,7 +351,7 @@ public abstract partial class InventorySystem
 
         removedItem = slotContainer.ContainedEntity;
 
-        if (!removedItem.HasValue)
+        if (!removedItem.HasValue || TerminatingOrDeleted(removedItem.Value))
             return false;
 
         if (!force && !CanUnequip(actor, target, slot, out var reason, slotContainer, slotDefinition, inventory))