public void Run(object State) { try { if (Disabled) { return; } if (TimerRunning) { TimerLagging = true; return; } ResetEvent.Reset(); List <UserCache> CacheList = ProjectHub.GetGame().GetCacheManager().GetUserCache().ToList(); if (CacheList.Count > 0) { foreach (UserCache Cache in CacheList) { try { if (Cache == null) { continue; } UserCache Temp = null; if (Cache.IsExpired()) { ProjectHub.GetGame().GetCacheManager().TryRemoveUser(Cache.Id, out Temp); } Temp = null; } catch (Exception Error) { Logging.LogError(Error.ToString()); } } } CacheList = null; List <Habbo> CachedUsers = ProjectHub.GetUsersCached().ToList(); if (CachedUsers.Count > 0) { foreach (Habbo Data in CachedUsers) { try { if (Data == null) { continue; } Habbo Temp = null; if (Data.CacheExpired()) { ProjectHub.RemoveFromCache(Data.Id, out Temp); } if (Temp != null) { Temp.Dispose(); } Temp = null; } catch (Exception Error) { Logging.LogError(Error.ToString()); } } } CachedUsers = null; TimerRunning = false; TimerLagging = false; ResetEvent.Set(); } catch (Exception Error) { Logging.LogError(Error.ToString()); } }