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}.");
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)
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))