public void AddFriend(int id, MessengerFriend friend) { if (!Friends.ContainsKey(id)) { Friends.Add(id, friend); } }
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); }
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); }
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"); } } } }
public MessengerUpdateFriendAdd(MessengerFriend friend) { this.Friend = friend; }
public UpdateFriendComposer(MessengerFriend friend) { _friend = friend; }