public static void HandleListUpdate(BattlenetPacket packet) { if (packet.ReadBoolean()) { packet.Read <uint>("Category", 0, 32); packet.ReadSingle("Population"); packet.Read <byte>("StateFlags", 0, 8); packet.ReadSkip(19); packet.Read <uint>("Type", int.MinValue, 32); packet.ReadString("Name", 0, 10); if (packet.ReadBoolean()) { packet.ReadString("Version", 0, 5, "PrivilegedData"); packet.Read <uint>("ConfigId", 0, 32, "PrivilegedData"); var ip = packet.ReadBytes(4); var port = packet.ReadBytes(2); Array.Reverse(port); packet.Stream.AddValue("Address", new IPEndPoint(new IPAddress(ip), BitConverter.ToUInt16(port, 0)), "PrivilegedData"); } packet.Read <RealmInfoFlags>("InfoFlags", 0, 8); } packet.Read <byte>("Region", 0, 8); packet.ReadSkip(12); packet.Read <byte>("Site", 0, 8); packet.Read <uint>("Realm", 0, 32); }
public static void HandleUpdateNotify(BattlenetPacket packet) { packet.ReadSkip(6); packet.Read<uint>("IdMaster", 0, 32); packet.ReadSkip(6); var count = packet.Read<int>(0, 4); for (var i = 0; i < count; ++i) packet.Read<uint>("Handle", 0, 32, "Update", "HandlesCleared", i); count = packet.Read<int>(0, 4); var varSizes = new Queue<ushort>(); for (var i = 0; i < count; ++i) varSizes.Enqueue(packet.Read<ushort>(0, 16)); count = packet.Read<int>(0, 4); var handles = new List<uint>(); for (var i = 0; i < count; ++i) handles.Add(packet.Read<uint>(0, 32)); var data = packet.ReadBytes(packet.Read<int>(0, 11)); HandleUpdateNotifyFields(packet.Stream, handles, data, varSizes); if (packet.ReadBoolean()) { packet.Read<uint>("Target", 0, 32, "Level0"); packet.ReadBoolean("IsLastPacket", "Level0"); } packet.ReadBoolean("ServerOnly"); packet.Read<byte>("Online", 0, 8); packet.Read<uint>("IdLocal", 0, 32); }
public static void HandleJoinRequestV2(BattlenetPacket packet) { packet.Read<uint>("ClientSalt", 0, 32); packet.ReadSkip(20); packet.Read<byte>("Region", 0, 8); packet.ReadSkip(12); packet.Read<byte>("Site", 0, 8); packet.Read<uint>("Realm", 0, 32); }
public static void HandleSettingsAvailable(BattlenetPacket packet) { packet.ReadSkip(5); packet.ReadByteArray("Path", 0, 6); packet.ReadSkip(21); packet.Read <ulong>("Id", 0, 64, "Address"); packet.Read <uint>("Label", 0, 32, "Address"); packet.Read <SettingsType>("Type", 1, 2); }
public static void HandleJoinRequestV2(BattlenetPacket packet) { packet.Read <uint>("ClientSalt", 0, 32); packet.ReadSkip(20); packet.Read <byte>("Region", 0, 8); packet.ReadSkip(12); packet.Read <byte>("Site", 0, 8); packet.Read <uint>("Realm", 0, 32); }
public static void HandleUpdateNotify(BattlenetPacket packet) { packet.ReadSkip(6); packet.Read <uint>("IdMaster", 0, 32); packet.ReadSkip(6); var count = packet.Read <int>(0, 4); for (var i = 0; i < count; ++i) { packet.Read <uint>("Handle", 0, 32, "Update", "HandlesCleared", i); } count = packet.Read <int>(0, 4); var varSizes = new Queue <ushort>(); for (var i = 0; i < count; ++i) { varSizes.Enqueue(packet.Read <ushort>(0, 16)); } count = packet.Read <int>(0, 4); var handles = new List <uint>(); for (var i = 0; i < count; ++i) { handles.Add(packet.Read <uint>(0, 32)); } var data = packet.ReadBytes(packet.Read <int>(0, 11)); HandleUpdateNotifyFields(packet.Stream, handles, data, varSizes); if (packet.ReadBoolean()) { packet.Read <uint>("Target", 0, 32, "Level0"); packet.ReadBoolean("IsLastPacket", "Level0"); } packet.ReadBoolean("ServerOnly"); packet.Read <byte>("Online", 0, 8); packet.Read <uint>("IdLocal", 0, 32); }
public static void HandleReadRequest(BattlenetPacket packet) { packet.ReadSkip(21); packet.Read<ulong>("Id", 0, 64, "RecordAddress"); packet.Read<uint>("Label", 0, 32, "RecordAddress"); packet.Read<uint>("RequestId", 0, 32); if (packet.ReadBoolean()) { var profiles = packet.Read<int>(0, 4); for (var i = 0; i < profiles; ++i) packet.Read<ulong>("ProfileId", 0, 64, "Specification", "Reader"); } var selection = packet.Read<int>(0, 3); switch (selection) { case 0: packet.ReadByteArray("PrefixPath", 0, 6, "All"); break; case 1: packet.ReadByteArray("PrefixPath", 0, 6, "Slice"); if (packet.ReadBoolean()) packet.Read<ulong>("SliceStart", long.MinValue, 64, "Slice"); if (packet.ReadBoolean()) packet.Read<ulong>("SliceEnd", long.MinValue, 64, "Slice"); if (packet.ReadBoolean()) packet.Read<uint>("RowLimit", 0, 32, "Slice"); if (packet.ReadBoolean()) packet.ReadBoolean("SingleDepth", "Slice"); break; case 2: packet.ReadByteArray("PrefixPath", 0, 6, "Random"); var indices = packet.Read<int>(0, 7); for (var i = 0; i < indices; ++i) packet.Read<ulong>("Index", 0, 64, "Random", "Indices"); break; case 3: var paths = packet.Read<int>(0, 5); for (var i = 0; i < paths; ++i) packet.ReadByteArray("PrefixPath", 0, 6, "MultiPath", "Paths"); break; case 4: packet.ReadByteArray("PrefixPath", 0, 6, "Range"); if (packet.ReadBoolean()) packet.Read<ulong>("RangeStart", long.MinValue, 64, "Range"); if (packet.ReadBoolean()) packet.Read<ulong>("RangeEnd", long.MinValue, 64, "Range"); if (packet.ReadBoolean()) packet.Read<uint>("RowLimit", 0, 32, "Range"); if (packet.ReadBoolean()) packet.ReadBoolean("SingleDepth", "Range"); break; } }
public static void HandleToonReady(BattlenetPacket packet) { packet.Read <byte>("Region", 0, 8, "Name"); packet.ReadFourCC("ProgramId", "Name"); packet.Read <uint>("Realm", 0, 32, "Name"); packet.ReadString("Name", 2, 7, "Name"); packet.ReadSkip(21); packet.Read <ulong>("Id", 0, 64, "ProfileAddress"); packet.Read <uint>("Label", 0, 32, "ProfileAddress"); packet.Read <ulong>("Id", 0, 64, "Handle"); packet.Read <uint>("Realm", 0, 32, "Handle"); packet.Read <byte>("Region", 0, 8, "Handle"); packet.ReadFourCC("ProgramId", "Handle"); }
public static void HandleGetStreamItemsResponse(BattlenetPacket packet) { packet.Read<ushort>("Offset", 0, 16); packet.Read<ushort>("TotalNumItems", 0, 16); packet.Read<uint>("Token", 0, 32); var items = packet.Read<byte>(0, 6); for (var i = 0; i < items; ++i) { packet.ReadFixedLengthString("Type", 4, "Items", i); packet.ReadFourCC("Region", "Items", i); packet.ReadBytes("ModuleId", 32, "Items", i); packet.ReadSkip(27); packet.Read<uint>("PublicationTime", 0, 32, "Items", i); } }
public static void HandleGetStreamItemsResponse(BattlenetPacket packet) { packet.Read <ushort>("Offset", 0, 16); packet.Read <ushort>("TotalNumItems", 0, 16); packet.Read <uint>("Token", 0, 32); var items = packet.Read <byte>(0, 6); for (var i = 0; i < items; ++i) { packet.ReadFixedLengthString("Type", 4, "Items", i); packet.ReadFourCC("Region", "Items", i); packet.ReadBytes("ModuleId", 32, "Items", i); packet.ReadSkip(27); packet.Read <uint>("PublicationTime", 0, 32, "Items", i); } }
public static void HandleGetStreamItemsRequest(BattlenetPacket packet) { packet.ReadSkip(31); packet.Read<uint>("Token", 0, 32); packet.Read<uint>("ReferenceTime", int.MinValue, 32); packet.Read<StreamDirection>("Direction", 0, 1); packet.Read<byte>("MaxItems", 0, 6); packet.ReadFourCC("Locale"); if (packet.ReadBoolean()) { packet.ReadFourCC("ItemName"); packet.ReadFourCC("Channel"); } else packet.Read<ushort>("Index", 0, 16); }
public static void HandleGetStreamItemsRequest(BattlenetPacket packet) { packet.ReadSkip(31); packet.Read <uint>("Token", 0, 32); packet.Read <uint>("ReferenceTime", int.MinValue, 32); packet.Read <StreamDirection>("Direction", 0, 1); packet.Read <byte>("MaxItems", 0, 6); packet.ReadFourCC("Locale"); if (packet.ReadBoolean()) { packet.ReadFourCC("ItemName"); packet.ReadFourCC("Channel"); } else { packet.Read <ushort>("Index", 0, 16); } }
public static void HandleListSubscribeResponse(BattlenetPacket packet) { if (packet.ReadBoolean()) { packet.Read<WowAuthResult>("Failure", 0, 8); return; } var charNumberCount = packet.Read<int>(0, 7); for (var i = 0; i < charNumberCount; ++i) { packet.Read<byte>("Region", 0, 8, "ToonCountEntry", i); packet.ReadSkip(12); packet.Read<byte>("Site", 0, 8, "ToonCountEntry", i); packet.Read<uint>("Realm", 0, 32, "ToonCountEntry", i); packet.Read<short>("Count", 0, 16, "ToonCountEntry", i); } }
public static void HandleListSubscribeResponse(BattlenetPacket packet) { if (packet.ReadBoolean()) { packet.Read <WowAuthResult>("Failure", 0, 8); return; } var charNumberCount = packet.Read <int>(0, 7); for (var i = 0; i < charNumberCount; ++i) { packet.Read <byte>("Region", 0, 8, "ToonCountEntry", i); packet.ReadSkip(12); packet.Read <byte>("Site", 0, 8, "ToonCountEntry", i); packet.Read <uint>("Realm", 0, 32, "ToonCountEntry", i); packet.Read <short>("Count", 0, 16, "ToonCountEntry", i); } }
public static void HandleToonReady(BattlenetPacket packet) { packet.Read<byte>("Region", 0, 8, "Name"); packet.ReadFourCC("ProgramId", "Name"); packet.Read<uint>("Realm", 0, 32, "Name"); packet.ReadString("Name", 2, 7, "Name"); packet.ReadSkip(21); packet.Read<ulong>("Id", 0, 64, "ProfileAddress"); packet.Read<uint>("Label", 0, 32, "ProfileAddress"); packet.Read<ulong>("Id", 0, 64, "Handle"); packet.Read<uint>("Realm", 0, 32, "Handle"); packet.Read<byte>("Region", 0, 8, "Handle"); packet.ReadFourCC("ProgramId", "Handle"); }
public static void HandleReadRequest(BattlenetPacket packet) { packet.ReadSkip(21); packet.Read <ulong>("Id", 0, 64, "RecordAddress"); packet.Read <uint>("Label", 0, 32, "RecordAddress"); packet.Read <uint>("RequestId", 0, 32); if (packet.ReadBoolean()) { var profiles = packet.Read <int>(0, 4); for (var i = 0; i < profiles; ++i) { packet.Read <ulong>("ProfileId", 0, 64, "Specification", "Reader"); } } var selection = packet.Read <int>(0, 3); switch (selection) { case 0: packet.ReadByteArray("PrefixPath", 0, 6, "All"); break; case 1: packet.ReadByteArray("PrefixPath", 0, 6, "Slice"); if (packet.ReadBoolean()) { packet.Read <ulong>("SliceStart", long.MinValue, 64, "Slice"); } if (packet.ReadBoolean()) { packet.Read <ulong>("SliceEnd", long.MinValue, 64, "Slice"); } if (packet.ReadBoolean()) { packet.Read <uint>("RowLimit", 0, 32, "Slice"); } if (packet.ReadBoolean()) { packet.ReadBoolean("SingleDepth", "Slice"); } break; case 2: packet.ReadByteArray("PrefixPath", 0, 6, "Random"); var indices = packet.Read <int>(0, 7); for (var i = 0; i < indices; ++i) { packet.Read <ulong>("Index", 0, 64, "Random", "Indices"); } break; case 3: var paths = packet.Read <int>(0, 5); for (var i = 0; i < paths; ++i) { packet.ReadByteArray("PrefixPath", 0, 6, "MultiPath", "Paths"); } break; case 4: packet.ReadByteArray("PrefixPath", 0, 6, "Range"); if (packet.ReadBoolean()) { packet.Read <ulong>("RangeStart", long.MinValue, 64, "Range"); } if (packet.ReadBoolean()) { packet.Read <ulong>("RangeEnd", long.MinValue, 64, "Range"); } if (packet.ReadBoolean()) { packet.Read <uint>("RowLimit", 0, 32, "Range"); } if (packet.ReadBoolean()) { packet.ReadBoolean("SingleDepth", "Range"); } break; } }
public static void HandleListUpdate(BattlenetPacket packet) { if (packet.ReadBoolean()) { packet.Read<uint>("Category", 0, 32); packet.ReadSingle("Population"); packet.Read<byte>("StateFlags", 0, 8); packet.ReadSkip(19); packet.Read<uint>("Type", int.MinValue, 32); packet.ReadString("Name", 0, 10); if (packet.ReadBoolean()) { packet.ReadString("Version", 0, 5, "PrivilegedData"); packet.Read<uint>("ConfigId", 0, 32, "PrivilegedData"); var ip = packet.ReadBytes(4); var port = packet.ReadBytes(2); Array.Reverse(port); packet.Stream.AddValue("Address", new IPEndPoint(new IPAddress(ip), BitConverter.ToUInt16(port, 0)), "PrivilegedData"); } packet.Read<RealmInfoFlags>("InfoFlags", 0, 8); } packet.Read<byte>("Region", 0, 8); packet.ReadSkip(12); packet.Read<byte>("Site", 0, 8); packet.Read<uint>("Realm", 0, 32); }
public static void HandleSettingsAvailable(BattlenetPacket packet) { packet.ReadSkip(5); packet.ReadByteArray("Path", 0, 6); packet.ReadSkip(21); packet.Read<ulong>("Id", 0, 64, "Address"); packet.Read<uint>("Label", 0, 32, "Address"); packet.Read<SettingsType>("Type", 1, 2); }