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()); } }
public HSlideObjectBundle(HPacket packet) { HPoint location = new HPoint(packet.ReadInt32(), packet.ReadInt32()); HPoint target = new HPoint(packet.ReadInt32(), packet.ReadInt32()); Objects = new HSlideObject[packet.ReadInt32()]; for (int i = 0; i < Objects.Length; i++) { int objectId = packet.ReadInt32(); location.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); target.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Objects[i] = new HSlideObject(objectId, location, target); } Id = packet.ReadInt32(); if (packet.ReadableBytes > 0) { HMoveType type = (HMoveType)packet.ReadInt32(); int entityIndex = packet.ReadInt32(); location.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); target.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Entity = new HSlideObject(entityIndex, location, target, type); } }
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(); } }
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(); } }
public HFloorObject(HPacket packet) { Id = packet.ReadInt32(); TypeId = packet.ReadInt32(); var tile = new HPoint(packet.ReadInt32(), packet.ReadInt32()); Facing = (HDirection)packet.ReadInt32(); tile.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Tile = tile; Height = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Extra = packet.ReadInt32(); Category = packet.ReadInt32(); Stuff = ReadData(packet, Category); SecondsToExpiration = packet.ReadInt32(); UsagePolicy = (HUsagePolicy)packet.ReadInt32(); OwnerId = packet.ReadInt32(); if (TypeId < 0) { StaticClass = packet.ReadUTF8(); } }
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; } } }
public HFloorItem(HPacket packet) { Id = packet.ReadInt32(); TypeId = packet.ReadInt32(); var tile = new HPoint(packet.ReadInt32(), packet.ReadInt32()); Facing = (HDirection)packet.ReadInt32(); tile.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Tile = tile; var loc1 = packet.ReadUTF8(); var loc3 = packet.ReadInt32(); Category = packet.ReadInt32(); Stuff = ReadData(packet, Category); var loc4 = packet.ReadInt32(); var loc5 = packet.ReadInt32(); OwnerId = packet.ReadInt32(); if (TypeId < 0) { var loc6 = packet.ReadUTF8(); } }
public HFloorItem(HPacket packet) : base(packet) { Id = packet.ReadInt32(); TypeId = packet.ReadInt32(); var tile = new HPoint(packet.ReadInt32(), packet.ReadInt32()); Facing = (HDirection)packet.ReadInt32(); tile.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); Tile = tile; Remnants.Enqueue(packet.ReadUTF8()); Remnants.Enqueue(packet.ReadInt32()); Category = packet.ReadInt32(); Stuff = ReadData(packet, Category); SecondsToExpiration = packet.ReadInt32(); UsagePolicy = packet.ReadInt32(); OwnerId = packet.ReadInt32(); if (TypeId < 0) { Remnants.Enqueue(packet.ReadUTF8()); } }
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(); } }
private async Task CaptureModulesAsync(TcpListener listener) { try { HNode moduleNode = new HNode(await listener.AcceptSocketAsync()); moduleNode.InFormat = HFormat.EvaWire; moduleNode.OutFormat = HFormat.EvaWire; HPacket infoPacket = await moduleNode.ReceivePacketAsync(); var module = new ModuleInfo(moduleNode); module.PropertyChanged += Module_PropertyChanged; module.Version = Version.Parse(infoPacket.ReadUTF8()); module.Name = infoPacket.ReadUTF8(); module.Description = infoPacket.ReadUTF8(); module.Authors.Capacity = infoPacket.ReadInt32(); for (int i = 0; i < module.Authors.Capacity; i++) { module.Authors.Add(new AuthorAttribute(infoPacket.ReadUTF8())); } Modules.Add(module); module.Initialize(); Task handleModuleDataTask = HandleModuleDataAsync(module); } finally { Task captureModulesAsync = CaptureModulesAsync(listener); } }
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); }
public HFurniture(HPacket packet) { Id = packet.ReadInt32(); TypeId = packet.ReadInt32(); Tile = new HPoint(packet.ReadInt32(), packet.ReadInt32()); Facing = (HDirection)packet.ReadInt32(); Tile.Z = double.Parse(packet.ReadUTF8(), CultureInfo.InvariantCulture); var loc1 = packet.ReadUTF8(); var loc3 = packet.ReadInt32(); int category = packet.ReadInt32(); ReadData(packet, category); var loc4 = packet.ReadInt32(); var loc5 = packet.ReadInt32(); OwnerId = packet.ReadInt32(); if (TypeId < 0) { var loc6 = packet.ReadUTF8(); } }
public HWallItem(HPacket packet) { Id = int.Parse(packet.ReadUTF8()); TypeId = packet.ReadInt32(); Location = packet.ReadUTF8(); Data = packet.ReadUTF8(); SecondsToExpiration = packet.ReadInt32(); UsagePolicy = packet.ReadInt32(); OwnerId = packet.ReadInt32(); if (float.TryParse(Data, out float fResult)) { State = int.Parse(Data); } string[] locations = Location.Split(' '); if (Location.IndexOf(":") == 0 && locations.Length >= 3) // False { Placement = locations[2]; if (locations[0].Length <= 3 || locations[1].Length <= 2) { return; } string firstLoc = locations[0].Substring(3); string secondLoc = locations[1].Substring(2); locations = firstLoc.Split(','); if (locations.Length >= 2) { Global = new HPoint(int.Parse(locations[0]), int.Parse(locations[1])); locations = secondLoc.Split(','); if (locations.Length >= 2) { Local = new HPoint(int.Parse(locations[0]), int.Parse(locations[1])); } } } else if (locations.Length >= 2) // True { Placement = locations[0]; if (Placement == "rightwall" || Placement == "frontwall") { Placement = "r"; } else { Placement = "l"; } string[] coords = locations[1].Split(','); if (coords.Length >= 3) { Y = float.Parse(coords[0]); Z = float.Parse(coords[1]); } } }
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); }
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(); }
public HWallItem(HPacket packet) : base(packet) { Id = int.Parse(packet.ReadUTF8()); TypeId = packet.ReadInt32(); Location = packet.ReadUTF8(); State = packet.ReadUTF8(); SecondsToExpiration = packet.ReadInt32(); UsagePolicy = packet.ReadInt32(); OwnerId = packet.ReadInt32(); }
public static HSearchResult[] Parse(HPacket packet) { string searchCode = packet.ReadUTF8(); string filter = packet.ReadUTF8(); var results = new HSearchResult[packet.ReadInt32()]; for (int i = 0; i < results.Length; i++) { results[i] = new HSearchResult(packet); } return(results); }
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(); }
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); } }
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(); }
public static HCatalogNode Parse(HPacket packet) { var root = new HCatalogNode(packet); bool newAdditionsAvailable = packet.ReadBoolean(); string catalogType = packet.ReadUTF8(); return(root); }
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(); }
public HAchievement(HPacket packet) { Name = packet.ReadUTF8(); Levels = new HAchievementLevel[packet.ReadInt32()]; for (int i = 0; i < Levels.Length; i++) { Levels[i] = new HAchievementLevel(Name, packet); } }
public HRoomEntry(HPacket packet) : base(packet) { Id = packet.ReadInt32(); Name = packet.ReadUTF8(); OwnerId = packet.ReadInt32(); OwnerName = packet.ReadUTF8(); DoorMode = packet.ReadInt32(); UserCount = packet.ReadInt32(); MaxUserCount = packet.ReadInt32(); Description = packet.ReadUTF8(); TradeMode = packet.ReadInt32(); Ranking = packet.ReadInt32(); Category = packet.ReadInt32(); Stars = packet.ReadInt32(); Tags = new string[packet.ReadInt32()]; for (int i = 0; i < Tags.Length; i++) { Tags[i] = packet.ReadUTF8(); } HRoomFlags roomEntryBitmask = (HRoomFlags)packet.ReadInt32(); if (roomEntryBitmask.HasFlag(HRoomFlags.HasCustomThumbnail)) { ThumbnailUrl = packet.ReadUTF8(); } if (roomEntryBitmask.HasFlag(HRoomFlags.HasGroup)) { GroupId = packet.ReadInt32(); GroupName = packet.ReadUTF8(); GroupBadgeCode = packet.ReadUTF8(); } if (roomEntryBitmask.HasFlag(HRoomFlags.HasAdvertisement)) { AdName = packet.ReadUTF8(); AdDescription = packet.ReadUTF8(); AdExpiresInMinutes = packet.ReadInt32(); } ShowOwner = roomEntryBitmask.HasFlag(HRoomFlags.ShowOwner); AllowPets = roomEntryBitmask.HasFlag(HRoomFlags.AllowPets); ShowEntryAd = roomEntryBitmask.HasFlag(HRoomFlags.ShowRoomAd); }
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(); }
public new static CHItem[] Parse(HPacket packet) { packet.ReadInt32(); packet.ReadInt32(); var items = new CHItem[packet.ReadInt32()]; for (int i = 0; i < items.Length; i++) { int pos = packet.Position + 4; packet.ReadUTF8(ref pos); pos += 16; items[i] = new CHItem(packet) { ExtraData = packet.ReadUTF8(pos) }; } return(items); }
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); } }
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(); }
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); }); } }
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(); }