public override bool CanOffer() { DefragCooldown(); if (!CooldownTable.ContainsKey(Owner) || Owner.AccessLevel > AccessLevel.Player) { return(base.CanOffer()); } return(false); }
private static void DefragCooldown() { List <Mobile> toRemove = new List <Mobile>(); foreach (KeyValuePair <Mobile, DateTime> kvp in CooldownTable) { if (kvp.Value < DateTime.UtcNow) { toRemove.Add(kvp.Key); } } foreach (Mobile m in toRemove) { if (CooldownTable.ContainsKey(m)) { CooldownTable.Remove(m); } } }