Exemple #1
0
        public HItem(HPacket packet)
        {
            packet.ReadInt32();
            string unknown1 = packet.ReadUTF8();

            Id     = packet.ReadInt32();
            TypeId = packet.ReadInt32();
            packet.ReadInt32();

            Category = packet.ReadInt32();
            ReadData(packet, Category);

            packet.ReadBoolean();
            packet.ReadBoolean();
            packet.ReadBoolean();
            packet.ReadBoolean();
            SecondsToExpiration = packet.ReadInt32();

            HasRentPeriodStarted = packet.ReadBoolean();
            RoomId = packet.ReadInt32();

            if (unknown1 == "S")
            {
                SlotId = packet.ReadUTF8();
                packet.ReadInt32();
            }
        }
Exemple #2
0
        public HItem(HPacket packet)
        {
            packet.ReadInt32();

            string loc2 = packet.ReadUTF8();

            Id     = packet.ReadInt32();
            TypeId = packet.ReadInt32();
            packet.ReadInt32();

            Category = packet.ReadInt32();
            Stuff    = ReadData(packet, Category);

            IsGroupable = packet.ReadBoolean();
            IsTradeable = packet.ReadBoolean();
            packet.ReadBoolean();
            CanPlaceInMarketplace = packet.ReadBoolean();
            SecondsToExpiration   = packet.ReadInt32();

            HasRentPeriodStarted = packet.ReadBoolean();
            RoomId = packet.ReadInt32();

            if (loc2 == "S")
            {
                SlotId = packet.ReadUTF8();
                packet.ReadInt32();
            }
        }
Exemple #3
0
        public HItem(HPacket packet)
            : base(packet)
        {
            Remnants.Enqueue(packet.ReadInt32());

            string unknown1 = packet.ReadUTF8();

            Remnants.Enqueue(unknown1);

            Id     = packet.ReadInt32();
            TypeId = packet.ReadInt32();
            Remnants.Enqueue(packet.ReadInt32());

            Category = packet.ReadInt32();
            Stuff    = ReadData(packet, Category);

            IsGroupable = packet.ReadBoolean();
            Remnants.Enqueue(packet.ReadBoolean());
            Remnants.Enqueue(packet.ReadBoolean());
            Remnants.Enqueue(packet.ReadBoolean());
            SecondsToExpiration = packet.ReadInt32();

            HasRentPeriodStarted = packet.ReadBoolean();
            RoomId = packet.ReadInt32();

            if (unknown1 == "S")
            {
                SlotId = packet.ReadUTF8();
                Remnants.Enqueue(packet.ReadInt32());
            }
        }
Exemple #4
0
        public HGroupEntry(HPacket packet)
        {
            Id             = packet.ReadInt32();
            Name           = packet.ReadUTF8();
            BadgeCode      = packet.ReadUTF8();
            PrimaryColor   = packet.ReadUTF8();
            SecondaryColor = packet.ReadUTF8();

            Favorite = packet.ReadBoolean();
            OwnerId  = packet.ReadInt32();
            HasForum = packet.ReadBoolean();
        }
Exemple #5
0
        public HUserSearchResult(HPacket packet)
        {
            Id    = packet.ReadInt32();
            Name  = packet.ReadUTF8();
            Motto = packet.ReadUTF8();

            IsOnline  = packet.ReadBoolean();
            CanFollow = packet.ReadBoolean();

            packet.ReadUTF8();

            Gender = packet.ReadInt32() == 1 ? HGender.Male : HGender.Female; //TODO: HExtension, ffs sulake
            Figure = packet.ReadUTF8();

            RealName = packet.ReadUTF8();
        }
Exemple #6
0
        public HCatalogProduct(HPacket packet)
        {
            Type = (HProductType)packet.ReadUTF8()[0];
            switch (Type)
            {
            case HProductType.Badge:
            {
                ExtraData    = packet.ReadUTF8();
                ProductCount = 1;
                break;
            }

            default:
            {
                ClassId      = packet.ReadInt32();
                ExtraData    = packet.ReadUTF8();
                ProductCount = packet.ReadInt32();
                if (IsLimited = packet.ReadBoolean())
                {
                    LimitedTotal     = packet.ReadInt32();
                    LimitedRemaining = packet.ReadInt32();
                }
                break;
            }
            }
        }
Exemple #7
0
        public HCatalogPage(HPacket packet)
            : base(packet)
        {
            Id          = packet.ReadInt32();
            CatalogType = packet.ReadUTF8();
            LayoutCode  = packet.ReadUTF8();

            Images = new string[packet.ReadInt32()];
            for (int i = 0; i < Images.Length; i++)
            {
                Images[i] = packet.ReadUTF8();
            }

            Texts = new string[packet.ReadInt32()];
            for (int i = 0; i < Texts.Length; i++)
            {
                Texts[i] = packet.ReadUTF8();
            }

            Offers = new HCatalogOffer[packet.ReadInt32()];
            for (int i = 0; i < Offers.Length; i++)
            {
                Offers[i] = new HCatalogOffer(packet);
            }

            OfferId = packet.ReadInt32();
            AcceptSeasonCurrencyAsCredits = packet.ReadBoolean();

            //TODO: ?????????????
            IsFrontPage = (packet.ReadableBytes > 0);
        }
Exemple #8
0
        public static HCatalogNode Parse(HPacket packet)
        {
            var    root = new HCatalogNode(packet);
            bool   newAdditionsAvailable = packet.ReadBoolean();
            string catalogType           = packet.ReadUTF8();

            return(root);
        }
Exemple #9
0
        public HEntity(HPacket packet)
            : base(packet)
        {
            Id       = packet.ReadInt32();
            Name     = packet.ReadUTF8();
            Motto    = packet.ReadUTF8();
            FigureId = packet.ReadUTF8();
            Index    = packet.ReadInt32();

            Tile = new HPoint(packet.ReadInt32(), packet.ReadInt32(),
                              double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture));

            Remnants.Enqueue(packet.ReadInt32());
            EntityType = packet.ReadInt32();

            switch (EntityType)
            {
            case 1:
            {
                Gender = (HGender)packet.ReadUTF8().ToLower()[0];
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadInt32());
                FavoriteGroup = packet.ReadUTF8();
                Remnants.Enqueue(packet.ReadUTF8());
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadBoolean());
                break;
            }

            case 2:
            {
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadUTF8());
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadBoolean());
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadUTF8());
                break;
            }

            case 4:
            {
                Remnants.Enqueue(packet.ReadUTF8());
                Remnants.Enqueue(packet.ReadInt32());
                Remnants.Enqueue(packet.ReadUTF8());
                for (int j = packet.ReadInt32(); j > 0; j--)
                {
                    Remnants.Enqueue(packet.ReadUInt16());
                }
                break;
            }
            }
        }
Exemple #10
0
        public HFriendData(HPacket packet)
        {
            Id       = packet.ReadInt32();
            Username = packet.ReadUTF8();
            Gender   = packet.ReadInt32() == 1 ? HGender.Male : HGender.Female;

            IsOnline   = packet.ReadBoolean();
            CanFollow  = packet.ReadBoolean();
            Figure     = packet.ReadUTF8();
            CategoryId = packet.ReadInt32();
            Motto      = packet.ReadUTF8();
            RealName   = packet.ReadUTF8();
            packet.ReadUTF8();

            IsPersisted = packet.ReadBoolean();
            packet.ReadBoolean();
            IsPocketHabboUser  = packet.ReadBoolean();
            RelationshipStatus = (HRelationship)packet.ReadUInt16();
        }
Exemple #11
0
        public static HPerk[] Parse(HPacket packet)
        {
            var perkAllowances = new HPerk[packet.ReadInt32()];

            for (int i = 0; i < perkAllowances.Length; i++)
            {
                perkAllowances[i] = new HPerk(packet.ReadUTF8(),
                                              packet.ReadUTF8(), packet.ReadBoolean());
            }
            return(perkAllowances);
        }
Exemple #12
0
        public HItem(HPacket packet)
        {
            packet.ReadInt32();

            Type = (HProductType)packet.ReadUTF8()[0];

            Id       = packet.ReadInt32();
            TypeId   = packet.ReadInt32();
            Category = (HFurniCategory)packet.ReadInt32();

            StuffDataFormat = packet.ReadInt32();
            Stuff           = ReadData(packet, StuffDataFormat);

            IsRecyclable = packet.ReadBoolean();
            IsTradable   = packet.ReadBoolean();
            IsGroupable  = packet.ReadBoolean();
            IsSellable   = packet.ReadBoolean();

            CanPlaceInMarketplace = packet.ReadBoolean();
            SecondsToExpiration   = packet.ReadInt32();

            HasRentPeriodStarted = packet.ReadBoolean();
            RoomId = packet.ReadInt32();

            if (Type == HProductType.Stuff)
            {
                SlotId = packet.ReadUTF8();
                Extra  = packet.ReadInt32();
            }
        }
Exemple #13
0
        public HUserProfile(HPacket packet)
        {
            Id               = packet.ReadInt32();
            Username         = packet.ReadUTF8();
            Motto            = packet.ReadUTF8();
            Figure           = packet.ReadUTF8();
            CreationDate     = packet.ReadUTF8();
            AchievementScore = packet.ReadInt32();
            FriendCount      = packet.ReadInt32();

            IsFriend            = packet.ReadBoolean();
            IsFriendRequestSent = packet.ReadBoolean();
            IsOnline            = packet.ReadBoolean();

            Groups = new HGroupEntry[packet.ReadInt32()];
            for (int i = 0; i < Groups.Length; i++)
            {
                Groups[i] = new HGroupEntry(packet);
            }
            LastAccessSinceInSeconds = packet.ReadInt32();
            OpenProfileView          = packet.ReadBoolean();
        }
Exemple #14
0
        public HUserObject(HPacket packet)
        {
            Id   = packet.ReadInt32();
            Name = packet.ReadUTF8();

            Figure = packet.ReadUTF8();
            Gender = (HGender)packet.ReadUTF8()[0];

            CustomData = packet.ReadUTF8();
            RealName   = packet.ReadUTF8();
            DirectMail = packet.ReadBoolean();

            RespectTotal  = packet.ReadInt32();
            RespectLeft   = packet.ReadInt32();
            ScratchesLeft = packet.ReadInt32();

            StreamPublishingAllowed = packet.ReadBoolean();
            LastAccess = DateTime.Parse(packet.ReadUTF8());

            NameChangeAllowed   = packet.ReadBoolean();
            AccountSafetyLocked = packet.ReadBoolean();
        }
Exemple #15
0
        public HPoll(HPacket packet)
        {
            Id = packet.ReadInt32();

            StartMessage = packet.ReadUTF8();
            EndMessage   = packet.ReadUTF8();

            Questions = new HPollQuestion[packet.ReadInt32()];
            for (int i = 0; i < Questions.Length; i++)
            {
                Questions[i] = new HPollQuestion(packet);
            }
            packet.ReadBoolean();
        }
Exemple #16
0
        private async Task HandleModuleDataAsync(ModuleInfo module)
        {
            try
            {
                while (module.Node.IsConnected)
                {
                    HPacket packet = await module.Node.ReceivePacketAsync().ConfigureAwait(false);

                    switch (packet.Id)
                    {
                    case 1:
                    {
                        string identifier = packet.ReadUTF8();
                        TaskCompletionSource <HPacket> handledDataSource = null;
                        if (module.DataAwaiters.TryGetValue(identifier, out handledDataSource))
                        {
                            handledDataSource.SetResult(packet);
                        }
                        else
                        {
                            Debugger.Break();
                        }
                        break;
                    }

                    case 2:
                    {
                        byte[] packetData = packet.ReadBytes(packet.ReadInt32(1), 5);
                        if (packet.ReadBoolean())     // IsOutgoing
                        {
                            await App.Master.Connection.SendToServerAsync(packetData).ConfigureAwait(false);
                        }
                        else
                        {
                            await App.Master.Connection.SendToClientAsync(packetData).ConfigureAwait(false);
                        }
                        break;
                    }
                    }
                }
            }
            finally
            {
                Dispatcher.Invoke(() =>
                {
                    module.Dispose();
                    Modules.Remove(module);
                });
            }
        }
Exemple #17
0
        public HCatalogOffer(HPacket packet)
        {
            Id          = packet.ReadInt32();
            DisplayName = packet.ReadUTF8();
            IsRentable  = packet.ReadBoolean();

            CreditCost        = packet.ReadInt32();
            OtherCurrencyCost = packet.ReadInt32();
            OtherCurrencyType = packet.ReadInt32();
            CanGift           = packet.ReadBoolean();

            Products = new HCatalogProduct[packet.ReadInt32()];
            for (int i = 0; i < Products.Length; i++)
            {
                Products[i] = new HCatalogProduct(packet);
            }

            ClubLevel   = packet.ReadInt32();
            IsPet       = packet.ReadBoolean();
            AllowBundle = packet.ReadBoolean();

            PreviewImage = packet.ReadUTF8();
        }
Exemple #18
0
        public HSearchResult(HPacket packet)
        {
            SearchCode = packet.ReadUTF8();
            Text       = packet.ReadUTF8();

            ActionAllowed = packet.ReadInt32();
            ForceClosed   = packet.ReadBoolean();
            ViewMode      = packet.ReadInt32();

            Rooms = new HRoomEntry[packet.ReadInt32()];
            for (int i = 0; i < Rooms.Length; i++)
            {
                Rooms[i] = new HRoomEntry(packet);
            }
        }
Exemple #19
0
        public HCatalogNode(HPacket packet)
        {
            Visible = packet.ReadBoolean();

            Icon         = packet.ReadInt32();
            PageId       = packet.ReadInt32();
            PageName     = packet.ReadUTF8();
            Localization = packet.ReadUTF8();

            OfferIds = new int[packet.ReadInt32()];
            for (int i = 0; i < OfferIds.Length; i++)
            {
                OfferIds[i] = packet.ReadInt32();
            }

            Children = new HCatalogNode[packet.ReadInt32()];
            for (int i = 0; i < Children.Length; i++)
            {
                Children[i] = new HCatalogNode(packet);
            }
        }
Exemple #20
0
        public HPetInformation(HPacket packet)
        {
            Id   = packet.ReadInt32();
            Name = packet.ReadUTF8();

            Level    = packet.ReadInt32();
            MaxLevel = packet.ReadInt32();

            Experience    = packet.ReadInt32();
            MaxExperience = packet.ReadInt32();

            Energy    = packet.ReadInt32();
            MaxEnergy = packet.ReadInt32();

            Nutrition    = packet.ReadInt32();
            MaxNutrition = packet.ReadInt32();

            Scratches = packet.ReadInt32();
            OwnerId   = packet.ReadInt32();
            Age       = packet.ReadInt32();
            OwnerName = packet.ReadUTF8();

            BreedId = packet.ReadInt32();

            HasFreeSaddle = packet.ReadBoolean();
            IsRiding      = packet.ReadBoolean();

            SkillThresholds = new int[packet.ReadInt32()];
            for (int i = 0; i < SkillThresholds.Length; i++)
            {
                SkillThresholds[i] = packet.ReadInt32();
            }
            AccessRights = packet.ReadInt32();

            CanBreed   = packet.ReadBoolean();
            CanHarvest = packet.ReadBoolean();
            CanRevive  = packet.ReadBoolean();

            RarityLevel               = packet.ReadInt32();
            MaxWellBeingSeconds       = packet.ReadInt32();
            RemainingWellBeingSeconds = packet.ReadInt32();
            RemainingGrowingSeconds   = packet.ReadInt32();

            HasBreedingPermission = packet.ReadBoolean();
        }
Exemple #21
0
            private void HandleData(DataInterceptedEventArgs e)
            {
                string identifier = e.Timestamp.Ticks.ToString();

                identifier += e.IsOutgoing;
                identifier += e.Step;
                try
                {
                    var interceptedData = new EvaWirePacket(1);
                    interceptedData.Write(identifier);

                    interceptedData.Write(e.Step);
                    interceptedData.Write(e.IsOutgoing);
                    interceptedData.Write(e.Packet.Format.Name);
                    interceptedData.Write(e.IsContinuable && !e.HasContinued);

                    interceptedData.Write(e.GetOriginalData().Length);
                    interceptedData.Write(e.GetOriginalData());

                    interceptedData.Write(e.IsOriginal);
                    if (!e.IsOriginal)
                    {
                        byte[] curPacketData = e.Packet.ToBytes();
                        interceptedData.Write(curPacketData.Length);
                        interceptedData.Write(curPacketData);
                    }

                    _module.DataAwaiters.Add(identifier, new TaskCompletionSource <HPacket>());
                    _module.Node.SendPacketAsync(interceptedData);

                    HPacket handledDataPacket = _module.DataAwaiters[identifier].Task.Result;
                    if (handledDataPacket == null)
                    {
                        return;
                    }
                    // This packet contains the identifier at the start, although we do not read it here.

                    bool isContinuing = handledDataPacket.ReadBoolean();
                    if (isContinuing)
                    {
                        _module.DataAwaiters[identifier] = new TaskCompletionSource <HPacket>();

                        bool wasRelayed = handledDataPacket.ReadBoolean();
                        e.Continue(wasRelayed);

                        if (wasRelayed)
                        {
                            return;             // We have nothing else to do here, packet has already been sent/relayed.
                        }
                        handledDataPacket = _module.DataAwaiters[identifier].Task.Result;
                        isContinuing      = handledDataPacket.ReadBoolean(); // We can ignore this one.
                    }

                    int    newPacketLength = handledDataPacket.ReadInt32();
                    byte[] newPacketData   = handledDataPacket.ReadBytes(newPacketLength);

                    e.Packet    = e.Packet.Format.CreatePacket(newPacketData);
                    e.IsBlocked = handledDataPacket.ReadBoolean();
                }
                finally { _module.DataAwaiters.Remove(identifier); }
            }
Exemple #22
0
        private void AddEntry(List <Tuple <string, Color> > entries)
        {
            DataInterceptedEventArgs args = _intercepted.Dequeue();

            if (!IsLoggingAuthorized(args))
            {
                return;
            }

            if (args.IsBlocked)
            {
                entries.Add(Tuple.Create("[Blocked]\r\n", FilterHighlight));
            }
            if (!args.IsOriginal)
            {
                entries.Add(Tuple.Create("[Replaced]\r\n", FilterHighlight));
            }
            if (IsDisplayingTimestamp)
            {
                entries.Add(Tuple.Create($"[{args.Timestamp:M/d H:mm:ss}]\r\n", DetailHighlight));
            }

            MessageItem message = GetMessage(args);

            if (IsDisplayingHash && message != null && !string.IsNullOrWhiteSpace(message.Hash))
            {
                entries.Add(Tuple.Create($"[{message.Hash}]\r\n", DetailHighlight));
            }

            if (IsDisplayingHexadecimal)
            {
                string hex = BitConverter.ToString(args.Packet.ToBytes());
                entries.Add(Tuple.Create($"[{hex.Replace("-", string.Empty)}]\r\n", DetailHighlight));
            }

            string arrow          = "->";
            string title          = "Outgoing";
            Color  entryHighlight = OutgoingHighlight;

            if (!args.IsOutgoing)
            {
                arrow          = "<-";
                title          = "Incoming";
                entryHighlight = IncomingHighlight;
            }

            entries.Add(Tuple.Create(title + "[", entryHighlight));
            entries.Add(Tuple.Create(args.Packet.Id.ToString(), DetailHighlight));

            if (message != null)
            {
                if (IsDisplayingMessageName)
                {
                    entries.Add(Tuple.Create(", ", entryHighlight));
                    entries.Add(Tuple.Create(message.Class.QName.Name, DetailHighlight));
                }
                if (IsDisplayingParserName && message.Parser != null)
                {
                    entries.Add(Tuple.Create(", ", entryHighlight));
                    entries.Add(Tuple.Create(message.Parser.QName.Name, DetailHighlight));
                }
            }
            entries.Add(Tuple.Create("]", entryHighlight));
            entries.Add(Tuple.Create($" {arrow} ", DetailHighlight));
            entries.Add(Tuple.Create($"{args.Packet}\r\n", entryHighlight));

            if (IsDisplayingStructure && message?.Structure?.Length >= 0)
            {
                int     position  = 0;
                HPacket packet    = args.Packet;
                string  structure = ("{id:" + packet.Id + "}");
                foreach (string valueType in message.Structure)
                {
                    switch (valueType.ToLower())
                    {
                    case "int":
                        structure += ("{i:" + packet.ReadInt32(ref position) + "}");
                        break;

                    case "string":
                        structure += ("{s:" + packet.ReadUTF8(ref position) + "}");
                        break;

                    case "double":
                        structure += ("{d:" + packet.ReadDouble(ref position) + "}");
                        break;

                    case "byte":
                        structure += ("{b:" + packet.ReadByte(ref position) + "}");
                        break;

                    case "boolean":
                        structure += ("{b:" + packet.ReadBoolean(ref position) + "}");
                        break;
                    }
                }
                if (packet.GetReadableBytes(position) == 0)
                {
                    entries.Add(Tuple.Create(structure + "\r\n", StructureHighlight));
                }
            }
            entries.Add(Tuple.Create("--------------------\r\n", DetailHighlight));
        }
Exemple #23
0
        public virtual void OnConnected(HPacket packet)
        {
            HotelServer      = HotelEndPoint.Parse(packet.ReadUTF8(), packet.ReadInt32());
            ClientVersion    = packet.ReadUTF8();
            ClientIdentifier = packet.ReadUTF8();
            ClientType       = packet.ReadUTF8();
            try
            {
                MessagesInfoIncoming = new List <HMessage>();
                MessagesInfoOutgoing = new List <HMessage>();
                Out = new Outgoing(new List <HMessage>());
                In  = new Incoming(new List <HMessage>());
                int MessagesInfoLenght = packet.ReadInt32();
                foreach (var i in Enumerable.Range(0, MessagesInfoLenght))
                {
                    int    CurrentMessageID         = packet.ReadInt32();
                    string CurrentMessageHash       = packet.ReadUTF8();
                    string CurrentMessageName       = packet.ReadUTF8();
                    string CurrentMessageStructure  = packet.ReadUTF8();
                    bool   CurrentMessageIsOutgoing = packet.ReadBoolean();
                    string CurrentMessageSource     = packet.ReadUTF8();
                    if (string.IsNullOrWhiteSpace(CurrentMessageHash) || CurrentMessageHash == "NULL")
                    {
                        CurrentMessageHash = CurrentMessageName;
                    }
                    CurrentMessageHash = CurrentMessageSource + "_" + CurrentMessageHash;
                    HMessage CurrentHMessage = new HMessage((ushort)CurrentMessageID, CurrentMessageHash, CurrentMessageName, CurrentMessageStructure);
                    if (CurrentMessageIsOutgoing)
                    {
                        MessagesInfoOutgoing.Add(CurrentHMessage);
                    }
                    else
                    {
                        MessagesInfoIncoming.Add(CurrentHMessage);
                    }
                }
                List <HMessage> GeodeOut = new List <HMessage>();
                List <HMessage> GeodeIn  = new List <HMessage>();
                foreach (PropertyInfo GeodeOutProperty in Out.GetType().GetProperties())
                {
                    try
                    {
                        if (GeodeOutProperty.PropertyType == typeof(HMessage))
                        {
                            GeodeOut.Add(MessagesInfoOutgoing.First(x => x.Name == GeodeOutProperty.Name));
                        }
                    }
                    catch { Console.WriteLine("MessageInfo not found for: " + GeodeOutProperty.Name); }
                }
                foreach (PropertyInfo GeodeInProperty in In.GetType().GetProperties())
                {
                    try
                    {
                        if (GeodeInProperty.PropertyType == typeof(HMessage))
                        {
                            GeodeIn.Add(MessagesInfoIncoming.First(x => x.Name == GeodeInProperty.Name));
                        }
                    }
                    catch { Console.WriteLine("MessageInfo not found for: " + GeodeInProperty.Name); }
                }
                Out = new Outgoing(GeodeOut);
                In  = new Incoming(GeodeIn);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Critical MessagesInfo exception: " + ex.Message);
                MessagesInfo_Failed = true;
            }

            IsConnected = true;
            if (DisableEventHandlers == false)
            {
                try { OnConnectedEvent.Invoke(this, packet); } catch { };//Invoke event handler
            }
        }