Skip to content

Commit daaae77

Browse files
committed
Add 5.5.0 CMSG handlers
CMSG_REQUEST_RATED_PVP_INFO CMSG_GENERATE_RANDOM_CHARACTER_NAME CMSG_ENUM_CHARACTERS CMSG_REORDER_CHARACTERS CMSG_PLAYER_LOGIN CMSG_GET_PVP_OPTIONS_ENABLED CMSG_REQUEST_PARTY_JOIN_UPDATES CMSG_LOADING_SCREEN_NOTIFY CMSG_WORLD_PORT_RESPONSE CMSG_SEND_MAIL CMSG_ACCEPT_GUILD_INVITE CMSG_GUILD_DECLINE_INVITATION CMSG_PARTY_INVITE CMSG_PARTY_INVITE_RESPONSE CMSG_GUILD_INVITE_BY_NAME CMSG_DF_PROPOSAL_RESPONSE CMSG_DF_JOIN CMSG_LFG_LIST_LEAVE CMSG_LFG_LIST_GET_STATUS CMSG_LFG_LIST_APPLY_TO_GROUP CMSG_LFG_LIST_CANCEL_APPLICATION CMSG_LFG_LIST_DECLINE_APPLICANT CMSG_LFG_LIST_INVITE_APPLICANT CMSG_LFG_LIST_INVITE_RESPONSE CMSG_DF_LEAVE CMSG_DF_GET_SYSTEM_INFO CMSG_DF_GET_JOIN_STATUS CMSG_DF_SET_ROLES CMSG_DF_BOOT_PLAYER_VOTE CMSG_DF_TELEPORT CMSG_SET_EVERYONE_IS_ASSISTANT CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK CMSG_BATTLE_PET_REQUEST_JOURNAL CMSG_BATTLE_PET_DELETE_PET CMSG_BATTLE_PET_DELETE_PET_CHEAT CMSG_BATTLE_PET_MODIFY_NAME CMSG_BATTLE_PET_SUMMON CMSG_BATTLE_PET_SET_BATTLE_SLOT CMSG_BATTLE_PET_SET_FLAGS CMSG_MOUNT_SET_FAVORITE CMSG_COLLECTION_ITEM_SET_FAVORITE CMSG_DO_READY_CHECK CMSG_READY_CHECK_RESPONSE CMSG_PET_BATTLE_INPUT CMSG_PET_BATTLE_REPLACE_FRONT_PET CMSG_CREATE_CHARACTER CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT CMSG_SUPPORT_TICKET_SUBMIT_BUG CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION CMSG_PARTY_UNINVITE CMSG_SET_LOOT_METHOD CMSG_LEAVE_GROUP CMSG_SET_PARTY_LEADER CMSG_MINIMAP_PING CMSG_CHANGE_SUB_GROUP CMSG_SWAP_SUB_GROUPS CMSG_CONVERT_RAID CMSG_SET_ASSISTANT_LEADER CMSG_UPDATE_RAID_TARGET CMSG_SET_PARTY_ASSIGNMENT CMSG_REQUEST_PARTY_MEMBER_STATS CMSG_RANDOM_ROLL CMSG_MAIL_RETURN_TO_SENDER CMSG_QUERY_SCENARIO_POI CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT CMSG_QUERY_CORPSE_TRANSPORT CMSG_CAN_DUEL CMSG_UPDATE_CLIENT_SETTINGS CMSG_RESET_INSTANCES CMSG_SUMMON_RESPONSE CMSG_COMPLAINT CMSG_CALENDAR_GET CMSG_CALENDAR_GET_EVENT CMSG_CALENDAR_COMMUNITY_INVITE CMSG_CALENDAR_INVITE CMSG_CALENDAR_REMOVE_INVITE
1 parent ea8f8ce commit daaae77

17 files changed

Lines changed: 874 additions & 1 deletion

WowPacketParserModule.V5_5_0_61735/Parsers/BattlePetHandler.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,21 @@ public static void ReadPetBattleLocations(Packet packet, params object[] idx)
319319
packet.ReadVector3("PlayerPositions", idx, i);
320320
}
321321

322+
public static void ReadPetBattleInput(Packet packet, params object[] idx)
323+
{
324+
packet.ReadInt32("MoveType");
325+
packet.ReadSByte("NewFrontPet");
326+
packet.ReadInt32("DebugFlags");
327+
packet.ReadByte("BattleInterrupted");
328+
329+
packet.ReadInt32("AbilityID");
330+
packet.ReadInt32("Round");
331+
332+
packet.ResetBitReader();
333+
334+
packet.ReadBit("IgnoreAbandonPenalty");
335+
}
336+
322337
[Parser(Opcode.SMSG_BATTLE_PET_UPDATES)]
323338
public static void HandleBattlePetUpdates(Packet packet)
324339
{
@@ -366,6 +381,9 @@ public static void HandleBattlePetJournal(Packet packet)
366381
[Parser(Opcode.CMSG_BATTLE_PET_CLEAR_FANFARE)]
367382
[Parser(Opcode.CMSG_BATTLE_PET_UPDATE_NOTIFY)]
368383
[Parser(Opcode.CMSG_CAGE_BATTLE_PET)]
384+
[Parser(Opcode.CMSG_BATTLE_PET_DELETE_PET)]
385+
[Parser(Opcode.CMSG_BATTLE_PET_DELETE_PET_CHEAT)]
386+
[Parser(Opcode.CMSG_BATTLE_PET_SUMMON)]
369387
public static void HandleBattlePetDeletePet(Packet packet)
370388
{
371389
packet.ReadPackedGuid128("BattlePetGUID");
@@ -486,6 +504,56 @@ public static void HandleBattlePetQuery(Packet packet)
486504
packet.ReadPackedGuid128("UnitGUID");
487505
}
488506

507+
[Parser(Opcode.CMSG_BATTLE_PET_MODIFY_NAME)]
508+
public static void HandleBattlePetModifyName(Packet packet)
509+
{
510+
packet.ReadPackedGuid128("BattlePetGUID");
511+
512+
packet.ResetBitReader();
513+
514+
var nameLen = packet.ReadBits(7);
515+
var hasDeclinedNames = packet.ReadBit("HasDeclinedNames");
516+
517+
if (hasDeclinedNames)
518+
{
519+
var declinedNamesLen = new uint[5];
520+
for (int i = 0; i < 5; i++)
521+
declinedNamesLen[i] = packet.ReadBits(7);
522+
523+
for (int i = 0; i < 5; i++)
524+
packet.ReadWoWString("DeclinedNames", declinedNamesLen[i]);
525+
}
526+
527+
packet.ReadWoWString("Name", nameLen);
528+
}
529+
530+
[Parser(Opcode.CMSG_BATTLE_PET_SET_BATTLE_SLOT)]
531+
public static void HandleBattlePetSetBattleSlot(Packet packet)
532+
{
533+
packet.ReadPackedGuid128("BattlePetGUID");
534+
packet.ReadByte("SlotIndex");
535+
}
536+
537+
[Parser(Opcode.CMSG_BATTLE_PET_SET_FLAGS)]
538+
public static void HandleBattlePetSetFlags(Packet packet)
539+
{
540+
packet.ReadPackedGuid128("BattlePetGUID");
541+
packet.ReadUInt16("Flags");
542+
packet.ReadBits("ControlType", 2);
543+
}
544+
545+
[Parser(Opcode.CMSG_PET_BATTLE_INPUT)]
546+
public static void HandlePetBattleInput(Packet packet)
547+
{
548+
ReadPetBattleInput(packet, "PetBattleInput");
549+
}
550+
551+
[Parser(Opcode.CMSG_PET_BATTLE_REPLACE_FRONT_PET)]
552+
public static void HandlePetBattleReplaceFrontPet(Packet packet)
553+
{
554+
packet.ReadSByte("FrontPet");
555+
}
556+
489557
[Parser(Opcode.SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED)]
490558
[Parser(Opcode.SMSG_BATTLE_PET_JOURNAL_LOCK_DENIED)]
491559
[Parser(Opcode.SMSG_BATTLE_PETS_HEALED)]
@@ -497,6 +565,8 @@ public static void HandleBattlePetQuery(Packet packet)
497565
[Parser(Opcode.CMSG_PET_BATTLE_QUIT_NOTIFY)]
498566
[Parser(Opcode.CMSG_PET_BATTLE_FINAL_NOTIFY)]
499567
[Parser(Opcode.CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY)]
568+
[Parser(Opcode.CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK)]
569+
[Parser(Opcode.CMSG_BATTLE_PET_REQUEST_JOURNAL)]
500570
public static void HandleBattlePetZero(Packet packet)
501571
{
502572
}

WowPacketParserModule.V5_5_0_61735/Parsers/BattlegroundHandler.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,8 @@ public static void HandleRequestCrowdControlSpell(Packet packet)
580580
[Parser(Opcode.CMSG_REQUEST_SCHEDULED_PVP_INFO)]
581581
[Parser(Opcode.CMSG_HEARTH_AND_RESURRECT)]
582582
[Parser(Opcode.CMSG_REQUEST_BATTLEFIELD_STATUS)]
583+
[Parser(Opcode.CMSG_REQUEST_RATED_PVP_INFO)]
584+
[Parser(Opcode.CMSG_GET_PVP_OPTIONS_ENABLED)]
583585
public static void HandleBattlegroundZero(Packet packet)
584586
{
585587
}

WowPacketParserModule.V5_5_0_61735/Parsers/CalendarHandler.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,47 @@ public static void HandleCalendarCommandResult(Packet packet)
319319
packet.ReadWoWString("Name", nameLen);
320320
}
321321

322+
[Parser(Opcode.CMSG_CALENDAR_GET_EVENT)]
323+
public static void HandleGetCalendarEvent(Packet packet)
324+
{
325+
packet.ReadUInt64("EventID");
326+
}
327+
328+
[Parser(Opcode.CMSG_CALENDAR_COMMUNITY_INVITE)]
329+
public static void HandleUserClientCalendarCommunityInvite(Packet packet)
330+
{
331+
packet.ReadUInt64("ClubID");
332+
packet.ReadByte("MinLevel");
333+
packet.ReadByte("MaxLevel");
334+
packet.ReadByte("MaxRankOrder");
335+
}
336+
337+
[Parser(Opcode.CMSG_CALENDAR_INVITE)]
338+
public static void HandleCalendarInvite(Packet packet)
339+
{
340+
packet.ReadUInt64("EventID");
341+
packet.ReadUInt64("ModeratorID");
342+
packet.ReadUInt64("ClubID");
343+
344+
var nameLen = packet.ReadBits(9);
345+
packet.ReadBit("Creating");
346+
packet.ReadBit("IsSignUp");
347+
packet.ResetBitReader();
348+
349+
packet.ReadWoWString("Name", nameLen);
350+
}
351+
352+
[Parser(Opcode.CMSG_CALENDAR_REMOVE_INVITE)]
353+
public static void HandleCalendarRemoveInvite(Packet packet)
354+
{
355+
packet.ReadPackedGuid128("Guid");
356+
packet.ReadUInt64("InviteID");
357+
packet.ReadUInt64("ModeratorID");
358+
packet.ReadUInt64("EventID");
359+
}
360+
322361
[Parser(Opcode.SMSG_CALENDAR_CLEAR_PENDING_ACTION)]
362+
[Parser(Opcode.CMSG_CALENDAR_GET)]
323363
public static void HandleCalenderZero(Packet packet)
324364
{
325365
}

WowPacketParserModule.V5_5_0_61735/Parsers/CharacterHandler.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -765,9 +765,62 @@ public static void HandleShowingCloakAndHelm434(Packet packet)
765765
packet.ReadBool("Showing");
766766
}
767767

768+
[Parser(Opcode.CMSG_GENERATE_RANDOM_CHARACTER_NAME)]
769+
public static void HandleGenerateRandomCharacterNameQuery(Packet packet)
770+
{
771+
packet.ReadByteE<Race>("Race");
772+
packet.ReadSByteE<Gender>("Sex");
773+
}
774+
775+
[Parser(Opcode.CMSG_REORDER_CHARACTERS)]
776+
public static void HandleReorderCharacters(Packet packet)
777+
{
778+
var count = packet.ReadBits("CharactersCount", 9);
779+
780+
for (var i = 0; i < count; ++i)
781+
{
782+
packet.ReadPackedGuid128("PlayerGUID");
783+
packet.ReadByte("NewPosition", i);
784+
}
785+
}
786+
787+
[Parser(Opcode.CMSG_MOUNT_SET_FAVORITE)]
788+
public static void HandleMountSetFavorite(Packet packet)
789+
{
790+
packet.ReadInt32("MountSpellID");
791+
packet.ReadBit("IsFavorite");
792+
}
793+
794+
[Parser(Opcode.CMSG_CREATE_CHARACTER)]
795+
public static void HandleClientCharCreate(Packet packet)
796+
{
797+
var nameLen = packet.ReadBits(6);
798+
var hasTemplateSet = packet.ReadBit("HasTemplateSet");
799+
packet.ReadBit("IsTrialBoost");
800+
packet.ReadBit("UseNPE");
801+
packet.ReadBit("HardcoreSelfFound");
802+
packet.ResetBitReader();
803+
804+
packet.ReadByteE<Race>("RaceID");
805+
packet.ReadByteE<Class>("ClassID");
806+
packet.ReadByteE<Gender>("SexID");
807+
808+
var customizationCount = packet.ReadUInt32();
809+
packet.ReadInt32("TimerunningSeasonID");
810+
811+
packet.ReadWoWString("Name", nameLen);
812+
813+
if (hasTemplateSet)
814+
packet.ReadInt32("TemplateSetID");
815+
816+
for (var i = 0u; i < customizationCount; ++i)
817+
ReadChrCustomizationChoice(packet, "Customizations", i);
818+
}
819+
768820
[Parser(Opcode.SMSG_PLAYER_CHOICE_CLEAR)]
769821
[Parser(Opcode.SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI)]
770822
[Parser(Opcode.CMSG_CONFIRM_BARBERS_CHOICE)]
823+
[Parser(Opcode.CMSG_ENUM_CHARACTERS)]
771824
public static void HandleCharacterEmpty(Packet packet)
772825
{
773826
}

WowPacketParserModule.V5_5_0_61735/Parsers/CombatHandler.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ public static void HandleDuelResponse(Packet packet)
182182
packet.ReadBit("Forfeited");
183183
}
184184

185+
[Parser(Opcode.CMSG_CAN_DUEL)]
186+
public static void HandleCanDuel(Packet packet)
187+
{
188+
packet.ReadPackedGuid128("TargetGUID");
189+
packet.ReadBit("ToTheDeath");
190+
}
191+
185192
[Parser(Opcode.SMSG_DUEL_OUT_OF_BOUNDS)]
186193
[Parser(Opcode.SMSG_DUEL_IN_BOUNDS)]
187194
[Parser(Opcode.SMSG_CANCEL_COMBAT)]

WowPacketParserModule.V5_5_0_61735/Parsers/CorpseHandler.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,18 @@ public static void HandleReclaimCorpse(Packet packet)
3939
{
4040
packet.ReadPackedGuid128("CorpseGUID");
4141
}
42+
43+
[Parser(Opcode.CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT)]
44+
public static void HandleQueryCorpseLocationFromClient(Packet packet)
45+
{
46+
packet.ReadPackedGuid128("Player");
47+
}
48+
49+
[Parser(Opcode.CMSG_QUERY_CORPSE_TRANSPORT)]
50+
public static void HandleQueryCorpseTransport(Packet packet)
51+
{
52+
packet.ReadPackedGuid128("Player");
53+
packet.ReadPackedGuid128("Transport");
54+
}
4255
}
4356
}

0 commit comments

Comments
 (0)