/// <summary> /// Serializes the update. /// </summary> /// <param name="friend">The friend.</param> /// <returns>ServerMessage.</returns> internal ServerMessage SerializeUpdate(MessengerBuddy friend) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("FriendUpdateMessageComposer")); serverMessage.AppendInteger(0); serverMessage.AppendInteger(1); serverMessage.AppendInteger(0); friend.Serialize(serverMessage, GetClient()); serverMessage.AppendBool(false); return serverMessage; }
/// <summary> /// Called when [new friendship]. /// </summary> /// <param name="friendId">The friend identifier.</param> internal void OnNewFriendship(uint friendId) { GameClient clientByUserId = Yupi.GetGame().GetClientManager().GetClientByUserId(friendId); MessengerBuddy messengerBuddy; if (clientByUserId?.GetHabbo() == null) { using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) { queryReactor.SetQuery($"SELECT id,username,motto,look,last_online,hide_inroom,hide_online FROM users WHERE id = {friendId}"); DataRow row = queryReactor.GetRow(); messengerBuddy = new MessengerBuddy(friendId, (string)row["username"], (string)row["look"], (string)row["motto"], Yupi.EnumToBool(row["hide_online"].ToString()), Yupi.EnumToBool(row["hide_inroom"].ToString())); } } else { Habbo habbo = clientByUserId.GetHabbo(); messengerBuddy = new MessengerBuddy(friendId, habbo.UserName, habbo.Look, habbo.Motto, habbo.AppearOffline, habbo.HideInRoom); messengerBuddy.UpdateUser(); } if (!Friends.ContainsKey(friendId)) Friends.Add(friendId, messengerBuddy); GetClient().SendMessage(SerializeUpdate(messengerBuddy)); }