Rewrote a bit of Player::teleport()