aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/PetHandler.cpp
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2016-12-31 20:50:56 +0100
committerShauren <shauren.trinity@gmail.com>2018-12-09 14:18:42 +0100
commit0a2876c09199e17728d7ef32f891f9037f536b90 (patch)
treef91fa3993cf66596db9b9622c4617817850c5292 /src/server/game/Handlers/PetHandler.cpp
parent95d7a1ff13d2eb23f492501d3042b9a426aae634 (diff)
Core/Pets: Fixed exploit where warlock can abandon its pet to generate new name (#18606)
(cherry-picked from 8ce5712552df47c6eff45c596b95a8890826d8b4)
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r--src/server/game/Handlers/PetHandler.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index 3b1ff9b7d36..4d91ee2d11b 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -592,13 +592,11 @@ void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet)
if (!_player->IsInWorld())
return;
+ // pet/charmed
Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, packet.Pet);
- if (pet)
+ if (pet && pet->ToPet() && pet->ToPet()->getPetType() == HUNTER_PET)
{
- if (pet->IsPet())
- _player->RemovePet(pet->ToPet(), PET_SAVE_AS_DELETED);
- else if (pet->GetGUID() == _player->GetCharmGUID())
- _player->StopCastingCharm();
+ _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED);
}
}