/// <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));
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 /// <summary>
 /// Clear websocket dialogues
 /// </summary>
 public void ClearWebSocketDialogue(bool Force = false)
 {
     UserViewing = 0;
     GetUserComponent.ClearStatisticsDialogue(Client);
 }
Beispiel #4
0
        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);
        }