diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 52bee311a..0bd855652 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -11673,6 +11673,12 @@ void Player::SendInitialPacketsAfterAddToMap() auraList.front()->HandleEffect(this, AURA_EFFECT_HANDLE_SEND_FOR_CLIENT, true); } + // Explicitly synchronize CAN_FLY state with client on login to prevent + // players from retaining flight ability after disconnecting during a + // teleport from a flyable to non-flyable zone (e.g. entering an instance). + if (!HasIncreaseMountedFlightSpeedAura() && !HasFlyAura()) + SetCanFly(false); + // Fix mount, update block gets messed somewhere { if (!isBeingLoaded() && GetMountBlockId() && !HasMountedAura())