Skip to content

Commit 92b13ba

Browse files
committed
Add 5.5.0 CMSG handlers
CMSG_CALENDAR_RSVP CMSG_CALENDAR_STATUS CMSG_CALENDAR_MODERATOR_STATUS CMSG_CALENDAR_REMOVE_EVENT CMSG_CALENDAR_COPY_EVENT CMSG_CALENDAR_COMPLAIN CMSG_CALENDAR_GET_NUM_PENDING CMSG_CALENDAR_EVENT_SIGN_UP CMSG_CALENDAR_ADD_EVENT CMSG_CALENDAR_UPDATE_EVENT CMSG_KEEP_ALIVE CMSG_WHO_IS CMSG_WHO CMSG_SET_DUNGEON_DIFFICULTY CMSG_RESURRECT_RESPONSE CMSG_PET_RENAME CMSG_BUG_REPORT CMSG_SET_SAVED_INSTANCE_EXTEND CMSG_SET_PLAYER_DECLINED_NAMES CMSG_QUERY_REALM_NAME CMSG_QUERY_GUILD_INFO CMSG_CHAR_CUSTOMIZE CMSG_GM_TICKET_GET_SYSTEM_STATUS CMSG_GM_TICKET_GET_CASE_STATUS CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY CMSG_CHAR_RACE_OR_FACTION_CHANGE CMSG_SUBMIT_USER_FEEDBACK CMSG_REQUEST_ACCOUNT_DATA CMSG_UPDATE_ACCOUNT_DATA CMSG_SERVER_TIME_OFFSET_REQUEST CMSG_CHAR_DELETE CMSG_LOW_LEVEL_RAID1 CMSG_INSPECT_PVP CMSG_QUEST_POI_QUERY CMSG_ARENA_TEAM_ROSTER CMSG_ARENA_TEAM_LEAVE CMSG_CHARACTER_RENAME_REQUEST CMSG_SHOW_TRADE_SKILL CMSG_GUILD_SET_GUILD_MASTER CMSG_PETITION_RENAME_GUILD CMSG_REQUEST_RAID_INFO CMSG_SEND_CONTACT_LIST CMSG_ADD_FRIEND CMSG_DEL_FRIEND CMSG_SET_CONTACT_NOTES CMSG_BATTLENET_CHALLENGE_RESPONSE CMSG_ADD_IGNORE CMSG_DEL_IGNORE CMSG_SET_RAID_DIFFICULTY CMSG_TUTORIAL CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT CMSG_UNDELETE_CHARACTER CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS CMSG_BATTLENET_REQUEST CMSG_CHANGE_REALM_TICKET CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS CMSG_VOICE_CHAT_LOGIN CMSG_VOICE_CHAT_JOIN_CHANNEL CMSG_DO_COUNTDOWN CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED CMSG_AUCTION_SET_FAVORITE_ITEM CMSG_UPDATE_AADC_STATUS CMSG_SOCIAL_CONTRACT_REQUEST CMSG_ACCEPT_SOCIAL_CONTRACT CMSG_SUSPEND_COMMS_ACK CMSG_ENTER_ENCRYPTED_MODE_ACK CMSG_PING CMSG_LOG_DISCONNECT CMSG_SUSPEND_TOKEN_RESPONSE CMSG_ENABLE_NAGLE CMSG_QUEUED_MESSAGES_END CMSG_LOG_STREAMING_ERROR CMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID CMSG_QUERY_PLAYER_NAMES
1 parent de3a5f5 commit 92b13ba

20 files changed

+600
-0
lines changed

WowPacketParserModule.V5_5_0_61735/Parsers/AccountDataHandler.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,37 @@ public static void HandleAccountItemCollectionData(Packet packet)
118118
packet.ReadBit("Unknown1110_2");
119119
}
120120

121+
[Parser(Opcode.CMSG_REQUEST_ACCOUNT_DATA)]
122+
public static void HandleRequestAccountData(Packet packet)
123+
{
124+
packet.ReadPackedGuid128("Guid");
125+
packet.ReadInt32E<AccountDataType>("DataType");
126+
}
127+
128+
[Parser(Opcode.CMSG_UPDATE_ACCOUNT_DATA)]
129+
public static void HandleClientUpdateAccountData(Packet packet)
130+
{
131+
packet.ReadTime64("Time");
132+
133+
var decompCount = packet.ReadInt32();
134+
packet.ReadPackedGuid128("Guid");
135+
packet.ReadInt32E<AccountDataType>("DataType");
136+
var compCount = packet.ReadInt32();
137+
138+
var pkt = packet.Inflate(compCount, decompCount, false);
139+
var data = pkt.ReadWoWString(decompCount);
140+
141+
packet.AddValue("CompressedData", data);
142+
}
143+
144+
[Parser(Opcode.CMSG_ACCOUNT_NOTIFICATION_ACKNOWLEDGED)]
145+
public static void HandleAccountNotificationAckknowledged(Packet packet)
146+
{
147+
packet.ReadUInt64("InstanceID");
148+
packet.ReadUInt32("OpenSeconds");
149+
packet.ReadUInt32("ReadSeconds");
150+
}
151+
121152
[Parser(Opcode.SMSG_LOGOUT_CANCEL_ACK)]
122153
public static void HandleAccountNull(Packet packet)
123154
{

WowPacketParserModule.V5_5_0_61735/Parsers/AuctionHandler.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,13 @@ public static void HandleAuctionSellCommodity(Packet packet)
661661
ReadAuctionItemForSale(packet, i);
662662
}
663663

664+
[Parser(Opcode.CMSG_AUCTION_SET_FAVORITE_ITEM)]
665+
public static void HandleAuctionSetFavoriteItem(Packet packet)
666+
{
667+
packet.ReadBit("IsNotFavorite");
668+
ReadAuctionFavoriteInfo(packet, "FavoriteInfo");
669+
}
670+
664671
[Parser(Opcode.CMSG_AUCTION_LIST_PENDING_SALES)]
665672
public static void HandleAuctionZero(Packet packet)
666673
{

WowPacketParserModule.V5_5_0_61735/Parsers/BattlegroundHandler.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,13 @@ public static void HandleRequestCrowdControlSpell(Packet packet)
572572
packet.ReadPackedGuid128("PlayerGuid");
573573
}
574574

575+
[Parser(Opcode.CMSG_ARENA_TEAM_ROSTER)]
576+
[Parser(Opcode.CMSG_ARENA_TEAM_LEAVE)]
577+
public static void HandleArenaTeamQuery(Packet packet)
578+
{
579+
packet.ReadUInt32("TeamID");
580+
}
581+
575582
[Parser(Opcode.SMSG_BATTLEFIELD_PORT_DENIED)]
576583
[Parser(Opcode.SMSG_BATTLEGROUND_INFO_THROTTLED)]
577584
[Parser(Opcode.CMSG_BATTLEFIELD_LEAVE)]

WowPacketParserModule.V5_5_0_61735/Parsers/BattlenetProtoHandler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,11 @@ public static void HandleBattlenetResponse(Packet packet)
1919
{
2020
V10_0_0_46181.Protos.V10_2_0_52649.BattlenetProtoHandler.HandleBattlenetResponse(packet);
2121
}
22+
23+
[Parser(Opcode.CMSG_BATTLENET_REQUEST)]
24+
public static void HandleBattlenetRequest(Packet packet)
25+
{
26+
V10_0_0_46181.Protos.V10_2_0_52649.BattlenetProtoHandler.HandleBattlenetRequest(packet);
27+
}
2228
}
2329
}

WowPacketParserModule.V5_5_0_61735/Parsers/CalendarHandler.cs

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,66 @@ public static void ReadCalendarEventInviteInfo(Packet packet, params object[] in
7474
packet.ReadWoWString("Notes", lenNotes, indexes);
7575
}
7676

77+
public static void ReadCalendarAddEventInviteInfo(Packet packet, params object[] index)
78+
{
79+
packet.ReadPackedGuid128("Guid", index);
80+
packet.ReadByteE<CalendarEventStatus>("Status", index);
81+
packet.ReadByteE<CalendarModerationRank>("Moderator", index);
82+
83+
var unused_801_1 = packet.ReadBit();
84+
var unused_801_2 = packet.ReadBit();
85+
var unused_801_3 = packet.ReadBit();
86+
87+
if (unused_801_1)
88+
packet.ReadPackedGuid128("Unused_801_1");
89+
90+
if (unused_801_2)
91+
packet.ReadUInt64("Unused_801_2");
92+
93+
if (unused_801_3)
94+
packet.ReadUInt64("Unused_801_3");
95+
96+
}
97+
98+
public static void ReadCalendarEventInfo(Packet packet, params object[] index)
99+
{
100+
packet.ReadUInt64("ClubID", index);
101+
packet.ReadByteE<CalendarEventType>("EventType", index);
102+
packet.ReadInt32("TextureID", index);
103+
packet.ReadTime("Time", index);
104+
packet.ReadUInt32E<CalendarFlag>("Flags", index);
105+
106+
var inviteInfoCount = packet.ReadUInt32();
107+
108+
packet.ResetBitReader();
109+
var TitleLen = packet.ReadBits(8);
110+
var DescriptionLen = packet.ReadBits(11);
111+
112+
for (int i = 0; i < inviteInfoCount; i++)
113+
ReadCalendarAddEventInviteInfo(packet, index, i);
114+
115+
packet.ReadWoWString("Title", TitleLen, index);
116+
packet.ReadWoWString("Description", DescriptionLen, index);
117+
}
118+
119+
public static void ReadCalendarUpdateEventInfo(Packet packet, params object[] index)
120+
{
121+
packet.ReadUInt64("ClubID", index);
122+
packet.ReadUInt64("EventID", index);
123+
packet.ReadUInt64("ModeratorID", index);
124+
packet.ReadByteE<CalendarEventType>("EventType", index);
125+
packet.ReadInt32("TextureID", index);
126+
packet.ReadTime("Time", index);
127+
packet.ReadUInt16E<CalendarFlag>("Flags", index);
128+
129+
packet.ResetBitReader();
130+
var TitleLen = packet.ReadBits(8);
131+
var DescriptionLen = packet.ReadBits(11);
132+
133+
packet.ReadWoWString("Title", TitleLen, index);
134+
packet.ReadWoWString("Description", DescriptionLen, index);
135+
}
136+
77137
[Parser(Opcode.SMSG_CALENDAR_SEND_CALENDAR)]
78138
public static void HandleCalendarSendCalendar(Packet packet)
79139
{
@@ -358,8 +418,77 @@ public static void HandleCalendarRemoveInvite(Packet packet)
358418
packet.ReadUInt64("EventID");
359419
}
360420

421+
[Parser(Opcode.CMSG_CALENDAR_RSVP)]
422+
public static void HandleCalendarRSVP(Packet packet)
423+
{
424+
packet.ReadUInt64("EventID");
425+
packet.ReadUInt64("InviteID");
426+
packet.ReadByte("Status");
427+
}
428+
429+
[Parser(Opcode.CMSG_CALENDAR_STATUS)]
430+
[Parser(Opcode.CMSG_CALENDAR_MODERATOR_STATUS)]
431+
public static void HandleUserClientCalendarModeratorStatus(Packet packet)
432+
{
433+
packet.ReadPackedGuid128("Guid");
434+
packet.ReadUInt64("EventID");
435+
packet.ReadUInt64("InviteID");
436+
packet.ReadUInt64("ModeratorID");
437+
packet.ReadByteE<CalendarEventStatus>("Status");
438+
}
439+
440+
[Parser(Opcode.CMSG_CALENDAR_REMOVE_EVENT)]
441+
public static void HandleRemoveCalendarEvent(Packet packet)
442+
{
443+
packet.ReadUInt64("EventID");
444+
packet.ReadUInt64("ModeratorID");
445+
packet.ReadUInt64("ClubID");
446+
packet.ReadInt32E<CalendarFlag>("Flags");
447+
}
448+
449+
[Parser(Opcode.CMSG_CALENDAR_COPY_EVENT)]
450+
public static void HandleCalenderCopyEvent(Packet packet)
451+
{
452+
packet.ReadUInt64("EventID");
453+
packet.ReadUInt64("ModeratorID");
454+
packet.ReadUInt64("EventClubID");
455+
packet.ReadPackedTime("Date");
456+
}
457+
458+
[Parser(Opcode.CMSG_CALENDAR_COMPLAIN)]
459+
public static void HandleCalenderComplain(Packet packet)
460+
{
461+
packet.ReadPackedGuid128("InvitedByGUID");
462+
packet.ReadUInt64("EventID");
463+
packet.ReadUInt64("InviteID");
464+
}
465+
466+
[Parser(Opcode.CMSG_CALENDAR_EVENT_SIGN_UP)]
467+
public static void HandleCalendarEventSignup(Packet packet)
468+
{
469+
packet.ReadInt64("EventID");
470+
packet.ReadInt64("ClubID");
471+
packet.ResetBitReader();
472+
packet.ReadBit("Tentative");
473+
}
474+
475+
[Parser(Opcode.CMSG_CALENDAR_ADD_EVENT)]
476+
public static void HandleCalendarAddEvent(Packet packet)
477+
{
478+
ReadCalendarEventInfo(packet);
479+
packet.ReadInt32("MaxSize");
480+
}
481+
482+
[Parser(Opcode.CMSG_CALENDAR_UPDATE_EVENT)]
483+
public static void HandleUpdateCalendarEvent(Packet packet)
484+
{
485+
ReadCalendarUpdateEventInfo(packet);
486+
packet.ReadUInt32("MaxSize");
487+
}
488+
361489
[Parser(Opcode.SMSG_CALENDAR_CLEAR_PENDING_ACTION)]
362490
[Parser(Opcode.CMSG_CALENDAR_GET)]
491+
[Parser(Opcode.CMSG_CALENDAR_GET_NUM_PENDING)]
363492
public static void HandleCalenderZero(Packet packet)
364493
{
365494
}

WowPacketParserModule.V5_5_0_61735/Parsers/CharacterHandler.cs

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,10 +817,89 @@ public static void HandleClientCharCreate(Packet packet)
817817
ReadChrCustomizationChoice(packet, "Customizations", i);
818818
}
819819

820+
[Parser(Opcode.CMSG_SET_PLAYER_DECLINED_NAMES)]
821+
public static void HandleSetPlayerDeclinedNames(Packet packet)
822+
{
823+
packet.ReadPackedGuid128("Player");
824+
825+
var count = new int[5];
826+
for (var i = 0; i < 5; ++i)
827+
count[i] = (int)packet.ReadBits(7);
828+
829+
for (var i = 0; i < 5; ++i)
830+
packet.ReadWoWString("DeclinedName", count[i], i);
831+
}
832+
833+
[Parser(Opcode.CMSG_CHAR_CUSTOMIZE)]
834+
public static void HandleClientCharCustomize(Packet packet)
835+
{
836+
packet.ReadPackedGuid128("CharGUID");
837+
838+
packet.ReadByte("SexID");
839+
var customizationCount = packet.ReadUInt32("CustomizationCount");
840+
841+
for (var j = 0u; j < customizationCount; ++j)
842+
ReadChrCustomizationChoice(packet, "Customizations", j);
843+
844+
packet.ResetBitReader();
845+
var nameLen = packet.ReadBits(6);
846+
packet.ReadWoWString("CharName", nameLen);
847+
}
848+
849+
[Parser(Opcode.CMSG_CHAR_RACE_OR_FACTION_CHANGE)]
850+
public static void HandleCharRaceOrFactionChange(Packet packet)
851+
{
852+
packet.ReadBit("FactionChange");
853+
854+
var nameLen = packet.ReadBits(6);
855+
856+
packet.ReadPackedGuid128("Guid");
857+
packet.ReadByte("SexID");
858+
packet.ReadByteE<Race>("RaceID");
859+
packet.ReadByteE<Race>("InitialRaceID");
860+
var customizationsCount = packet.ReadUInt32("CustomizationsCount");
861+
packet.ReadWoWString("Name", nameLen);
862+
863+
for (var i = 0; i < customizationsCount; i++)
864+
ReadChrCustomizationChoice(packet, "Customizations", i);
865+
}
866+
867+
[Parser(Opcode.CMSG_CHAR_DELETE)]
868+
public static void HandleClientCharDelete(Packet packet)
869+
{
870+
packet.ReadPackedGuid128("PlayerGUID");
871+
}
872+
873+
[Parser(Opcode.CMSG_INSPECT_PVP)]
874+
public static void HandleRequestInspectPVP(Packet packet)
875+
{
876+
packet.ReadPackedGuid128("InspectTarget");
877+
}
878+
879+
[Parser(Opcode.CMSG_CHARACTER_RENAME_REQUEST)]
880+
public static void HandleClientCharRename(Packet packet)
881+
{
882+
packet.ReadPackedGuid128("Guid");
883+
884+
packet.ResetBitReader();
885+
886+
var newNameLen = packet.ReadBits(6);
887+
packet.ReadWoWString("NewName", newNameLen);
888+
}
889+
890+
[Parser(Opcode.CMSG_UNDELETE_CHARACTER)]
891+
public static void HandleUndeleteCharacter(Packet packet)
892+
{
893+
packet.ReadInt32("ClientToken");
894+
packet.ReadPackedGuid128("CharacterGuid");
895+
}
896+
820897
[Parser(Opcode.SMSG_PLAYER_CHOICE_CLEAR)]
821898
[Parser(Opcode.SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI)]
822899
[Parser(Opcode.CMSG_CONFIRM_BARBERS_CHOICE)]
823900
[Parser(Opcode.CMSG_ENUM_CHARACTERS)]
901+
[Parser(Opcode.CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT)]
902+
[Parser(Opcode.CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS)]
824903
public static void HandleCharacterEmpty(Packet packet)
825904
{
826905
}

WowPacketParserModule.V5_5_0_61735/Parsers/ChatHandler.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,12 @@ public static void HandleSendTextEmote(Packet packet)
310310
packet.ReadInt32("SpellVisualKitID", i);
311311
}
312312

313+
[Parser(Opcode.CMSG_UPDATE_AADC_STATUS)]
314+
public static void HandleUpdateAADCStatus(Packet packet)
315+
{
316+
packet.ReadBit("ChatDisabled");
317+
}
318+
313319
[Parser(Opcode.CMSG_EMOTE)]
314320
public static void HandleChatNull(Packet packet)
315321
{

WowPacketParserModule.V5_5_0_61735/Parsers/ContactHandler.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ public static void ReadContactInfo(Packet packet, params object[] index)
2727
packet.ReadWoWString("Notes", notesLen);
2828
}
2929

30+
public static void ReadQualifiedGUID(Packet packet, params object[] indexes)
31+
{
32+
packet.ReadInt32("VirtualRealmAddress", indexes);
33+
packet.ReadPackedGuid128("Guid", indexes);
34+
}
35+
3036
[Parser(Opcode.SMSG_CONTACT_LIST)]
3137
public static void HandleContactList(Packet packet)
3238
{
@@ -58,5 +64,44 @@ public static void HandleFriendStatus(Packet packet)
5864
var notesLen = packet.ReadBits(10);
5965
packet.ReadWoWString("Notes", notesLen);
6066
}
67+
68+
[Parser(Opcode.CMSG_SEND_CONTACT_LIST)]
69+
public static void HandleSendContactList(Packet packet)
70+
{
71+
packet.ReadUInt32("Flags");
72+
}
73+
74+
[Parser(Opcode.CMSG_ADD_FRIEND)]
75+
public static void HandleAddFriend(Packet packet)
76+
{
77+
var nameLength = packet.ReadBits(9);
78+
var notesLength = packet.ReadBits(10);
79+
80+
packet.ReadWoWString("Name", nameLength);
81+
packet.ReadWoWString("Notes", notesLength);
82+
}
83+
84+
[Parser(Opcode.CMSG_DEL_FRIEND)]
85+
[Parser(Opcode.CMSG_DEL_IGNORE)]
86+
public static void HandleDeleteFriendOrIgnoreOrMute(Packet packet)
87+
{
88+
ReadQualifiedGUID(packet, "QualifiedGUID");
89+
}
90+
91+
[Parser(Opcode.CMSG_SET_CONTACT_NOTES)]
92+
public static void HandleSetContactNotes(Packet packet)
93+
{
94+
ReadQualifiedGUID(packet, "QualifiedGUID");
95+
var notesLength = packet.ReadBits(10);
96+
packet.ReadWoWString("Notes", notesLength);
97+
}
98+
99+
[Parser(Opcode.CMSG_ADD_IGNORE)]
100+
public static void HandleAddIgnoreOrMute(Packet packet)
101+
{
102+
var nameLength = packet.ReadBits(9);
103+
packet.ReadPackedGuid128("AccountGUID");
104+
packet.ReadWoWString("Name", nameLength);
105+
}
61106
}
62107
}

0 commit comments

Comments
 (0)