public HItem(HMessage packet) { packet.ReadInteger(); string unknown1 = packet.ReadString(); Id = packet.ReadInteger(); TypeId = packet.ReadInteger(); packet.ReadInteger(); Category = packet.ReadInteger(); ReadData(packet, Category); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); SecondsToExpiration = packet.ReadInteger(); HasRentPeriodStarted = packet.ReadBoolean(); RoomId = packet.ReadInteger(); if (unknown1 == "S") { SlotId = packet.ReadString(); packet.ReadInteger(); } }
public HCatalogPage(HMessage packet) { Id = packet.ReadInteger(); CatalogType = packet.ReadString(); LayoutCode = packet.ReadString(); Images = new string[packet.ReadInteger()]; for (int i = 0; i < Images.Length; i++) { Images[i] = packet.ReadString(); } Texts = new string[packet.ReadInteger()]; for (int i = 0; i < Texts.Length; i++) { Texts[i] = packet.ReadString(); } Offers = new HCatalogOffer[packet.ReadInteger()]; for (int i = 0; i < Offers.Length; i++) { Offers[i] = new HCatalogOffer(packet); } OfferId = packet.ReadInteger(); AcceptSeasonCurrencyAsCredits = packet.ReadBoolean(); IsFrontPage = (packet.Readable > 0); }
public HFloorObject(HMessage packet) { Id = packet.ReadInteger(); TypeId = packet.ReadInteger(); var tile = new HPoint(packet.ReadInteger(), packet.ReadInteger()); Facing = (HDirection)packet.ReadInteger(); tile.Z = double.Parse(packet.ReadString(), CultureInfo.InvariantCulture); Tile = tile; packet.ReadString(); packet.ReadInteger(); Category = packet.ReadInteger(); Stuff = ReadData(packet, Category); SecondsToExpiration = packet.ReadInteger(); UsagePolicy = (HUsagePolicy)packet.ReadInteger(); OwnerId = packet.ReadInteger(); if (TypeId < 0) { packet.ReadString(); } }
private void OnPlayerChangeData(HMessage obj) { try { #region Some Parsing int position = 0; obj.ReadInt(ref position); obj.ReadString(ref position); HGender Gender = SKore.ToGender(obj.ReadString(ref position)); string Motto = obj.ReadString(ref position); #endregion var args = new PlayerChangeDataEventArgs(obj); foreach (PDU PData in _loadedPlayers.Values) { if (PData.PlayerIndex == args.PlayerIndex) { PData.Update(Motto, Gender, args.FigureId); } } } catch (Exception e) { MessageBox.Show(e.ToString()); } }
private bool TryProcessHostRoomNavigate(HMessage current, HMessage previous) { if (previous.Length >= 12 && current.CanReadAt <string>(0) && current.ReadString() == "Navigation") { current.ReadString(); if (current.ReadString() != "go.official") { return(false); } if (previous.ReadInt(0).ToString() == current.ReadString()) { if (UpdateHeaders) { Outgoing.Global.RoomNavigate = previous.Header; } OutLockHeader(previous.Header, RaiseOnHostRoomExit); RaiseOnHostRoomNavigate(previous); return(true); } } return(false); }
public HCatalogProduct(HMessage packet) { Type = (HProductType)packet.ReadString()[0]; switch (Type) { case HProductType.Badge: { ExtraData = packet.ReadString(); ProductCount = 1; break; } default: { ClassId = packet.ReadInteger(); ExtraData = packet.ReadString(); ProductCount = packet.ReadInteger(); if (IsLimited = packet.ReadBoolean()) { LimitedTotal = packet.ReadInteger(); LimitedRemaining = packet.ReadInteger(); } break; } } }
private async void HandlePacket(HMessage hmessage) { try { if (hmessage == null) { return; } _main.LogInfo("Incoming packet: " + hmessage.Header); if (hmessage.Header == Headers.Ping) { SendPong(); } else if (hmessage.Header == Headers.InGenerateSecretKey) { GenerateSecretKey(hmessage.ReadString()); } else if (hmessage.Header == 3566) { _main.LogInfo("VerifyPrimes"); VerifyPrimes(hmessage.ReadString(), hmessage.ReadString()); } HandlePacket(await _server.ReceivePacketAsync()); } catch { Disconnect(); } }
public ExtensionForm() { Triggers = new HTriggers(false); var extensionAssembly = Assembly.GetCallingAssembly(); ExtensionInfo extensionInfo = Contractor.GetExtensionInfo(extensionAssembly); if (IsInstalled = (extensionInfo != null)) { _contractor = extensionInfo.Contractor; Hash = extensionInfo.Hash; FileLocation = extensionInfo.FileLocation; var fileInfo = FileVersionInfo.GetVersionInfo(FileLocation); Version = new Version(fileInfo.ProductVersion); Identifier = fileInfo.FileDescription; Description = fileInfo.Comments; Creator = fileInfo.CompanyName; } else if (IsExternal) { _contractor = new Contractor(); var externalContractor = HNode.ConnectAsync("127.0.0.1", 8787).Result; HMessage initializationMessage = externalContractor.ReceiveAsync().Result; _contractor.Hotel = (HHotel)initializationMessage.ReadShort(); _contractor.GameData = new HGameData(initializationMessage.ReadString()); _contractor.GameData.UniqueId = initializationMessage.ReadString(); _contractor.Connection = new ExtensionBridge(externalContractor, this); } }
public PlayerUpdateEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Index = packet.ReadInteger(); FigureId = packet.ReadString(); Gender = SKore.ToGender(packet.ReadString()); Motto = packet.ReadString(); }
public HChatlineData(HMessage packet) { Timestamp = packet.ReadString(); Id = packet.ReadInteger(); Username = packet.ReadString(); Message = packet.ReadString(); IsHighlighted = packet.ReadBoolean(); }
public HostChangeClothesEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; Gender = SKore.ToGender(_packet.ReadString(0)); FigureId = _packet.ReadString(3); }
public PlayerUpdateEventArgs(Func <Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Index = packet.ReadInteger(); FigureId = packet.ReadString(); Gender = SKore.ToGender(packet.ReadString()); Motto = packet.ReadString(); }
public async Task RequestInformationAsync() { HMessage connectionMessage = await _externalContractor .ReceiveAsync().ConfigureAwait(false); Port = connectionMessage.ReadShort(); Host = connectionMessage.ReadString(); Address = connectionMessage.ReadString(); }
public HWallItem(HMessage packet) { Id = int.Parse(packet.ReadString()); TypeId = packet.ReadInteger(); Location = packet.ReadString(); State = packet.ReadString(); SecondsToExpiration = packet.ReadInteger(); UsagePolicy = packet.ReadInteger(); OwnerId = packet.ReadInteger(); }
public HGroupEntry(HMessage packet) { Id = packet.ReadInteger(); Name = packet.ReadString(); BadgeCode = packet.ReadString(); PrimaryColor = packet.ReadString(); SecondaryColor = packet.ReadString(); Favorite = packet.ReadBoolean(); OwnerId = packet.ReadInteger(); HasForum = packet.ReadBoolean(); }
public PlayerChangeDataEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; int position = 4; PlayerIndex = _packet.ReadInt(0); FigureId = _packet.ReadString(ref position); Gender = SKore.ToGender(_packet.ReadString(position)); Motto = _packet.ReadString(position); }
public HFriendRequests(HMessage packet) { Unk = packet.ReadInteger(); Requests = packet.ReadInteger(); for (int i = 0; i < Requests; i++) { Id = packet.ReadInteger(); Name = packet.ReadString(); Motto = packet.ReadString(); } }
public static HSearchResult[] Parse(HMessage packet) { string searchCode = packet.ReadString(); string filter = packet.ReadString(); var results = new HSearchResult[packet.ReadInteger()]; for (int i = 0; i < results.Length; i++) { results[i] = new HSearchResult(packet); } return(results); }
public HSearchResult(HMessage packet) { SearchCode = packet.ReadString(); Text = packet.ReadString(); ActionAllowed = packet.ReadInteger(); ForceClosed = packet.ReadBoolean(); ViewMode = packet.ReadInteger(); Rooms = new HRoomEntry[packet.ReadInteger()]; for (int i = 0; i < Rooms.Length; i++) { Rooms[i] = new HRoomEntry(packet); } }
public static IReadOnlyList <HFurniture> Parse(HMessage packet) { int ownersCount = packet.ReadInteger(); var owners = new Dictionary <int, string>(ownersCount); for (int i = 0; i < ownersCount; i++) { int ownerId = packet.ReadInteger(); string ownerName = packet.ReadString(); owners.Add(ownerId, ownerName); } int furnitureCount = packet.ReadInteger(); var furnitureList = new List <HFurniture>(furnitureCount); for (int i = 0; i < furnitureList.Capacity; i++) { int id = packet.ReadInteger(); int typeId = packet.ReadInteger(); int x = packet.ReadInteger(); int y = packet.ReadInteger(); var direction = (HDirection)packet.ReadInteger(); var z = double.Parse(packet.ReadString(), CultureInfo.InvariantCulture); packet.ReadString(); packet.ReadInteger(); int category = packet.ReadInteger(); HStuffData.ReadStuffData(category, packet); packet.ReadInteger(); packet.ReadInteger(); int ownerId = packet.ReadInteger(); if (typeId < 0) { packet.ReadString(); } var furniture = new HFurniture(id, typeId, ownerId, owners[ownerId], new HPoint(x, y, z), direction); furnitureList.Add(furniture); } return(furnitureList); }
public static HostShoutEventArgs CreateArguments(HMessage Packet) { return(new HostShoutEventArgs(HHeaders.Shout = Packet.Header, Packet.ReadString(0), (HThemes)Packet.ReadInt(Packet.Length - 6)) { Packet = new HMessage(Packet.ToBytes(), HDestinations.Server) }); }
public HostBanPlayerEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Id = packet.ReadInteger(); RoomId = packet.ReadInteger(); Ban = SKore.ToBan(packet.ReadString()); }
private async void Connected(object sender, ConnectedEventArgs e) { if (InvokeRequired) { Invoke(_connected, sender, e); return; } HMessage remoteEndPointPkt = await Connection.Local.ReceivePacketAsync(); e.HotelServer = ConnectionPg.HotelServer = HotelEndPoint.Parse(remoteEndPointPkt.ReadString().Split('\0')[0], remoteEndPointPkt.ReadInteger()); e.IsFakingPolicyRequest = (e.HotelServer.Hotel == HHotel.Unknown); e.HotelServerSource.SetResult(e.HotelServer); ConnectionPg.IsReceiving = true; Text = $"Tanji ~ Connected[{e.HotelServer}]"; TopMost = PacketLoggerUI.TopMost; PacketLoggerUI.RevisionTxt.Text = ("Revision: " + Game.Revision); PacketLoggerUI.Show(); PacketLoggerUI.WindowState = FormWindowState.Normal; BringToFront(); }
public HostBanPlayerEventArgs(Func <Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Id = packet.ReadInteger(); RoomId = packet.ReadInteger(); Ban = SKore.ToBan(packet.ReadString()); }
public static HostChangeMottoEventArgs CreateArguments(HMessage Packet) { return(new HostChangeMottoEventArgs(HHeaders.Motto = Packet.Header, Packet.ReadString(0)) { Packet = new HMessage(Packet.ToBytes(), HDestinations.Server) }); }
public HChatRecordData(HMessage packet) { object ReadContextValue(HMessage anotherMessage) { switch (anotherMessage.ReadShort()) { case 0: return(anotherMessage.ReadBoolean()); case 1: return(anotherMessage.ReadInteger()); case 2: return(anotherMessage.ReadString()); default: throw new System.Exception("Nothing"); } } Type = (HChatRecordType)packet.ReadBytes(1)[0]; int entryCount = packet.ReadShort(); Context = new Dictionary <string, object>(entryCount); for (int i = 0; i < entryCount; i++) { Context.Add(packet.ReadString(), ReadContextValue(packet)); } Chatlogs = new List <HChatlineData>(packet.ReadShort()); for (int i = 0; i < Chatlogs.Capacity; i++) { Chatlogs.Add(new HChatlineData(packet)); } }
public HostChangeMottoEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; Motto = _packet.ReadString(0); }
public HostSendMessageEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; PlayerId = _packet.ReadInt(0); Message = _packet.ReadString(4); }
public HostSayEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; Message = _packet.ReadString(0); Theme = (HTheme)_packet.ReadInt(_packet.Length - 10); }
public HostShoutEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Message = packet.ReadString(); // TODO: Find the chunks before OwnerId and read them. Theme = (HTheme)packet.ReadInteger(packet.Length - 6); }
public HostShoutEventArgs(Func <Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Message = packet.ReadString(); // TODO: Find the chunks before OwnerId and read them. Theme = (HTheme)packet.ReadInteger(packet.Length - 6); }
public static HCatalogNode Parse(HMessage packet) { var root = new HCatalogNode(packet); bool newAdditionsAvailable = packet.ReadBoolean(); string catalogType = packet.ReadString(); return(root); }
public HostRoomNavigateEventArgs(HMessage packet) { _packet = packet; Header = _packet.Header; RoomId = _packet.ReadInt(0); Passcode = _packet.ReadString(4); }
public HostUpdateClothesEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Gender = SKore.ToGender(packet.ReadString()); FigureId = packet.ReadString(); }
public HostUpdateMottoEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Motto = packet.ReadString(); }
public HostPrivateMessageEventArgs(Func<Task> continuation, int step, HMessage packet) : base(continuation, step, packet) { Id = packet.ReadInteger(); Message = packet.ReadString(); }
/// <summary> /// Returns a <see cref="IReadOnlyList{T}"/> of type <see cref="HEntityAction"/> found in the <see cref="HMessage"/>. /// </summary> /// <param name="packet">The <see cref="HMessage"/> that contains the <see cref="HEntityAction"/> data to parse.</param> /// <returns></returns> public static IReadOnlyList<HEntityAction> Parse(HMessage packet) { int entityActionCount = packet.ReadInteger(); var entityActionList = new List<HEntityAction>(entityActionCount); for (int i = 0; i < entityActionList.Capacity; i++) { int index = packet.ReadInteger(); int x = packet.ReadInteger(); int y = packet.ReadInteger(); double z = double.Parse(packet.ReadString()); var headDirection = (HDirection)packet.ReadInteger(); var bodyDirection = (HDirection)packet.ReadInteger(); string actionString = packet.ReadString(); string[] actionData = actionString.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); HSign sign = HSign.One; HAction action = HAction.None; HStance stance = HStance.Stand; double movingToZ = 0.0; bool isEmpowered = false; int movingToX = 0, movingToY = 0; foreach (string actionInfo in actionData) { string[] actionValues = actionInfo.Split(' '); if (actionValues.Length < 2 || string.IsNullOrWhiteSpace(actionValues[0])) continue; #region Switch Statement: actionValues[] switch (actionValues[0]) { case "flatctrl": { isEmpowered = true; break; } case "mv": { string[] movingToValues = actionValues[1].Split(','); if (movingToValues.Length >= 3) { movingToX = int.Parse(movingToValues[0]); movingToY = int.Parse(movingToValues[1]); movingToZ = double.Parse(movingToValues[2]); } action = HAction.Move; break; } case "sit": { action = HAction.Sit; stance = HStance.Sit; break; } case "lay": { action = HAction.Lay; stance = HStance.Lay; break; } case "sign": { sign = (HSign)int.Parse(actionValues[1]); action = HAction.Sign; break; } } #endregion } var entityAction = new HEntityAction(isEmpowered, index, new HPoint(x, y, z), new HPoint(movingToX, movingToY, movingToZ), sign, stance, headDirection, bodyDirection, action); entityActionList.Add(entityAction); } return entityActionList; }
public static IReadOnlyList<HFurniture> Parse(HMessage packet) { int ownersCount = packet.ReadInteger(); var owners = new Dictionary<int, string>(ownersCount); for (int i = 0; i < ownersCount; i++) { int ownerId = packet.ReadInteger(); string ownerName = packet.ReadString(); owners.Add(ownerId, ownerName); } int furnitureCount = packet.ReadInteger(); var furnitureList = new List<HFurniture>(furnitureCount); for (int i = 0; i < furnitureList.Capacity; i++) { int id = packet.ReadInteger(); int typeId = packet.ReadInteger(); int x = packet.ReadInteger(); int y = packet.ReadInteger(); var direction = (HDirection)packet.ReadInteger(); double z = double.Parse(packet.ReadString()); packet.ReadString(); packet.ReadInteger(); int categoryId = (packet.ReadInteger() & 0xFF); #region Switch Statement: categoryId switch (categoryId) { case 0: { packet.ReadString(); break; } case 1: { int count = packet.ReadInteger(); for (int j = 0; j < count; j++) { packet.ReadString(); packet.ReadString(); } break; } case 2: { int count = packet.ReadInteger(); for (int j = 0; j < count; j++) { packet.ReadString(); } break; } case 3: { packet.ReadString(); packet.ReadInteger(); break; } case 5: { int count = packet.ReadInteger(); for (int j = 0; j < count; j++) { packet.ReadInteger(); } break; } case 6: { packet.ReadString(); packet.ReadInteger(); packet.ReadInteger(); int count = packet.ReadInteger(); for (int j = 0; j < count; j++) { int subCount = packet.ReadInteger(); for (int k = 0; k < subCount; k++) { packet.ReadString(); } } break; } case 7: { packet.ReadString(); packet.ReadInteger(); packet.ReadInteger(); break; } } #endregion packet.ReadInteger(); packet.ReadInteger(); int ownerId = packet.ReadInteger(); if (typeId < 0) packet.ReadString(); var furniture = new HFurniture(id, typeId, ownerId, owners[ownerId], new HPoint(x, y, z), direction); furnitureList.Add(furniture); } return furnitureList; }
/// <summary> /// Returns a <see cref="IReadOnlyList{T}"/> of type <see cref="HEntity"/> found in the <see cref="HMessage"/>. /// </summary> /// <param name="packet">The <see cref="HMessage"/> that contains the <see cref="HEntity"/> data to parse.</param> /// <returns></returns> public static IReadOnlyList<HEntity> Parse(HMessage packet) { int entityCount = packet.ReadInteger(); var entityList = new List<HEntity>(entityCount); for (int i = 0; i < entityList.Capacity; i++) { int id = packet.ReadInteger(); string name = packet.ReadString(); string motto = packet.ReadString(); string figureId = packet.ReadString(); int index = packet.ReadInteger(); int x = packet.ReadInteger(); int y = packet.ReadInteger(); double z = double.Parse(packet.ReadString()); packet.ReadInteger(); int type = packet.ReadInteger(); HGender gender = HGender.Unknown; string favoriteGroup = string.Empty; #region Switch Statement: type switch (type) { case 1: { gender = SKore.ToGender(packet.ReadString()); packet.ReadInteger(); packet.ReadInteger(); favoriteGroup = packet.ReadString(); packet.ReadString(); packet.ReadInteger(); packet.ReadBoolean(); break; } case 2: { packet.ReadInteger(); packet.ReadInteger(); packet.ReadString(); packet.ReadInteger(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadBoolean(); packet.ReadInteger(); packet.ReadString(); break; } case 4: { packet.ReadString(); packet.ReadInteger(); packet.ReadString(); for (int j = packet.ReadInteger(); j > 0; j--) packet.ReadShort(); break; } } #endregion var entity = new HEntity(id, index, name, new HPoint(x, y, z), motto, gender, figureId, favoriteGroup); entityList.Add(entity); } return entityList; }
private bool TryHandleHostRaiseSign(HMessage current, HMessage previous) { bool isHostRaiseSign = false; if (current.CanRead<string>(22) && current.ReadString(22) == "sign") { OutgoingHeaders.RaiseSign = previous.Header; _outLocked[previous.Header] = RaiseOnHostRaiseSign; isHostRaiseSign = true; } return isHostRaiseSign; }
private bool TryHandleAvatarMenuClick(HMessage current, HMessage previous) { if (!previous.CanRead<string>(22)) return false; switch (previous.ReadString(22)) { case "sit": case "stand": { OutgoingHeaders.UpdateStance = current.Header; _outLocked[current.Header] = RaiseOnHostUpdateStance; return true; } case "dance_stop": case "dance_start": { OutgoingHeaders.Dance = current.Header; _outLocked[current.Header] = RaiseOnHostDance; return true; } case "wave": case "idle": case "laugh": case "blow_kiss": { OutgoingHeaders.Gesture = current.Header; _outLocked[current.Header] = RaiseOnHostGesture; return true; } } return false; }
private bool TryHandleHostNavigateRoom(HMessage current, HMessage previous) { if (previous.Length >= 12 && current.CanRead<string>(0) && current.ReadString() == "Navigation") { current.ReadString(); if (current.ReadString() != "go.official") return false; if (previous.ReadInteger(0).ToString() == current.ReadString()) { OutgoingHeaders.NavigateRoom = previous.Header; _outLocked[previous.Header] = RaiseOnHostNavigateRoom; return true; } } return false; }