aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-11-15 09:52:12 +0100
committerShauren <shauren.trinity@gmail.com>2021-11-15 09:52:12 +0100
commitf20b7a10805f2f989e1c44648e1e6ecd9826ef55 (patch)
treed83d1e8240f6e9d596418e6c20c5ac6b3a707345
parent7b9b785c5138c279fea95a9a3c193c0997bf4c16 (diff)
Core/Vehicles: Add additional logging to track issue #24876
-rw-r--r--src/server/game/Entities/Player/Player.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f2549dcf621..bd4e771a74e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20745,7 +20745,20 @@ void Player::StopCastingCharm()
if (charm->ToCreature()->HasUnitTypeMask(UNIT_MASK_PUPPET))
static_cast<Puppet*>(charm)->UnSummon();
else if (charm->IsVehicle())
+ {
ExitVehicle();
+
+ // Temporary for issue https://github.com/TrinityCore/TrinityCore/issues/24876
+ if (!GetCharmedGUID().IsEmpty() && !charm->HasAuraTypeWithCaster(SPELL_AURA_CONTROL_VEHICLE, GetGUID()))
+ {
+ TC_LOG_FATAL("entities.player", "Player::StopCastingCharm Player '%s' (%s) is not able to uncharm vehicle (%s) because of missing SPELL_AURA_CONTROL_VEHICLE",
+ GetName().c_str(), GetGUID().ToString().c_str(), GetCharmedGUID().ToString().c_str());
+
+ // attempt to recover from missing HandleAuraControlVehicle unapply handling
+ // THIS IS A HACK, NEED TO FIND HOW IS IT EVEN POSSBLE TO NOT HAVE THE AURA
+ _ExitVehicle();
+ }
+ }
}
if (GetCharmedGUID())
charm->RemoveCharmAuras();