private void CheckItemDurability([NotNull] IItem item) { double itemDurabilityFraction = ItemDurabilitySystem.SharedGetDurabilityFraction(item); if (IsUnequipEnabled && itemDurabilityFraction <= UnequipThreshold) { if (TryToMoveItem( item: item, toContainer: CurrentCharacter.SharedGetPlayerContainerInventory())) { if (item != null) { itemAlerts.Remove(item); } return; } } if (!itemAlerts.ContainsKey(item)) { itemAlerts.Add(item, new AlertDetails()); } if (IsAlertNotificationEnabled && itemDurabilityFraction <= AlertThreshold && (itemAlerts[item].Durability - itemDurabilityFraction >= AlertStep || (AlertTimeout > 0 && itemAlerts[item].Time + AlertTimeout < Api.Client.Core.ClientRealTime))) { itemAlerts[item].Durability = itemDurabilityFraction; itemAlerts[item].Time = Api.Client.Core.ClientRealTime; NotificationSystem.ClientShowNotification( title: "Item durability low!", color: NotificationColor.Bad, icon: item.ProtoItem.Icon); } }