From ff86c23d9f3fed760461136de1ad986b80ad2d9d Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 00:50:20 +0100 Subject: [PATCH 01/40] Add V11_2_7_64978 --- WowPacketParser/Enums/ClientVersionBuild.cs | 1 + WowPacketParser/Enums/Version/Opcodes.cs | 2 ++ WowPacketParser/Enums/Version/UpdateFields.cs | 1 + WowPacketParser/Misc/ClientVersion.cs | 2 ++ 4 files changed, 6 insertions(+) diff --git a/WowPacketParser/Enums/ClientVersionBuild.cs b/WowPacketParser/Enums/ClientVersionBuild.cs index 9bbdc243c9..4939493ac8 100644 --- a/WowPacketParser/Enums/ClientVersionBuild.cs +++ b/WowPacketParser/Enums/ClientVersionBuild.cs @@ -650,6 +650,7 @@ public enum ClientVersionBuild V11_2_7_64772 = 64772, V11_2_7_64797 = 64797, V11_2_7_64877 = 64877, + V11_2_7_64978 = 64978, // Classic V1_13_2_31446 = 31446, diff --git a/WowPacketParser/Enums/Version/Opcodes.cs b/WowPacketParser/Enums/Version/Opcodes.cs index f481ded7b0..0afa63576f 100644 --- a/WowPacketParser/Enums/Version/Opcodes.cs +++ b/WowPacketParser/Enums/Version/Opcodes.cs @@ -833,6 +833,7 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build case ClientVersionBuild.V11_2_7_64797: return ClientVersionBuild.V11_2_7_64632; case ClientVersionBuild.V11_2_7_64877: + case ClientVersionBuild.V11_2_7_64978: return ClientVersionBuild.V11_2_7_64877; case ClientVersionBuild.V1_13_2_31446: case ClientVersionBuild.V1_13_2_31650: @@ -1360,6 +1361,7 @@ public static BiDictionary GetOpcodeDictionary(ClientVersionBuild b case ClientVersionBuild.V11_2_7_64632: return Opcodes_11_2_7.Opcodes(direction); case ClientVersionBuild.V11_2_7_64877: + case ClientVersionBuild.V11_2_7_64978: return Opcodes_11_2_7_64877.Opcodes(direction); case ClientVersionBuild.V1_13_2_31446: diff --git a/WowPacketParser/Enums/Version/UpdateFields.cs b/WowPacketParser/Enums/Version/UpdateFields.cs index 51b738151b..b71d666183 100644 --- a/WowPacketParser/Enums/Version/UpdateFields.cs +++ b/WowPacketParser/Enums/Version/UpdateFields.cs @@ -1008,6 +1008,7 @@ private static string GetUpdateFieldDictionaryBuildName(ClientVersionBuild build case ClientVersionBuild.V11_2_7_64772: case ClientVersionBuild.V11_2_7_64797: case ClientVersionBuild.V11_2_7_64877: + case ClientVersionBuild.V11_2_7_64978: { return "V11_2_7_64632"; } diff --git a/WowPacketParser/Misc/ClientVersion.cs b/WowPacketParser/Misc/ClientVersion.cs index 0e8ab21422..6db47fd0f9 100644 --- a/WowPacketParser/Misc/ClientVersion.cs +++ b/WowPacketParser/Misc/ClientVersion.cs @@ -655,6 +655,7 @@ public static class ClientVersion new KeyValuePair(ClientVersionBuild.V11_2_7_64772, new DateTime(2025, 12, 08)), new KeyValuePair(ClientVersionBuild.V11_2_7_64797, new DateTime(2025, 12, 10)), new KeyValuePair(ClientVersionBuild.V11_2_7_64877, new DateTime(2025, 12, 11)), + new KeyValuePair(ClientVersionBuild.V11_2_7_64978, new DateTime(2025, 12, 19)), // no classic info, pkt contain build in header }; @@ -1298,6 +1299,7 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil case ClientVersionBuild.V11_2_7_64772: case ClientVersionBuild.V11_2_7_64797: case ClientVersionBuild.V11_2_7_64877: + case ClientVersionBuild.V11_2_7_64978: return ClientVersionBuild.V11_0_0_55666; //Classic case ClientVersionBuild.V1_13_2_31446: From 988ead88da896267e7abadcd1e6119dc5c02598a Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 14 Dec 2025 21:15:30 +0100 Subject: [PATCH 02/40] Add housing handler parser for editor mode active --- WowPacketParser/Enums/Opcode.cs | 1 + .../Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Parsers/HousingHandler.cs | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 756ae01b0a..2464bc1b4b 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2473,6 +2473,7 @@ public enum Opcode SMSG_HARDCORE_DEATH_ALERT, SMSG_HEALTH_UPDATE, SMSG_HIGHEST_THREAT_UPDATE, + SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 3b346022f9..8fb3bf7b0a 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1535,6 +1535,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HARDCORE_DEATH_ALERT, 0x40034A }, { Opcode.SMSG_HEALTH_UPDATE, 0x400174 }, { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, + { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs new file mode 100644 index 0000000000..00ed797741 --- /dev/null +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -0,0 +1,20 @@ +using WowPacketParser.Enums; +using WowPacketParser.Misc; +using WowPacketParser.Parsing; + +namespace WowPacketParserModule.V11_0_0_55666.Parsers +{ + public static class HousingHandler + { + [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] + public static void HandleDecorSetEditorModeActive(Packet packet) + { + packet.ReadBool("Active"); + } + + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] + public static void HandleHousingNull(Packet packet) + { + } + } +} From 291a21b1f51b776590d124339a3f769175c0193d Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 14 Dec 2025 21:21:32 +0100 Subject: [PATCH 03/40] Add parsing for CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE and CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE --- .../Parsers/HousingHandler.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 00ed797741..ae087ee83e 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -5,9 +5,11 @@ namespace WowPacketParserModule.V11_0_0_55666.Parsers { public static class HousingHandler - { + { [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] - public static void HandleDecorSetEditorModeActive(Packet packet) + [Parser(Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE)] + [Parser(Opcode.CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE)] + public static void HandleHousingSetEditorModeActive(Packet packet) { packet.ReadBool("Active"); } From 3c77b8644d91f37d886c1ab69fa1550b1c300784 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 14 Dec 2025 21:58:05 +0100 Subject: [PATCH 04/40] Add SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE --- WowPacketParser/Enums/HousingResult.cs | 82 +++++++++++++++++++ WowPacketParser/Enums/Opcode.cs | 1 + .../Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Parsers/HousingHandler.cs | 11 +++ 4 files changed, 95 insertions(+) create mode 100644 WowPacketParser/Enums/HousingResult.cs diff --git a/WowPacketParser/Enums/HousingResult.cs b/WowPacketParser/Enums/HousingResult.cs new file mode 100644 index 0000000000..e364c8b3a2 --- /dev/null +++ b/WowPacketParser/Enums/HousingResult.cs @@ -0,0 +1,82 @@ +namespace WowPacketParser.Enums +{ + public enum HousingResult : byte + { + Success = 0, + ActionLockedByCombat = 1, + CannotAfford = 2, + CharterComplete = 3, + CollisionInvalid = 4, + DbError = 5, + DecorCannotBeRedeemed = 6, + DecorItemNotDestroyable = 7, + DecorNotFound = 8, + DecorNotFoundInStorage = 9, + DuplicateCharterSignature = 10, + FilterRejected = 11, + FixtureCantDeleteDoor = 12, + FixtureHookEmpty = 13, + FixtureHookOccupied = 14, + FixtureHouseTypeMismatch = 15, + FixtureNotFound = 16, + FixtureNotOwned = 17, + FixtureSizeMismatch = 18, + FixtureTypeMismatch = 19, + GenericFailure = 20, + GuildMoreAccountsNeeded = 21, + GuildMoreActivePlayersNeeded = 22, + GuildNotLoaded = 23, + HouseEditLockFailed = 24, + HouseExteriorRootNotFound = 25, + HookNotChildOfFixture = 26, + HouseNotFound = 27, + IncorrectFaction = 28, + InvalidDecorItem = 29, + InvalidDistance = 30, + InvalidGuild = 31, + InvalidHouse = 32, + InvalidInstance = 33, + InvalidInteraction = 34, + InvalidMap = 35, + InvalidNeighborhoodName = 36, + InvalidRoomLayout = 37, + LockedByOtherPlayer = 38, + LockOperationFailed = 39, + MaxDecorReached = 40, + MissingCoreFixture = 41, + MissingDye = 42, + MissingExpansionAccess = 43, + MissingFactionMap = 44, + MissingPrivateNeighborhoodInvite = 45, + MissingTheme = 46, + MoreHouseSlotsNeeded = 47, + MoreSignaturesNeeded = 48, + NeighborhoodNotFound = 49, + NotInDecorEditMode = 50, + NoNeighborhoodOwnershipRequests = 51, + NotInFixtureEditMode = 52, + NotInLayoutEditMode = 53, + NotInsideHouse = 54, + NotOnOwnedPlot = 55, + OperationAborted = 56, + PermissionDenied = 57, + PlacementTargetInvalid = 58, + PlayerNotFound = 59, + PlayerNotInInstance = 60, + PlotNotFound = 61, + PlotNotVacant = 62, + PlotReservationCooldown = 63, + PlotReserved = 64, + RoomNotFound = 65, + RoomUpdateFailed = 66, + RpcFailure = 67, + ServiceNotAvailable = 68, + StaticDataNotFound = 69, + TimeoutLimit = 70, + TimerunningNotAllowed = 71, + TokenRequired = 72, + TooManyRequests = 73, + TransactionFailure = 74, + UnlockOperationFailed = 75 + } +} diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 2464bc1b4b..0a4b70bc9c 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2474,6 +2474,7 @@ public enum Opcode SMSG_HEALTH_UPDATE, SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, + SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 8fb3bf7b0a..d4c9652d25 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1536,6 +1536,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HEALTH_UPDATE, 0x400174 }, { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, + { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index ae087ee83e..cd8eabdd14 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -14,6 +14,17 @@ public static void HandleHousingSetEditorModeActive(Packet packet) packet.ReadBool("Active"); } + [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) + { + packet.ReadPackedGuid128("BNetAccountGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); + packet.ReadByteE("Result"); + + for (var i = 0; i < allowedEditorCount; ++i) + packet.ReadPackedGuid128("AllowedEditor", i); + } [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From bc08e7436090d489e645fcc9a99e5bb253ea3171 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 14 Dec 2025 22:55:16 +0100 Subject: [PATCH 05/40] Add parser for SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE --- WowPacketParser/Enums/Opcode.cs | 3 ++ .../Enums/Version/V11_2_7_64632/Opcodes.cs | 3 ++ .../Parsers/HousingHandler.cs | 28 ++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 0a4b70bc9c..b2457b1036 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2475,6 +2475,9 @@ public enum Opcode SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, + SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, + SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, + SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index d4c9652d25..1bc9689371 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1537,6 +1537,9 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, + { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, + { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, + { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index cd8eabdd14..f725b35391 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -17,14 +17,40 @@ public static void HandleHousingSetEditorModeActive(Packet packet) [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) { + packet.ReadPackedGuid128("HouseGUID"); packet.ReadPackedGuid128("BNetAccountGUID"); - packet.ReadPackedGuid128("PlayerGUID"); var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); packet.ReadByteE("Result"); for (var i = 0; i < allowedEditorCount; ++i) packet.ReadPackedGuid128("AllowedEditor", i); } + + [Parser(Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingFixtureSetEditorModeActiveResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("BNetAccountGUID"); + packet.ReadByteE("Result"); + } + + [Parser(Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadByteE("Result"); + packet.ReadBit("Unk"); + } + + [Parser(Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE)] + public static void HandleHousingExteriorLockHouseExterior(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadByteE("Result"); + packet.ReadBit("IsLocked"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From e9d83621e64690c57d12071ee7595b2ab4a98820 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 14 Dec 2025 23:00:26 +0100 Subject: [PATCH 06/40] Reanme unk to active in HandleHousingRoomSetEditorModeActiveResponse --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index f725b35391..9b81113a28 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -39,7 +39,7 @@ public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) { packet.ReadPackedGuid128("HouseGUID"); packet.ReadByteE("Result"); - packet.ReadBit("Unk"); + packet.ReadBool("Active"); } [Parser(Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE)] From 6c5ad67a7da3b2ebdee5fb2afd628770d049b7ce Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 00:10:10 +0100 Subject: [PATCH 07/40] Add unfinished SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE parser --- .../Parsers/HousingHandler.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 9b81113a28..0a405cec49 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -51,6 +51,18 @@ public static void HandleHousingExteriorLockHouseExterior(Packet packet) packet.ReadBit("IsLocked"); } + [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] + public static void HandleHousingCurrentHouseInfoResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadPackedGuid128("NeighborhoodGUID"); + packet.ReadUInt32("Unk0"); + packet.ReadByte("Unk1"); + packet.ReadByte("Unk2"); + packet.ReadByte("Unk3"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From f2a8e6f129d59cca97c05aa79df3650a74171f8e Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 00:42:03 +0100 Subject: [PATCH 08/40] Add CMSG_HOUSING_ROOM_REMOVE_ROOM and SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE --- WowPacketParser/Enums/Opcode.cs | 1 + .../Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Parsers/HousingHandler.cs | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index b2457b1036..1e5a9a8b51 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2477,6 +2477,7 @@ public enum Opcode SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, + SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 1bc9689371..3ddee3dae0 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1539,6 +1539,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, + { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 0a405cec49..6975ba8f30 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -63,6 +63,20 @@ public static void HandleHousingCurrentHouseInfoResponse(Packet packet) packet.ReadByte("Unk3"); } + [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] + public static void HandleHousingRemoveRoom(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + } + + [Parser(Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE)] + public static void HandleHousingRemoveRoomResponse(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadByteE("Result"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 217910ca10fb4976e92b9d93afc782888ecd403d Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 01:33:50 +0100 Subject: [PATCH 09/40] Add CMSG_HOUSING_DECOR_SELECT_DECOR --- .../Parsers/HousingHandler.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 6975ba8f30..591ee52def 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -77,6 +77,13 @@ public static void HandleHousingRemoveRoomResponse(Packet packet) packet.ReadByteE("Result"); } + [Parser(Opcode.CMSG_HOUSING_DECOR_SELECT_DECOR)] + public static void HousingDecorSelect(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + packet.ReadBool("Selected"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 1c96a65734738840a45021d5b290b20e46fbae46 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 01:45:18 +0100 Subject: [PATCH 10/40] Add CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR --- .../Parsers/HousingHandler.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 591ee52def..2220d1c97b 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -84,6 +84,13 @@ public static void HousingDecorSelect(Packet packet) packet.ReadBool("Selected"); } + [Parser(Opcode.CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR)] + public static void HousingDecorStartPlacing(Packet packet) + { + packet.ReadUInt32("DecorID"); + packet.ReadUInt32("Field_4"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 60d7c6040107d698cf3f53e006302837abf18463 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 01:47:07 +0100 Subject: [PATCH 11/40] Add CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY --- .../Parsers/HousingHandler.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 2220d1c97b..b3145bdcc2 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -91,6 +91,12 @@ public static void HousingDecorStartPlacing(Packet packet) packet.ReadUInt32("Field_4"); } + [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] + public static void HousingDecorRemovePlacedEntry(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 7a5e73113fc090ac701460183569bcc1206e0d50 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 02:00:42 +0100 Subject: [PATCH 12/40] Add CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR --- .../Parsers/HousingHandler.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index b3145bdcc2..203f062f92 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -97,6 +97,16 @@ public static void HousingDecorRemovePlacedEntry(Packet packet) packet.ReadPackedGuid128("DecorGUID"); } + [Parser(Opcode.CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR)] + public static void HousingDecorCommitDyesForSelection(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + for (var i = 0; i < 3; ++i) + { + packet.ReadInt32("DyeColorID", i); + } + } + [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 9aa3d0329d6b4df48bb7bb7929313b02fc84c16f Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 02:08:45 +0100 Subject: [PATCH 13/40] Add CMSG_HOUSE_INTERIOR_LEAVE_HOUSE --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 203f062f92..ff4b84a4c7 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -107,6 +107,7 @@ public static void HousingDecorCommitDyesForSelection(Packet packet) } } + [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 6d864d14e18359af3aeebf9d4674956e46f9195f Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 02:09:58 +0100 Subject: [PATCH 14/40] Add CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index ff4b84a4c7..4953465db1 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -108,6 +108,7 @@ public static void HousingDecorCommitDyesForSelection(Packet packet) } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] + [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] public static void HandleHousingNull(Packet packet) { From 330353184c33cc46cc4574441c118d807b68405f Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 02:35:26 +0100 Subject: [PATCH 15/40] Add room rotate and update response --- WowPacketParser/Enums/Opcode.cs | 2 + .../Enums/Version/V11_2_7_64632/Opcodes.cs | 2 + .../Parsers/HousingHandler.cs | 114 ++++++++++-------- 3 files changed, 68 insertions(+), 50 deletions(-) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 1e5a9a8b51..8cfdf3d309 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2474,11 +2474,13 @@ public enum Opcode SMSG_HEALTH_UPDATE, SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, + SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, + SMSG_HOUSING_ROOM_UPDATE_RESULT, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 3ddee3dae0..efa8de873e 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1536,11 +1536,13 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HEALTH_UPDATE, 0x400174 }, { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, + { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, + { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 4953465db1..3685d1c1b7 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -6,26 +6,6 @@ namespace WowPacketParserModule.V11_0_0_55666.Parsers { public static class HousingHandler { - [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] - [Parser(Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE)] - [Parser(Opcode.CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE)] - public static void HandleHousingSetEditorModeActive(Packet packet) - { - packet.ReadBool("Active"); - } - - [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] - public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) - { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("BNetAccountGUID"); - var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); - packet.ReadByteE("Result"); - - for (var i = 0; i < allowedEditorCount; ++i) - packet.ReadPackedGuid128("AllowedEditor", i); - } - [Parser(Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE)] public static void HandleHousingFixtureSetEditorModeActiveResponse(Packet packet) { @@ -33,14 +13,6 @@ public static void HandleHousingFixtureSetEditorModeActiveResponse(Packet packet packet.ReadPackedGuid128("BNetAccountGUID"); packet.ReadByteE("Result"); } - - [Parser(Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE)] - public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) - { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadByteE("Result"); - packet.ReadBool("Active"); - } [Parser(Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE)] public static void HandleHousingExteriorLockHouseExterior(Packet packet) @@ -50,31 +22,17 @@ public static void HandleHousingExteriorLockHouseExterior(Packet packet) packet.ReadByteE("Result"); packet.ReadBit("IsLocked"); } - - [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] - public static void HandleHousingCurrentHouseInfoResponse(Packet packet) + + [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) { packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("PlayerGUID"); - packet.ReadPackedGuid128("NeighborhoodGUID"); - packet.ReadUInt32("Unk0"); - packet.ReadByte("Unk1"); - packet.ReadByte("Unk2"); - packet.ReadByte("Unk3"); - } - - [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] - public static void HandleHousingRemoveRoom(Packet packet) - { - packet.ReadPackedGuid128("RoomGUID"); - } - - [Parser(Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE)] - public static void HandleHousingRemoveRoomResponse(Packet packet) - { - packet.ReadPackedGuid128("RoomGUID"); - packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadPackedGuid128("BNetAccountGUID"); + var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); packet.ReadByteE("Result"); + + for (var i = 0; i < allowedEditorCount; ++i) + packet.ReadPackedGuid128("AllowedEditor", i); } [Parser(Opcode.CMSG_HOUSING_DECOR_SELECT_DECOR)] @@ -106,6 +64,62 @@ public static void HousingDecorCommitDyesForSelection(Packet packet) packet.ReadInt32("DyeColorID", i); } } + + [Parser(Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadByteE("Result"); + packet.ReadBool("Active"); + } + + [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] + public static void HandleHousingRoomRemove(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + } + + [Parser(Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE)] + public static void HandleHousingRoomRemoveResponse(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadByteE("Result"); + } + + [Parser(Opcode.CMSG_HOUSING_ROOM_ROTATE_ROOM)] + public static void HousingRoomRotate(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadBool("IsLeft"); + } + + [Parser(Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT)] + public static void HousingRoomUpdateResult(Packet packet) + { + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadByteE("Result"); + } + + [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] + [Parser(Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE)] + [Parser(Opcode.CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE)] + public static void HandleHousingSetEditorModeActive(Packet packet) + { + packet.ReadBool("Active"); + } + + [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] + public static void HandleHousingCurrentHouseInfoResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadPackedGuid128("NeighborhoodGUID"); + packet.ReadUInt32("Unk0"); + packet.ReadByte("Unk1"); + packet.ReadByte("Unk2"); + packet.ReadByte("Unk3"); + } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] From 71987a2f93d580189689369c7f95ca2ad452592e Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 15 Dec 2025 02:58:23 +0100 Subject: [PATCH 16/40] Add CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER --- .../Parsers/HousingHandler.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 3685d1c1b7..19542461f7 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -35,6 +35,12 @@ public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) packet.ReadPackedGuid128("AllowedEditor", i); } + [Parser(Opcode.CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER)] + public static void HousingDecorCatalogCreateSearcher(Packet packet) + { + packet.ReadPackedGuid128("BnetAccountID"); + } + [Parser(Opcode.CMSG_HOUSING_DECOR_SELECT_DECOR)] public static void HousingDecorSelect(Packet packet) { From 49d4e71854c5578807ea7c93c8ac3f9cbba9214c Mon Sep 17 00:00:00 2001 From: Luzifix Date: Wed, 17 Dec 2025 23:23:59 +0100 Subject: [PATCH 17/40] Add SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE --- WowPacketParser/Enums/Opcode.cs | 1 + WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Parsers/HousingHandler.cs | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 8cfdf3d309..836c956581 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2474,6 +2474,7 @@ public enum Opcode SMSG_HEALTH_UPDATE, SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, + SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index efa8de873e..117f11f9ee 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1536,6 +1536,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HEALTH_UPDATE, 0x400174 }, { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, + { Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, 0x4F0006 }, { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 19542461f7..f817995f61 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -41,6 +41,13 @@ public static void HousingDecorCatalogCreateSearcher(Packet packet) packet.ReadPackedGuid128("BnetAccountID"); } + [Parser(Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE)] + public static void HousingDecorCatalogCreateSearcherResponse(Packet packet) + { + packet.ReadPackedGuid128("BnetAccountID"); + packet.ReadByteE("Result"); + } + [Parser(Opcode.CMSG_HOUSING_DECOR_SELECT_DECOR)] public static void HousingDecorSelect(Packet packet) { From 56c238a283c1ecb8d6d75c8a076168db4aec2cac Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 00:00:25 +0100 Subject: [PATCH 18/40] Add opcode for SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE --- WowPacketParser/Enums/Opcode.cs | 1 + WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 836c956581..173decb4f4 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2482,6 +2482,7 @@ public enum Opcode SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_ROOM_UPDATE_RESULT, + SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 117f11f9ee..f8f5fddf38 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1544,6 +1544,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, + { Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000C }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, From eb1c81ed4f4fe9410077d5eb84be56ab444cceb0 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 20:18:47 +0100 Subject: [PATCH 19/40] Fix SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE struct --- .../Parsers/HousingHandler.cs | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index f817995f61..44b67a2f47 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -125,13 +125,9 @@ public static void HandleHousingSetEditorModeActive(Packet packet) [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] public static void HandleHousingCurrentHouseInfoResponse(Packet packet) { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("PlayerGUID"); - packet.ReadPackedGuid128("NeighborhoodGUID"); - packet.ReadUInt32("Unk0"); - packet.ReadByte("Unk1"); - packet.ReadByte("Unk2"); - packet.ReadByte("Unk3"); + ReadHouse(packet, "House"); + packet.ReadByteE("Result"); + } } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] @@ -140,5 +136,20 @@ public static void HandleHousingCurrentHouseInfoResponse(Packet packet) public static void HandleHousingNull(Packet packet) { } + + private static void ReadHouse(Packet packet, params object[] indexes) + { + packet.ResetBitReader(); + packet.ReadPackedGuid128("HouseGUID", indexes); + packet.ReadPackedGuid128("OwnerGUID", indexes); + packet.ReadPackedGuid128("NeighborhoodGUID", indexes); + + packet.ReadByte("PlotID", indexes); + packet.ReadInt32("AccessFlags", indexes); + + var hasMoveOutTime = packet.ReadBit("HasMoveOutTime", indexes); + if (hasMoveOutTime) + packet.ReadTime64("MoveOutTime", indexes); + } } } From a9b6ab68eab6f350ca15c2c2b13c00cd90c1bc3e Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 20:33:02 +0100 Subject: [PATCH 20/40] Add parser for SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE --- .../Parsers/HousingHandler.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 44b67a2f47..3189bf809f 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -128,6 +128,16 @@ public static void HandleHousingCurrentHouseInfoResponse(Packet packet) ReadHouse(packet, "House"); packet.ReadByteE("Result"); } + + [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE)] + public static void HandleHousingServiceGetPlayerOwnedHousesResponse(Packet packet) + { + var count = packet.ReadUInt32("Count"); + for (uint i = 0; i < count; i++) + { + packet.ReadBit("UnknownBit", i); + ReadHouse(packet, i); + } } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] From 0ab5a9d7934920aab4fa509b5b3571743f2ded97 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 20:39:39 +0100 Subject: [PATCH 21/40] Add CMSG_QUERY_NEIGHBORHOOD_INFO parser --- .../Parsers/HousingHandler.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 3189bf809f..65c3f8d80a 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -140,6 +140,13 @@ public static void HandleHousingServiceGetPlayerOwnedHousesResponse(Packet packe } } + + [Parser(Opcode.CMSG_QUERY_NEIGHBORHOOD_INFO)] + public static void HandleQueryNeighborhoodInfo(Packet packet) + { + packet.ReadPackedGuid128("NeighborhoodGUID"); + } + [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] From 5f544a85721f837857f76e7de11c75243cf12d80 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 20:43:33 +0100 Subject: [PATCH 22/40] Add CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES and SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE parser --- WowPacketParser/Enums/Opcode.cs | 1 + WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Parsers/HousingHandler.cs | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 173decb4f4..d738e426b0 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2482,6 +2482,7 @@ public enum Opcode SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_ROOM_UPDATE_RESULT, + SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index f8f5fddf38..85bba9a7e3 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1544,6 +1544,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, + { Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000D }, { Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000C }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 65c3f8d80a..714e5d3af7 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -129,8 +129,15 @@ public static void HandleHousingCurrentHouseInfoResponse(Packet packet) packet.ReadByteE("Result"); } + [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES)] + public static void HandleHousingServiceGetOthersPlayerOwnedHouses(Packet packet) + { + packet.ReadPackedGuid128("PlayerGUID"); + } + [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE)] - public static void HandleHousingServiceGetPlayerOwnedHousesResponse(Packet packet) + [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE)] + public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) { var count = packet.ReadUInt32("Count"); for (uint i = 0; i < count; i++) From 857ae6384180d067079f382a59c7345f05720502 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 21:06:31 +0100 Subject: [PATCH 23/40] Add SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE parser --- .../Parsers/HousingHandler.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 714e5d3af7..ff9905da68 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -146,13 +146,20 @@ public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) ReadHouse(packet, i); } } - [Parser(Opcode.CMSG_QUERY_NEIGHBORHOOD_INFO)] public static void HandleQueryNeighborhoodInfo(Packet packet) { packet.ReadPackedGuid128("NeighborhoodGUID"); } + + [Parser(Opcode.SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE)] + public static void HandleQueryNeighborhoodNameResponse(Packet packet) + { + packet.ReadPackedGuid128("NeighborhoodGUID"); + var nameLen = packet.ReadBits(10); + packet.ReadWoWString("NeighborhoodName", nameLen); + } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] From fec7757324e22fcf5545bbd2bf21d79fac9b36e3 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 21:30:59 +0100 Subject: [PATCH 24/40] Add parser for CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_NEIGHBORHOODS, CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE, SMSG_INVALIDATE_NEIGHBORHOOD_NAME, CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS --- .../Parsers/HousingHandler.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index ff9905da68..1c3ad74b9d 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -146,7 +146,19 @@ public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) ReadHouse(packet, i); } } + + [Parser(Opcode.CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS)] + public static void HandleHousingServiceSearchBnetFriendNeighborhoods(Packet packet) + { + packet.ReadPackedGuid128("BNetAccountGUID"); + } + [Parser(Opcode.SMSG_INVALIDATE_NEIGHBORHOOD_NAME)] + public static void HandleInvalidateNeighborhoodName(Packet packet) + { + packet.ReadPackedGuid128("NeighborhoodGUID"); + } + [Parser(Opcode.CMSG_QUERY_NEIGHBORHOOD_INFO)] public static void HandleQueryNeighborhoodInfo(Packet packet) { @@ -160,10 +172,18 @@ public static void HandleQueryNeighborhoodNameResponse(Packet packet) var nameLen = packet.ReadBits(10); packet.ReadWoWString("NeighborhoodName", nameLen); } + + [Parser(Opcode.CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE)] + public static void HandleNeighborhoodInteractWithCornerstone(Packet packet) + { + packet.ReadUInt32("PlotID"); + packet.ReadPackedGuid128("CornerstoneGUID"); + } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] + [Parser(Opcode.CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_NEIGHBORHOODS)] public static void HandleHousingNull(Packet packet) { } From 5b2d1d6c1c162827e35eb42ac833909e64e6a79a Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 22:29:47 +0100 Subject: [PATCH 25/40] Sort housing handler --- .../Parsers/HousingHandler.cs | 183 +++++++++--------- 1 file changed, 92 insertions(+), 91 deletions(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 1c3ad74b9d..80fdb5b242 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -5,35 +5,7 @@ namespace WowPacketParserModule.V11_0_0_55666.Parsers { public static class HousingHandler - { - [Parser(Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE)] - public static void HandleHousingFixtureSetEditorModeActiveResponse(Packet packet) - { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("BNetAccountGUID"); - packet.ReadByteE("Result"); - } - - [Parser(Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE)] - public static void HandleHousingExteriorLockHouseExterior(Packet packet) - { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("PlayerGUID"); - packet.ReadByteE("Result"); - packet.ReadBit("IsLocked"); - } - - [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] - public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) - { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadPackedGuid128("BNetAccountGUID"); - var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); - packet.ReadByteE("Result"); - - for (var i = 0; i < allowedEditorCount; ++i) - packet.ReadPackedGuid128("AllowedEditor", i); - } + { [Parser(Opcode.CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER)] public static void HousingDecorCatalogCreateSearcher(Packet packet) @@ -41,13 +13,22 @@ public static void HousingDecorCatalogCreateSearcher(Packet packet) packet.ReadPackedGuid128("BnetAccountID"); } - [Parser(Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE)] - public static void HousingDecorCatalogCreateSearcherResponse(Packet packet) + [Parser(Opcode.CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR)] + public static void HousingDecorCommitDyesForSelection(Packet packet) { - packet.ReadPackedGuid128("BnetAccountID"); - packet.ReadByteE("Result"); + packet.ReadPackedGuid128("DecorGUID"); + for (var i = 0; i < 3; ++i) + { + packet.ReadInt32("DyeColorID", i); + } } + [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] + public static void HousingDecorRemovePlacedEntry(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + } + [Parser(Opcode.CMSG_HOUSING_DECOR_SELECT_DECOR)] public static void HousingDecorSelect(Packet packet) { @@ -62,81 +43,112 @@ public static void HousingDecorStartPlacing(Packet packet) packet.ReadUInt32("Field_4"); } - [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] - public static void HousingDecorRemovePlacedEntry(Packet packet) + [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] + public static void HandleHousingRoomRemove(Packet packet) { - packet.ReadPackedGuid128("DecorGUID"); + packet.ReadPackedGuid128("RoomGUID"); } - [Parser(Opcode.CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR)] - public static void HousingDecorCommitDyesForSelection(Packet packet) + [Parser(Opcode.CMSG_HOUSING_ROOM_ROTATE_ROOM)] + public static void HousingRoomRotate(Packet packet) { - packet.ReadPackedGuid128("DecorGUID"); - for (var i = 0; i < 3; ++i) - { - packet.ReadInt32("DyeColorID", i); - } + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadBool("IsLeft"); + } + + [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES)] + public static void HandleHousingServiceGetOthersPlayerOwnedHouses(Packet packet) + { + packet.ReadPackedGuid128("PlayerGUID"); + } + + [Parser(Opcode.CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS)] + public static void HandleHousingServiceSearchBnetFriendNeighborhoods(Packet packet) + { + packet.ReadPackedGuid128("BNetAccountGUID"); } - [Parser(Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE)] - public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) + [Parser(Opcode.CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE)] + public static void HandleNeighborhoodInteractWithCornerstone(Packet packet) { - packet.ReadPackedGuid128("HouseGUID"); - packet.ReadByteE("Result"); - packet.ReadBool("Active"); + packet.ReadUInt32("PlotID"); + packet.ReadPackedGuid128("CornerstoneGUID"); } - [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] - public static void HandleHousingRoomRemove(Packet packet) + [Parser(Opcode.CMSG_QUERY_NEIGHBORHOOD_INFO)] + public static void HandleQueryNeighborhoodInfo(Packet packet) { - packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("NeighborhoodGUID"); } - [Parser(Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE)] - public static void HandleHousingRoomRemoveResponse(Packet packet) + [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] + public static void HandleHousingCurrentHouseInfoResponse(Packet packet) { - packet.ReadPackedGuid128("RoomGUID"); - packet.ReadPackedGuid128("PlayerGUID"); + ReadHouse(packet, "House"); packet.ReadByteE("Result"); } - [Parser(Opcode.CMSG_HOUSING_ROOM_ROTATE_ROOM)] - public static void HousingRoomRotate(Packet packet) + [Parser(Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE)] + public static void HousingDecorCatalogCreateSearcherResponse(Packet packet) { - packet.ReadPackedGuid128("RoomGUID"); - packet.ReadBool("IsLeft"); + packet.ReadPackedGuid128("BnetAccountID"); + packet.ReadByteE("Result"); } - [Parser(Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT)] - public static void HousingRoomUpdateResult(Packet packet) + [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) { - packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("BNetAccountGUID"); + var allowedEditorCount = packet.ReadUInt32("AllowedEditorCount"); + packet.ReadByteE("Result"); + + for (var i = 0; i < allowedEditorCount; ++i) + packet.ReadPackedGuid128("AllowedEditor", i); + } + + [Parser(Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE)] + public static void HandleHousingExteriorLockHouseExterior(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadByteE("Result"); + packet.ReadBit("IsLocked"); + } + + [Parser(Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingFixtureSetEditorModeActiveResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("BNetAccountGUID"); packet.ReadByteE("Result"); } - [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] - [Parser(Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE)] - [Parser(Opcode.CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE)] - public static void HandleHousingSetEditorModeActive(Packet packet) + [Parser(Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE)] + public static void HandleHousingRoomRemoveResponse(Packet packet) { - packet.ReadBool("Active"); + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadByteE("Result"); } - [Parser(Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE)] - public static void HandleHousingCurrentHouseInfoResponse(Packet packet) + [Parser(Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE)] + public static void HandleHousingRoomSetEditorModeActiveResponse(Packet packet) { - ReadHouse(packet, "House"); + packet.ReadPackedGuid128("HouseGUID"); packet.ReadByteE("Result"); + packet.ReadBool("Active"); } - [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES)] - public static void HandleHousingServiceGetOthersPlayerOwnedHouses(Packet packet) + [Parser(Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT)] + public static void HousingRoomUpdateResult(Packet packet) { - packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadByteE("Result"); } - [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE)] [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE)] + [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE)] public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) { var count = packet.ReadUInt32("Count"); @@ -146,24 +158,12 @@ public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) ReadHouse(packet, i); } } - - [Parser(Opcode.CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS)] - public static void HandleHousingServiceSearchBnetFriendNeighborhoods(Packet packet) - { - packet.ReadPackedGuid128("BNetAccountGUID"); - } [Parser(Opcode.SMSG_INVALIDATE_NEIGHBORHOOD_NAME)] public static void HandleInvalidateNeighborhoodName(Packet packet) { packet.ReadPackedGuid128("NeighborhoodGUID"); } - - [Parser(Opcode.CMSG_QUERY_NEIGHBORHOOD_INFO)] - public static void HandleQueryNeighborhoodInfo(Packet packet) - { - packet.ReadPackedGuid128("NeighborhoodGUID"); - } [Parser(Opcode.SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE)] public static void HandleQueryNeighborhoodNameResponse(Packet packet) @@ -173,16 +173,17 @@ public static void HandleQueryNeighborhoodNameResponse(Packet packet) packet.ReadWoWString("NeighborhoodName", nameLen); } - [Parser(Opcode.CMSG_NEIGHBORHOOD_INTERACT_WITH_CORNERSTONE)] - public static void HandleNeighborhoodInteractWithCornerstone(Packet packet) + [Parser(Opcode.CMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE)] + [Parser(Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE)] + [Parser(Opcode.CMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE)] + public static void HandleHousingSetEditorModeActive(Packet packet) { - packet.ReadUInt32("PlotID"); - packet.ReadPackedGuid128("CornerstoneGUID"); + packet.ReadBool("Active"); } [Parser(Opcode.CMSG_HOUSE_INTERIOR_LEAVE_HOUSE)] - [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] [Parser(Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO)] + [Parser(Opcode.CMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES)] [Parser(Opcode.CMSG_HOUSING_SERVICES_HOUSE_FINDER_REQUEST_NEIGHBORHOODS)] public static void HandleHousingNull(Packet packet) { From b0260600ce16167c902a128ee03e88faf192f9da Mon Sep 17 00:00:00 2001 From: Luzifix Date: Thu, 18 Dec 2025 22:33:05 +0100 Subject: [PATCH 26/40] Add CMSG_HOUSING_DECOR_MOVE_DECOR parser and rename DecorID to CatalogEntryID --- .../Parsers/HousingHandler.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 80fdb5b242..8ccc4078bc 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -22,6 +22,26 @@ public static void HousingDecorCommitDyesForSelection(Packet packet) packet.ReadInt32("DyeColorID", i); } } + + [Parser(Opcode.CMSG_HOUSING_DECOR_MOVE_DECOR)] + public static void HandleHousingDecorMove(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + packet.ReadVector3("Position"); + packet.ReadQuaternion("Rotation"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadPackedGuid128("AttachParentGUID"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + packet.ReadByte("UnkByte"); + } [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] public static void HousingDecorRemovePlacedEntry(Packet packet) @@ -39,7 +59,7 @@ public static void HousingDecorSelect(Packet packet) [Parser(Opcode.CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR)] public static void HousingDecorStartPlacing(Packet packet) { - packet.ReadUInt32("DecorID"); + packet.ReadUInt32("CatalogEntryID"); packet.ReadUInt32("Field_4"); } From 48a393929d50d4f4166a9d0192227dfa6f3a6651 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 00:39:34 +0100 Subject: [PATCH 27/40] Add parser for CMSG_HOUSING_DECOR_CATALOG_DESTROY_ENTRY and CMSG_HOUSING_DECOR_CATALOG_DESTROY_ALL_ENTRY_COPIES --- .../Parsers/HousingHandler.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 8ccc4078bc..399269af99 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -13,6 +13,21 @@ public static void HousingDecorCatalogCreateSearcher(Packet packet) packet.ReadPackedGuid128("BnetAccountID"); } + [Parser(Opcode.CMSG_HOUSING_DECOR_CATALOG_DESTROY_ENTRY)] + public static void HandleHousingDecorCatalogDestroyEntry(Packet packet) + { + packet.ReadPackedGuid128("BnetAccountID"); + packet.ReadUInt16("CatalogEntryID"); + packet.ReadUInt32("Unknown"); + } + + [Parser(Opcode.CMSG_HOUSING_DECOR_CATALOG_DESTROY_ALL_ENTRY_COPIES)] + public static void HandleHousingDecorCatalogDestroyAllEntryCopies(Packet packet) + { + packet.ReadUInt16("CatalogEntryID"); + packet.ReadUInt16("Unknown"); + } + [Parser(Opcode.CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR)] public static void HousingDecorCommitDyesForSelection(Packet packet) { From 2ee50873c63c56ac0a86690c537ebb963b122627 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 12:17:57 +0100 Subject: [PATCH 28/40] Extend parsing of CMSG_HOUSING_DECOR_MOVE_DECOR --- .../Parsers/HousingHandler.cs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 399269af99..50d8b7427f 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -44,18 +44,13 @@ public static void HandleHousingDecorMove(Packet packet) packet.ReadPackedGuid128("DecorGUID"); packet.ReadVector3("Position"); packet.ReadQuaternion("Rotation"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); packet.ReadPackedGuid128("AttachParentGUID"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); - packet.ReadByte("UnkByte"); + packet.ReadPackedGuid128("RoomGUID"); + packet.ReadPackedGuid128("Field_70"); + packet.ReadInt32("Field_80"); + packet.ReadByte("Field_85"); + packet.ReadByte("Field_86"); + packet.ReadBit(); } [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] From 9f95f814580f7569e6cb198f98db60e80ca9a839 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 12:30:35 +0100 Subject: [PATCH 29/40] Rename unknown fields --- .../Parsers/HousingHandler.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 50d8b7427f..ecc5b4395b 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -18,14 +18,14 @@ public static void HandleHousingDecorCatalogDestroyEntry(Packet packet) { packet.ReadPackedGuid128("BnetAccountID"); packet.ReadUInt16("CatalogEntryID"); - packet.ReadUInt32("Unknown"); + packet.ReadUInt32("Field_10"); } [Parser(Opcode.CMSG_HOUSING_DECOR_CATALOG_DESTROY_ALL_ENTRY_COPIES)] public static void HandleHousingDecorCatalogDestroyAllEntryCopies(Packet packet) { packet.ReadUInt16("CatalogEntryID"); - packet.ReadUInt16("Unknown"); + packet.ReadUInt16("Field_4"); } [Parser(Opcode.CMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR)] @@ -184,7 +184,7 @@ public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) var count = packet.ReadUInt32("Count"); for (uint i = 0; i < count; i++) { - packet.ReadBit("UnknownBit", i); + packet.ReadBit("Field_4", i); ReadHouse(packet, i); } } From 0bcd9d8691d730db263420b347ac89ab9d0d30dd Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 12:33:45 +0100 Subject: [PATCH 30/40] Add misisng Field_87 to CMSG_HOUSING_DECOR_MOVE_DECOR --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index ecc5b4395b..12e9d5c7be 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -50,7 +50,7 @@ public static void HandleHousingDecorMove(Packet packet) packet.ReadInt32("Field_80"); packet.ReadByte("Field_85"); packet.ReadByte("Field_86"); - packet.ReadBit(); + packet.ReadBool("Field_87"); } [Parser(Opcode.CMSG_HOUSING_DECOR_REMOVE_PLACED_DECOR_ENTRY)] From e563f6b82b88388928704df5a59003f4adf7ee65 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 13:13:41 +0100 Subject: [PATCH 31/40] Add Result to SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE & SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 12e9d5c7be..140428b175 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -184,7 +184,7 @@ public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) var count = packet.ReadUInt32("Count"); for (uint i = 0; i < count; i++) { - packet.ReadBit("Field_4", i); + packet.ReadByteE("Result", i); ReadHouse(packet, i); } } From 1b5d542b1b9458d90e6be96ff5cbb333b39cd984 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 13:37:49 +0100 Subject: [PATCH 32/40] Fix SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE and SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE --- .../Enums/Version/V11_2_7_64632/Opcodes_64877.cs | 11 +++++++++++ .../Parsers/HousingHandler.cs | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs index f8bf55311d..f22afdaef2 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs @@ -1534,6 +1534,17 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HARDCORE_DEATH_ALERT, 0x400349 }, { Opcode.SMSG_HEALTH_UPDATE, 0x400174 }, { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, + { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, + { Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, 0x4F0006 }, + { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, + { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, + { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, + { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, + { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, + { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, + { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, + { Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000D }, + { Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000C }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 140428b175..8fec27f8dc 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -182,9 +182,9 @@ public static void HousingRoomUpdateResult(Packet packet) public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) { var count = packet.ReadUInt32("Count"); + packet.ReadByteE("Result"); for (uint i = 0; i < count; i++) { - packet.ReadByteE("Result", i); ReadHouse(packet, i); } } From 9362480b9c22bf5de3c52c01695089d24167524c Mon Sep 17 00:00:00 2001 From: Luzifix Date: Fri, 19 Dec 2025 15:30:42 +0100 Subject: [PATCH 33/40] Add housing guid parsing --- .../Enums/{HousingResult.cs => Housing.cs} | 8 ++++++++ WowPacketParser/Misc/WowGuid.cs | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) rename WowPacketParser/Enums/{HousingResult.cs => Housing.cs} (94%) diff --git a/WowPacketParser/Enums/HousingResult.cs b/WowPacketParser/Enums/Housing.cs similarity index 94% rename from WowPacketParser/Enums/HousingResult.cs rename to WowPacketParser/Enums/Housing.cs index e364c8b3a2..de6f6232e8 100644 --- a/WowPacketParser/Enums/HousingResult.cs +++ b/WowPacketParser/Enums/Housing.cs @@ -79,4 +79,12 @@ public enum HousingResult : byte TransactionFailure = 74, UnlockOperationFailed = 75 } + + public enum HousingGuidType : byte + { + Decor = 1, + RoomComponent = 2, + House = 3, + Neighborhood = 4, + } } diff --git a/WowPacketParser/Misc/WowGuid.cs b/WowPacketParser/Misc/WowGuid.cs index 567345150e..5f2015be6e 100644 --- a/WowPacketParser/Misc/WowGuid.cs +++ b/WowPacketParser/Misc/WowGuid.cs @@ -155,6 +155,24 @@ public override string ToString() if (Low == 0 && High == 0) return "Full: 0x0"; + string baseGuidPart = $"TypeName: {GetHighType()}; Full: 0x{High:X16}{Low:X16}"; + string endString = $"Low: {GetLow()}"; + switch (GetHighType()) + { + case HighGuidType.Housing: + { + var subType = (HousingGuidType)((High >> 53) & 0x1F); + return subType switch + { + HousingGuidType.Decor => $"{baseGuidPart}; SubType: {subType}; RealmID: {(High >> 32) & 0xFFFF}; DecorID: {High & 0xFFFFFFFF}; {endString}", + HousingGuidType.Neighborhood => $"{baseGuidPart}; SubType: {subType}; NeighborhoodMapID: {(High >> 32) & 0xFFFF}; Arg2: {High & 0xFFFFFFFF}; {endString}", + HousingGuidType.RoomComponent => $"{baseGuidPart}; SubType: {subType}; HouseRoomID: {High & 0xFFFFFFFF}; {endString}", + HousingGuidType.House => $"{baseGuidPart}; SubType: {subType}; NeighborhoodMapID: {Low & 0x7FFF}; Arg2: {(Low >> 15) & 0x3F}; {endString}", + _ => $"{baseGuidPart}; SubType: Unknown({(byte)subType}); {endString}", + }; + } + } + if (HasEntry()) { StoreNameType type = StoreNameType.None; From 3f597406154faba4e13448202d05d889a0b03082 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sat, 20 Dec 2025 00:28:01 +0100 Subject: [PATCH 34/40] Fix SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE name length bits --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 8fec27f8dc..f68845d119 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -199,7 +199,7 @@ public static void HandleInvalidateNeighborhoodName(Packet packet) public static void HandleQueryNeighborhoodNameResponse(Packet packet) { packet.ReadPackedGuid128("NeighborhoodGUID"); - var nameLen = packet.ReadBits(10); + var nameLen = packet.ReadBits(8); packet.ReadWoWString("NeighborhoodName", nameLen); } From e28434e9ddee03876473724349ff8c46ed444370 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 21 Dec 2025 12:08:38 +0100 Subject: [PATCH 35/40] Add SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE parser --- WowPacketParser/Enums/Opcode.cs | 1 + WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Enums/Version/V11_2_7_64632/Opcodes_64877.cs | 1 + .../Parsers/HousingHandler.cs | 7 +++++++ 4 files changed, 10 insertions(+) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index d738e426b0..c171fd4a3e 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2475,6 +2475,7 @@ public enum Opcode SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, + SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 85bba9a7e3..a8369ce68d 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1537,6 +1537,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, { Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, 0x4F0006 }, + { Opcode.SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, 0x4F0008 }, { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs index f22afdaef2..77099c6834 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs @@ -1536,6 +1536,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HIGHEST_THREAT_UPDATE, 0x40017C }, { Opcode.SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, 0x530001 }, { Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, 0x4F0006 }, + { Opcode.SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, 0x4F0008 }, { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index f68845d119..bc900070cd 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -125,6 +125,13 @@ public static void HousingDecorCatalogCreateSearcherResponse(Packet packet) packet.ReadByteE("Result"); } + [Parser(Opcode.SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE)] + public static void HandleHousingDecorCommitDyesForSelectedDecorResponse(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + packet.ReadByteE("Result"); + } + [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) { From 388361855d4bef2458eb8cc6a473cfede8fe12dd Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 21 Dec 2025 12:42:08 +0100 Subject: [PATCH 36/40] Add SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE parser --- .../Parsers/HousingHandler.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index bc900070cd..c05ffa866b 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -132,6 +132,16 @@ public static void HandleHousingDecorCommitDyesForSelectedDecorResponse(Packet p packet.ReadByteE("Result"); } + [Parser(Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE)] + public static void HandleHousingDecorSelectDecorResponse(Packet packet) + { + packet.ReadPackedGuid128("DecorGUID"); + packet.ReadPackedGuid128("PlayerGUID"); + packet.ReadUInt32("Field_16"); + packet.ReadByteE("Result"); + packet.ReadBool("Selected"); + } + [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] public static void HandleHousingDecorSetEditorModeActiveResponse(Packet packet) { From 916b3f3b78a3dd29348b6ad97514287219c50774 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Sun, 21 Dec 2025 12:49:02 +0100 Subject: [PATCH 37/40] Add missing bit to SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE parser --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index c05ffa866b..0a844290f7 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -139,7 +139,8 @@ public static void HandleHousingDecorSelectDecorResponse(Packet packet) packet.ReadPackedGuid128("PlayerGUID"); packet.ReadUInt32("Field_16"); packet.ReadByteE("Result"); - packet.ReadBool("Selected"); + packet.ReadBit("Selected"); + packet.ReadBit("Field_17"); } [Parser(Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE)] From c7ca09dfc5831dd415c5d3317b6e5bc09f938154 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Mon, 22 Dec 2025 00:48:27 +0100 Subject: [PATCH 38/40] Add CMSG_HOUSING_SERVICES_REQUEST_PLAYER_CHARACTER_LIST parser --- WowPacketParser/Enums/Opcode.cs | 1 + WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs | 1 + .../Enums/Version/V11_2_7_64632/Opcodes_64877.cs | 1 + .../Parsers/HousingHandler.cs | 6 ++++++ 4 files changed, 9 insertions(+) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index c171fd4a3e..058e6aa126 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -2485,6 +2485,7 @@ public enum Opcode SMSG_HOUSING_ROOM_UPDATE_RESULT, SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, + SMSG_HOUSING_SERVICES_PLAYER_CHARACTER_LIST_RESPONSE, SMSG_HOTFIX_CONNECT, SMSG_HOTFIX_MESSAGE, SMSG_HOTFIX_NOTIFY, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index a8369ce68d..6024387deb 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -1547,6 +1547,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, { Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000D }, { Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000C }, + { Opcode.SMSG_HOUSING_SERVICES_PLAYER_CHARACTER_LIST_RESPONSE, 0x52001C }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs index 77099c6834..0f0d99d5fe 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs @@ -1546,6 +1546,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, { Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000D }, { Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE, 0x52000C }, + { Opcode.SMSG_HOUSING_SERVICES_PLAYER_CHARACTER_LIST_RESPONSE, 0x52001C }, { Opcode.SMSG_HOTFIX_CONNECT, 0x440003 }, { Opcode.SMSG_HOTFIX_MESSAGE, 0x440002 }, { Opcode.SMSG_INITIALIZE_FACTIONS, 0x4001C5 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 0a844290f7..8cdef81acc 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -92,6 +92,12 @@ public static void HandleHousingServiceGetOthersPlayerOwnedHouses(Packet packet) packet.ReadPackedGuid128("PlayerGUID"); } + [Parser(Opcode.CMSG_HOUSING_SERVICES_REQUEST_PLAYER_CHARACTER_LIST)] + public static void HandleHousingServicesRequestPlayerCharacterList(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + } + [Parser(Opcode.CMSG_HOUSING_SERVICES_SEARCH_BNET_FRIEND_NEIGHBORHOODS)] public static void HandleHousingServiceSearchBnetFriendNeighborhoods(Packet packet) { From aa104bb131baf8fad21b8dfcd1c253782dcf8d88 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Tue, 23 Dec 2025 02:16:02 +0100 Subject: [PATCH 39/40] Add Field_08 to SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE parser --- WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index 8cdef81acc..b19f2386b0 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -223,6 +223,7 @@ public static void HandleInvalidateNeighborhoodName(Packet packet) public static void HandleQueryNeighborhoodNameResponse(Packet packet) { packet.ReadPackedGuid128("NeighborhoodGUID"); + packet.ReadBool("Field_08"); var nameLen = packet.ReadBits(8); packet.ReadWoWString("NeighborhoodName", nameLen); } From d490229f3e3d29e26619b32278b99e734d98cf96 Mon Sep 17 00:00:00 2001 From: Luzifix Date: Wed, 24 Dec 2025 01:07:57 +0100 Subject: [PATCH 40/40] Add parser for CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY, SMSG_HOUSING_EDITOR_AVAILABILITY_RESPONSE, SMSG_HOUSING_UPDATE_HOUSE_INFO --- WowPacketParser/Enums/Opcode.cs | 3 ++ .../Enums/Version/V11_2_7_64632/Opcodes.cs | 3 ++ .../Version/V11_2_7_64632/Opcodes_64877.cs | 3 ++ .../Parsers/HousingHandler.cs | 29 ++++++++++++++++++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/WowPacketParser/Enums/Opcode.cs b/WowPacketParser/Enums/Opcode.cs index 058e6aa126..31b4b95361 100644 --- a/WowPacketParser/Enums/Opcode.cs +++ b/WowPacketParser/Enums/Opcode.cs @@ -702,6 +702,7 @@ public enum Opcode CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE, CMSG_HOUSING_KIOSK_REQUEST_HOUSING_RESET, CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO, + CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY, CMSG_HOUSING_ROOM_APPLY_THEME, CMSG_HOUSING_ROOM_APPLY_WALLPAPER, CMSG_HOUSING_ROOM_MOVE_DRAGGED_ROOM, @@ -2474,12 +2475,14 @@ public enum Opcode SMSG_HEALTH_UPDATE, SMSG_HIGHEST_THREAT_UPDATE, SMSG_HOUSING_CURRENT_HOUSE_INFO_RESPONSE, + SMSG_HOUSING_EDITOR_AVAILABILITY_RESPONSE, SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE, SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, + SMSG_HOUSING_UPDATE_HOUSE_INFO, SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, SMSG_HOUSING_ROOM_UPDATE_RESULT, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs index 6024387deb..d3387f4cfd 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes.cs @@ -445,6 +445,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE, 0x310000 }, { Opcode.CMSG_HOUSING_KIOSK_REQUEST_HOUSING_RESET, 0x350008 }, { Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO, 0x350006 }, + { Opcode.CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY, 0x350007 }, { Opcode.CMSG_HOUSING_ROOM_APPLY_THEME, 0x320005 }, { Opcode.CMSG_HOUSING_ROOM_APPLY_WALLPAPER, 0x320006 }, { Opcode.CMSG_HOUSING_ROOM_MOVE_DRAGGED_ROOM, 0x320004 }, @@ -1540,8 +1541,10 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, 0x4F0008 }, { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, + { Opcode.SMSG_HOUSING_EDITOR_AVAILABILITY_RESPONSE, 0x530006 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, + { Opcode.SMSG_HOUSING_UPDATE_HOUSE_INFO, 0x530000 }, { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, diff --git a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs index 0f0d99d5fe..b6dbc45ed4 100644 --- a/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs +++ b/WowPacketParser/Enums/Version/V11_2_7_64632/Opcodes_64877.cs @@ -444,6 +444,7 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.CMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE, 0x310000 }, { Opcode.CMSG_HOUSING_KIOSK_REQUEST_HOUSING_RESET, 0x350008 }, { Opcode.CMSG_HOUSING_REQUEST_CURRENT_HOUSE_INFO, 0x350006 }, + { Opcode.CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY, 0x350007 }, { Opcode.CMSG_HOUSING_ROOM_APPLY_THEME, 0x320005 }, { Opcode.CMSG_HOUSING_ROOM_APPLY_WALLPAPER, 0x320006 }, { Opcode.CMSG_HOUSING_ROOM_MOVE_DRAGGED_ROOM, 0x320004 }, @@ -1539,8 +1540,10 @@ public static BiDictionary Opcodes(Direction direction) { Opcode.SMSG_HOUSING_DECOR_COMMIT_DYES_FOR_SELECTED_DECOR_RESPONSE, 0x4F0008 }, { Opcode.SMSG_HOUSING_DECOR_SELECT_DECOR_RESPONSE, 0x4F0004 }, { Opcode.SMSG_HOUSING_DECOR_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x4F0000 }, + { Opcode.SMSG_HOUSING_EDITOR_AVAILABILITY_RESPONSE, 0x530006 }, { Opcode.SMSG_HOUSING_EXTERIOR_SET_EXTERIOR_LOCK_STATE, 0x4E0000 }, { Opcode.SMSG_HOUSING_FIXTURE_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x500000 }, + { Opcode.SMSG_HOUSING_UPDATE_HOUSE_INFO, 0x530000 }, { Opcode.SMSG_HOUSING_ROOM_REMOVE_ROOM_RESPONSE, 0x510002 }, { Opcode.SMSG_HOUSING_ROOM_SET_EDITOR_MODE_ACTIVE_RESPONSE, 0x510000 }, { Opcode.SMSG_HOUSING_ROOM_UPDATE_RESULT, 0x510003 }, diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs index b19f2386b0..20ee65a94a 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HousingHandler.cs @@ -73,6 +73,13 @@ public static void HousingDecorStartPlacing(Packet packet) packet.ReadUInt32("Field_4"); } + [Parser(Opcode.CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY)] + public static void HousingRequestEditorAvailability(Packet packet) + { + packet.ReadByte("Field_0"); + packet.ReadPackedGuid128("HouseGUID"); + } + [Parser(Opcode.CMSG_HOUSING_ROOM_REMOVE_ROOM)] public static void HandleHousingRoomRemove(Packet packet) { @@ -124,6 +131,14 @@ public static void HandleHousingCurrentHouseInfoResponse(Packet packet) packet.ReadByteE("Result"); } + [Parser(Opcode.SMSG_HOUSING_EDITOR_AVAILABILITY_RESPONSE)] + public static void HousingEditorAvailabilityResponse(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadByteE("Result"); + packet.ReadByte("Field_09"); + } + [Parser(Opcode.SMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER_RESPONSE)] public static void HousingDecorCatalogCreateSearcherResponse(Packet packet) { @@ -201,6 +216,15 @@ public static void HousingRoomUpdateResult(Packet packet) packet.ReadByteE("Result"); } + [Parser(Opcode.SMSG_HOUSING_UPDATE_HOUSE_INFO)] + public static void HandleHousingUpdateHouseInfo(Packet packet) + { + packet.ReadPackedGuid128("HouseGUID"); + packet.ReadPackedGuid128("BnetAccountID"); + packet.ReadPackedGuid128("OwnerGUID"); + packet.ReadUInt32("Field_024"); + } + [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_OTHERS_PLAYER_OWNED_HOUSES_RESPONSE)] [Parser(Opcode.SMSG_HOUSING_SERVICES_GET_PLAYER_OWNED_HOUSES_RESPONSE)] public static void HandleHousingServiceGetOwnedHousesResponse(Packet packet) @@ -223,7 +247,10 @@ public static void HandleInvalidateNeighborhoodName(Packet packet) public static void HandleQueryNeighborhoodNameResponse(Packet packet) { packet.ReadPackedGuid128("NeighborhoodGUID"); - packet.ReadBool("Field_08"); + bool result = packet.ReadBool("Result"); + if (!result) + return; + var nameLen = packet.ReadBits(8); packet.ReadWoWString("NeighborhoodName", nameLen); }