aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2016-12-31 20:50:56 +0100
committerShauren <shauren.trinity@gmail.com>2016-12-31 20:50:56 +0100
commit8ce5712552df47c6eff45c596b95a8890826d8b4 (patch)
treedd4ea473bf64210fec46c9315d64b20ff11d5d50 /src
parent48f30911b9e09e45ed4426d41c4284141037bcc6 (diff)
Core/Pets: Fixed exploit where warlock can abandon its pet to generate new name (#18606)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/PetHandler.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index 6be8389a485..348f6048064 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -676,20 +676,15 @@ void WorldSession::HandlePetAbandon(WorldPacket& recvData)
// pet/charmed
Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, guid);
- if (pet)
+ if (pet && pet->ToPet() && pet->ToPet()->getPetType() == HUNTER_PET)
{
- if (pet->IsPet())
+ if (pet->GetGUID() == _player->GetPetGUID())
{
- if (pet->GetGUID() == _player->GetPetGUID())
- {
- uint32 feelty = pet->GetPower(POWER_HAPPINESS);
- pet->SetPower(POWER_HAPPINESS, feelty > 50000 ? (feelty-50000) : 0);
- }
-
- _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED);
+ uint32 feelty = pet->GetPower(POWER_HAPPINESS);
+ pet->SetPower(POWER_HAPPINESS, feelty > 50000 ? (feelty-50000) : 0);
}
- else if (pet->GetGUID() == _player->GetCharmGUID())
- _player->StopCastingCharm();
+
+ _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED);
}
}