Ejemplo n.º 1
0
 public void AddFriend(int id, MessengerFriend friend)
 {
     if (!Friends.ContainsKey(id))
     {
         Friends.Add(id, friend);
     }
 }
Ejemplo n.º 2
0
        public ServerPacket Compose()
        {
            ServerPacket message = new ServerPacket(Outgoing.ProfileFriendsMessageComposer);

            message.WriteInteger(_userId);

            int total = 0;

            if (_love.Count > 0)
            {
                total++;
            }
            if (_happy.Count > 0)
            {
                total++;
            }
            if (_sad.Count > 0)
            {
                total++;
            }

            message.WriteInteger(total);
            if (_love.Count > 0)
            {
                MessengerFriend friend = _love[_rand.Next(_love.Count)];
                message.WriteInteger(1);
                message.WriteInteger(_love.Count);
                message.WriteInteger(friend.Id);
                message.WriteString(friend.Username);
                message.WriteString(friend.Look);
            }
            if (_happy.Count > 0)
            {
                MessengerFriend friend = _happy[_rand.Next(_happy.Count)];
                message.WriteInteger(2);
                message.WriteInteger(_happy.Count);
                message.WriteInteger(friend.Id);
                message.WriteString(friend.Username);
                message.WriteString(friend.Look);
            }
            if (_sad.Count > 0)
            {
                MessengerFriend friend = _sad[_rand.Next(_sad.Count)];
                message.WriteInteger(3);
                message.WriteInteger(_love.Count);
                message.WriteInteger(friend.Id);
                message.WriteString(friend.Username);
                message.WriteString(friend.Look);
            }
            return(message);
        }
Ejemplo n.º 3
0
        public ServerMessage Handle(T handler)
        {
            ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.PRODUCTION_201601012205_226667486, r63cOutgoing.MessengerUpdateFriends);

            message.AppendInt32(handler.FriendCategorys.Count);
            foreach (MessengerCategory category in handler.FriendCategorys)
            {
                message.AppendInt32(category.Id);
                message.AppendString(category.Name);
            }

            message.AppendInt32(handler.Friends.Count);
            foreach (MessengerUpdateFriend friend in handler.Friends)
            {
                message.AppendInt32(friend.StatusID);

                MessengerUpdateFriendRemove remove = friend as MessengerUpdateFriendRemove;
                if (remove != null)
                {
                    message.AppendUInt(remove.UserID);
                }
                else
                {
                    MessengerFriend friend_ = (friend as MessengerUpdateFriendUpdate)?.Friend ?? (friend as MessengerUpdateFriendAdd)?.Friend;

                    message.AppendUInt(friend_.ID);
                    message.AppendString(friend_.Username);
                    message.AppendInt32(0); //gender, ye, its int
                    message.AppendBoolean(friend_.IsOnline);
                    message.AppendBoolean(friend_.InRoom);
                    message.AppendString(friend_.Look);
                    message.AppendInt32(friend_.Category);
                    message.AppendString(friend_.Motto);
                    message.AppendString("");     //real name
                    message.AppendString("");     //un used
                    message.AppendBoolean(false); //offline messages enabled
                    message.AppendBoolean(true);  //idk
                    message.AppendBoolean(false); //pocked habbo
                    message.AppendShort((int)friend_.Relation);
                }
            }

            return(message);
        }
Ejemplo n.º 4
0
        public async void Handle(Session session, ClientPacket message)
        {
            int amount = message.PopInt();

            if (amount > 50)
            {
                amount = 50;
            }
            else if (amount < 0)
            {
                amount = 0;
            }

            for (int i = 0; i < amount; i++)
            {
                int    userId       = message.PopInt();
                Player targetPlayer = await Alias.Server.PlayerManager.ReadPlayerByIdAsync(userId);

                if (targetPlayer == null)
                {
                    return;
                }

                if (!session.Player.Messenger.TryGetRequest(targetPlayer.Id, out MessengerRequest request))
                {
                    MessengerFriend friendOne = new MessengerFriend(targetPlayer.Id, targetPlayer.Username, targetPlayer.Look, targetPlayer.Motto, targetPlayer.CurrentRoom != null);
                    await session.Player.Messenger.RemoveRequest(targetPlayer.Id);

                    await session.Player.Messenger.AddFriendShip(friendOne);

                    session.Send(new UpdateFriendComposer(friendOne));

                    if (targetPlayer.Session != null)
                    {
                        MessengerFriend friendTwo = new MessengerFriend(session.Player.Id, session.Player.Username, session.Player.Look, session.Player.Motto, session.Player.CurrentRoom != null);
                        if (!targetPlayer.Messenger.Friends.ContainsKey(friendTwo.Id))
                        {
                            targetPlayer.Messenger.Friends.Add(friendTwo.Id, friendTwo);
                        }
                        targetPlayer.Session.Send(new UpdateFriendComposer(friendTwo));
                    }
                }
            }
        }
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetMessenger() != null)
            {
                DataTable matchUsers = null;
                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("query", this.Username + "%");
                    matchUsers = dbClient.ReadDataTable("SELECT id, username, look, motto, online FROM users WHERE username LIKE @query LIMIT 50");
                }

                if (matchUsers?.Rows.Count > 0)
                {
                    List <DataRow> friends = new List <DataRow>();
                    List <DataRow> users   = new List <DataRow>();
                    foreach (DataRow dataRow in matchUsers.Rows)
                    {
                        MessengerFriend friend = session.GetHabbo().GetMessenger().GetFriend((uint)dataRow["Id"]);
                        if (friend != null)
                        {
                            friends.Add(dataRow);
                        }
                        else
                        {
                            users.Add(dataRow);
                        }
                    }

                    session.SendMessage(new MessengerSearchUserResultsComposerHandler(friends, users));
                }
                else
                {
                    session.SendMessage(new MessengerSearchUserResultsComposerHandler());
                }
            }
        }
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetMessenger() != null)
            {
                MessengerFriend friend = session.GetHabbo().GetMessenger().GetFriend(this.UserID);
                if (friend != null && friend.Relation != this.Relation)
                {
                    friend.Relation = this.Relation;

                    session.SendMessage(new MessengerUpdateFriendsComposerHandler(null, new List <MessengerUpdateFriend>()
                    {
                        new MessengerUpdateFriendUpdate(friend)
                    }));

                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                        dbClient.AddParamWithValue("friendId", friend.ID);
                        dbClient.AddParamWithValue("relation", (int)this.Relation);
                        dbClient.ExecuteQuery("UPDATE messenger_friends SET user_one_relation = IF(user_one_id = @userId, @relation, user_one_relation), user_two_relation = IF(user_two_id = @userId, @relation, user_two_relation) WHERE (user_one_id = @userId AND user_two_id = @friendId) OR (user_one_id = @friendId AND user_two_id = @userId) LIMIT 1");
                    }
                }
            }
        }
Ejemplo n.º 7
0
 public MessengerUpdateFriendAdd(MessengerFriend friend)
 {
     this.Friend = friend;
 }
Ejemplo n.º 8
0
 public UpdateFriendComposer(MessengerFriend friend)
 {
     _friend = friend;
 }