Example #1
0
        /// <summary>
        ///     Called when [status changed].
        /// </summary>
        /// <param name="notification">if set to <c>true</c> [notification].</param>
        internal void OnStatusChanged(bool notification)
        {
            if (Friends == null)
            {
                return;
            }

            IEnumerable <GameClient> clientsById = Yupi.GetGame().GetClientManager().GetClientsById(Friends.Keys);

            if (clientsById == null)
            {
                return;
            }

            foreach (
                GameClient current in
                clientsById.Where(
                    current => current?.GetHabbo() != null && current.GetHabbo().GetMessenger() != null))
            {
                Habbo user = current.GetHabbo();

                HabboMessenger messenger = user?.GetMessenger();

                if (messenger != null)
                {
                    messenger.UpdateFriend(_userId, current, true);

                    UpdateFriend(user.Id, current, notification);
                }
            }
        }
Example #2
0
File: Habbo.cs Project: sgf/Yupi
        /// <summary>
        ///     Called when [disconnect].
        /// </summary>
        /// <param name="reason">The reason.</param>
        internal void OnDisconnect(string reason)
        {
            if (Disconnected)
                return;
            Disconnected = true;

            if (_inventoryComponent != null)
            {
                _inventoryComponent.RunDbUpdate();
                _inventoryComponent.SetIdleState();
            }

            string navilogs = string.Empty;

            if (NavigatorLogs.Any())
            {
                navilogs = NavigatorLogs.Values.Aggregate(navilogs,
                    (current, navi) => current + $"{navi.Id},{navi.Value1},{navi.Value2};");
                navilogs = navilogs.Remove(navilogs.Length - 1);
            }

            Yupi.GetGame().GetClientManager().UnregisterClient(Id, UserName);

            Writer.WriteLine(UserName + " disconnected from game. Reason: " + reason, "Yupi.Users", ConsoleColor.DarkYellow);

            TimeSpan getOnlineSeconds = DateTime.Now - TimeLoggedOn;
            int secondsToGive = getOnlineSeconds.Seconds;

            if (!_habboinfoSaved)
            {
                _habboinfoSaved = true;
                using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    queryReactor.SetQuery("UPDATE users SET activity_points = " + ActivityPoints + ", credits = " +
                                          Credits + ", diamonds = " + Diamonds + ", online='0', last_online = '" +
                                          Yupi.GetUnixTimeStamp() + "', builders_items_used = " + BuildersItemsUsed +
                                          ", navigator_logs = @navilogs  WHERE id = " + Id +
                                          " LIMIT 1;UPDATE users_stats SET achievement_score=" + AchievementPoints +
                                          " WHERE id=" + Id + " LIMIT 1;");
                    queryReactor.AddParameter("navilogs", navilogs);
                    queryReactor.RunQuery();
                    queryReactor.RunFastQuery("UPDATE users_stats SET online_seconds = online_seconds + " +
                                              secondsToGive + " WHERE id = " + Id);

                    if (Rank >= 4)
                        queryReactor.RunFastQuery(
                            $"UPDATE moderation_tickets SET status='open', moderator_id=0 WHERE status='picked' AND moderator_id={Id}");

                    queryReactor.RunFastQuery("UPDATE users SET block_newfriends = '" +
                                              Convert.ToInt32(HasFriendRequestsDisabled) + "', hide_online = '" +
                                              Convert.ToInt32(AppearOffline) + "', hide_inroom = '" +
                                              Convert.ToInt32(HideInRoom) + "' WHERE id = " + Id);
                }
            }

            if (InRoom)
                CurrentRoom?.GetRoomUserManager().RemoveUserFromRoom(_mClient, false, false);

            if (_messenger != null)
            {
                _messenger.AppearOffline = true;
                _messenger.Destroy();
                _messenger = null;
            }

            _avatarEffectComponent?.Dispose();

            _mClient = null;
        }
Example #3
0
File: Habbo.cs Project: sgf/Yupi
 /// <summary>
 ///     Initializes the specified client.
 /// </summary>
 /// <param name="client">The client.</param>
 /// <param name="data">The data.</param>
 internal void Init(GameClient client, UserData data)
 {
     _mClient = client;
     _subscriptionManager = new SubscriptionManager(Id, data);
     _badgeComponent = new UserBadgeManager(Id, data);
     _inventoryComponent = new InventoryComponent(Id, client, data);
     _inventoryComponent.SetActiveState(client);
     _avatarEffectComponent = new AvatarEffectComponent(Id, client, data);
     Quests = data.Quests;
     _messenger = new HabboMessenger(Id);
     _messenger.Init(data.Friends, data.Requests);
     FriendCount = Convert.ToUInt32(data.Friends.Count);
     SpectatorMode = false;
     Disconnected = false;
     UsersRooms = data.Rooms;
     MinimailUnreadMessages = data.MiniMailCount;
     Relationships = data.Relations;
     AnsweredPolls = data.SuggestedPolls;
     ClothesManagerManager = new UserClothesManager(Id);
     Preferences = new UserPreferences(Id);
     YoutubeManager = new YoutubeManager(Id);
 }
Example #4
0
File: Habbo.cs Project: sgf/Yupi
 /// <summary>
 ///     Initializes the information.
 /// </summary>
 /// <param name="data">The data.</param>
 internal void InitInformation(UserData data)
 {
     _subscriptionManager = new SubscriptionManager(Id, data);
     _badgeComponent = new UserBadgeManager(Id, data);
     Quests = data.Quests;
     _messenger = new HabboMessenger(Id);
     _messenger.Init(data.Friends, data.Requests);
     SpectatorMode = false;
     Disconnected = false;
     UsersRooms = data.Rooms;
     Relationships = data.Relations;
     AnsweredPolls = data.SuggestedPolls;
 }