void WorldSession::HandlePetRename(WorldPacket& recv_data) { DETAIL_LOG("HandlePetRename. CMSG_PET_RENAME"); ObjectGuid petGuid; std::string name; recv_data >> petGuid; recv_data >> name; Pet* pet = _player->GetMap()->GetPet(petGuid); // check it! if (!pet || pet->getPetType() != HUNTER_PET || !pet->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_RENAME) || pet->GetOwnerGuid() != _player->GetObjectGuid() || !pet->GetCharmInfo()) return; PetNameInvalidReason res = ObjectMgr::CheckPetName(name); if (res != PET_NAME_SUCCESS) { SendPetNameInvalid(res, name); return; } if (sObjectMgr.IsReservedName(name)) { SendPetNameInvalid(PET_NAME_RESERVED, name); return; } pet->SetName(name); if (_player->GetGroup()) _player->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_NAME); pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_RENAME); CharacterDatabase.BeginTransaction(); CharacterDatabase.escape_string(name); CharacterDatabase.PExecute("UPDATE character_pet SET name = '%s', renamed = '1' WHERE owner = '%u' AND id = '%u'", name.c_str(), _player->GetGUIDLow(), pet->GetCharmInfo()->GetPetNumber()); CharacterDatabase.CommitTransaction(); pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(time(nullptr))); }