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().GetSummonerUnit(); if (!petOwner.IsPlayer()) { SendPacket(response); return; } BattlePet battlePet = petOwner.ToPlayer().GetSession().GetBattlePetMgr().GetPet(queryBattlePetName.BattlePetID); if (battlePet == null) { SendPacket(response); return; } response.Name = battlePet.PacketInfo.Name; if (battlePet.DeclinedName != null) { response.HasDeclined = true; response.DeclinedNames = battlePet.DeclinedName; } response.Allow = !response.Name.IsEmpty(); SendPacket(response); }