Fix camera desync#13207
Conversation
|
Where are you getting the player camera to have this happen? This seems xy, I donno. |
|
when I teleport player to a different world and set camera directly after that (so player has not yet fully loaded the world, entities do not exist for them, so there's no entity to set camera to - I checked client code for that) |
|
Couldnt you instead run that logic in the PlayerClientLoadedWorldEvent instead of setting the entity in that spot? |
no, the event is not called on dimension change (which, imo, is wrong, because the packet is being sent on dimension change too). either way, it is a desync and should be fixed in Paper, not with a plugin. |
|
Okay, the event not firing on dimension change is a bug due to paper reusing the player entity on dimension switch. |
|
The issue is the spectator logic is VERY client state dependent and is prone to stuff like this. |
# Conflicts: # paper-server/patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch
|
I believe that the proper fix is to instead use the player ready event, and on |
@Owen1212055 are you sure it should be |
|
Hmmm, thinking about this again, I really am not sure of the best fix. Since even at the current position with using that packet, its not really even guaranteed that the client can see that entity. If you wait a tick after PlayerTrackEntityEvent and then set the camera only when its received how does that look? |
Setting player's camera before they had sent
ServerboundPlayerLoadedPacketdesyncs it.This should fix it