/// <summary> /// Executes socket data. /// </summary> /// <param name="Client"></param> /// <param name="Data"></param> /// <param name="Socket"></param> public void Execute(GameClient Client, string Data, IWebSocketConnection Socket) { if (!PlusEnvironment.GetGame().GetWebEventManager().SocketReady(Socket)) { return; } if (Client != null) { string CachedDataString = GetUserComponent.ReturnUserStatistics(Client); if (String.IsNullOrEmpty(CachedDataString)) { return; } Socket.Send("compose_characterbar:" + CachedDataString); } else { using (UserCache CachedClient = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Convert.ToInt32(Socket.ConnectionInfo.Path.Trim().Split('/')[1]))) { if (CachedClient == null) { return; } string CachedDatString2 = GetUserComponent.ReturnUserStatistics(CachedClient); if (String.IsNullOrEmpty(CachedDatString2)) { return; } Socket.Send("compose_characterbar:" + GetUserComponent.ReturnUserStatistics(CachedClient)); } } }
public bool TryUpdateUser(GameClient Session) { if (Session == null) { return(false); } UserCache OldData; TryGetUser(Session.GetHabbo().Id, out OldData); using (UserCache NewData = new UserCache(Session.GetHabbo().Id, Session.GetHabbo().Username, Session.GetRoleplay().Class, Session.GetHabbo().Look, Session.GetRoleplay().MarriedTo, Session.GetRoleplay().Level, GetUserComponent.ReturnUserStatistics(Session))) { _usersCached.TryUpdate(Session.GetHabbo().Id, NewData, OldData); } return(true); }
/// <summary> /// Clear websocket dialogues /// </summary> public void ClearWebSocketDialogue(bool Force = false) { UserViewing = 0; GetUserComponent.ClearStatisticsDialogue(Client); }
public UserCache GenerateUser(int Id) { UserCache User = null; if (_usersCached.ContainsKey(Id)) { if (TryGetUser(Id, out User)) { return(User); } } GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Id); if (Client != null) { if (Client.GetHabbo() != null) { User = new UserCache(Id, Client.GetHabbo().Username, Client.GetRoleplay().Class, Client.GetHabbo().Look, Client.GetRoleplay().MarriedTo, Client.GetRoleplay().Level, GetUserComponent.ReturnUserStatistics(Client)); _usersCached.TryAdd(Id, User); return(User); } } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `username`, `motto`, `look` FROM `users` WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", Id); DataRow dRow = dbClient.getRow(); dbClient.SetQuery("SELECT `id`,`class`,`married_to`,`level`,`level_exp`,`curhealth`,`maxhealth`,`curenergy`,`maxenergy` FROM `rp_stats` WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", Id); DataRow dRowRP = dbClient.getRow(); if (dRow != null && dRowRP != null) { User = new UserCache(Id, dRow["username"].ToString(), dRowRP["class"].ToString(), dRow["look"].ToString(), Convert.ToInt32(dRowRP["married_to"]), Convert.ToInt32(dRowRP["level"]), GetUserComponent.ReturnUserStatistics(dRow, dRowRP)); _usersCached.TryAdd(Id, User); } dRow = null; dRowRP = null; } return(User); }