/// <summary> /// Called for each time the timer ticks. /// </summary> /// <param name="State"></param> public void Run(object State) { try { if (this._disabled) { return; } if (this._timerRunning) { this._timerLagging = true; return; } this._resetEvent.Reset(); // BEGIN CODE List <UserCache> CacheList = QuasarEnvironment.GetGame().GetCacheManager().GetUserCache().ToList(); if (CacheList.Count > 0) { foreach (UserCache Cache in CacheList) { try { if (Cache == null) { continue; } UserCache Temp = null; if (Cache.isExpired()) { QuasarEnvironment.GetGame().GetCacheManager().TryRemoveUser(Cache.Id, out Temp); } Temp = null; } catch (Exception e) { Logging.LogCacheException(e.ToString()); } } } CacheList = null; List <Habbo> CachedUsers = QuasarEnvironment.GetUsersCached().ToList(); if (CachedUsers.Count > 0) { foreach (Habbo Data in CachedUsers) { try { if (Data == null) { continue; } Habbo Temp = null; if (Data.CacheExpired()) { QuasarEnvironment.RemoveFromCache(Data.Id, out Temp); } if (Temp != null) { Temp.Dispose(); } Temp = null; } catch (Exception e) { Logging.LogCacheException(e.ToString()); } } } CachedUsers = null; // END CODE // Reset the values this._timerRunning = false; this._timerLagging = false; this._resetEvent.Set(); } catch (Exception e) { Logging.LogCacheException(e.ToString()); } }