Core/BattlePets: Implemented battle pet name query packet

Port From (https://github.com/TrinityCore/TrinityCore/commit/8614690e27df8197586cc702760409293f3f6c3d)
This commit is contained in:
hondacrx
2021-11-23 15:07:17 -05:00
parent 5129b4a45f
commit 0a8541a39c
9 changed files with 150 additions and 39 deletions
+44 -2
View File
@@ -17,6 +17,7 @@
using Framework.Constants;
using Game.BattlePets;
using Game.Entities;
using Game.Networking;
using Game.Networking.Packets;
@@ -54,7 +55,48 @@ namespace Game
[WorldPacketHandler(ClientOpcodes.BattlePetModifyName)]
void HandleBattlePetModifyName(BattlePetModifyName battlePetModifyName)
{
GetBattlePetMgr().ModifyName(battlePetModifyName.PetGuid, battlePetModifyName.Name, battlePetModifyName.DeclinedName.Value);
GetBattlePetMgr().ModifyName(battlePetModifyName.PetGuid, battlePetModifyName.Name, battlePetModifyName.DeclinedNames.Value);
}
[WorldPacketHandler(ClientOpcodes.QueryBattlePetName)]
void HandleQueryBattlePetName(QueryBattlePetName queryBattlePetName)
{
QueryBattlePetNameResponse response = new();
response.BattlePetID = queryBattlePetName.BattlePetID;
Creature summonedBattlePet = ObjectAccessor.GetCreatureOrPetOrVehicle(_player, queryBattlePetName.UnitGUID);
if (!summonedBattlePet || !summonedBattlePet.IsSummon())
{
SendPacket(response);
return;
}
response.CreatureID = summonedBattlePet.GetEntry();
response.Timestamp = summonedBattlePet.GetBattlePetCompanionNameTimestamp();
Unit petOwner = summonedBattlePet.ToTempSummon().GetSummoner();
if (!petOwner.IsPlayer())
{
SendPacket(response);
return;
}
BattlePetMgr.BattlePet battlePet = petOwner.ToPlayer().GetSession().GetBattlePetMgr().GetPet(queryBattlePetName.BattlePetID);
if (battlePet == null)
{
SendPacket(response);
return;
}
response.Allow = true;
response.Name = battlePet.PacketInfo.Name;
if (battlePet.DeclinedName != null)
{
response.HasDeclined = true;
response.DeclinedNames = battlePet.DeclinedName;
}
SendPacket(response);
}
[WorldPacketHandler(ClientOpcodes.BattlePetDeletePet)]
@@ -97,7 +139,7 @@ namespace Game
[WorldPacketHandler(ClientOpcodes.BattlePetSummon, Processing = PacketProcessing.Inplace)]
void HandleBattlePetSummon(BattlePetSummon battlePetSummon)
{
if (_player.m_activePlayerData.SummonedBattlePetGUID != battlePetSummon.PetGuid)
if (_player.GetSummonedBattlePetGUID() != battlePetSummon.PetGuid)
GetBattlePetMgr().SummonPet(battlePetSummon.PetGuid);
else
GetBattlePetMgr().DismissPet();