private void OnItemRemovedFromContainer(ItemContainer itemContainer, Item item) {
            if (item.parentItem != null)
                return;

            var player = itemContainer.GetOwnerPlayer();
            if (player != null)
                return;

            ContainerController container;
            if (!_controllersPerContainer.TryGetValue(itemContainer.uid, out container))
                return;

#if DEBUG
            Puts($"OnItemRemovedFromContainer: {item.info.shortname} (slot {item.position})");
#endif

            container.OnItemTaken(item);
            // ================================================
            Interface.CallHook("OnItemSkinChanged", player, item); // player should be replaced with container.Owner
            // ================================================
            container.Clear();
        }