Core/BattlePets: Implemented battle pet name query packet
Port From (https://github.com/TrinityCore/TrinityCore/commit/8614690e27df8197586cc702760409293f3f6c3d)
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user