mirror of
https://github.com/PaperMC/Folia.git
synced 2025-04-21 11:49:20 +08:00
There are several problems that were solved: 1. Spectating failed to follow players through cross-region/cross-world teleporting. 2. Inability to set camera to off-region entity 3. Various crashes involved with off-region camera entity 4. Spectator does not always follow entities through portals We fix #1 by sending ClientboundSetCameraPacket when the spectated entity becomes in tracked, as the client appears to be unable to correctly handle when the camera entity is removed, even temporarily. We fix #2 by allowing off-region entities that are not dead. However, this required the teleportation code in both setCamera and the ServerPlayer#tick method to be modified to correctly handle off-region camera targets. We fix #3 by correctly teleporting to off-region locations when needed. We fix #4 by following the Bukkit entity. This allows spectator mode to properly follow non-player entities through portals. Issues #1 (cross-world) and #4 are probably present in Paper/Vanilla, however solving #2 and #3 required a solution for these. Fixes https://github.com/PaperMC/Folia/issues/324