mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-16 06:30:46 +01:00
Fix entity position desync for hanging entities (#7659)
This commit is contained in:
parent
83cd94ea93
commit
379422ee03
1 changed files with 5 additions and 2 deletions
|
@ -5,7 +5,10 @@ Subject: [PATCH] Fix Entity Position Desync
|
|||
|
||||
If entities were teleported in the first tick it would not be send to the client.
|
||||
|
||||
This also fixes desync caused be relatively teleporting paintings.
|
||||
This excludes hanging entities, as this fix caused problematic behavior due to them having their own
|
||||
position field.
|
||||
|
||||
This also fixes desync caused be relatively teleporting paintings. (https://bugs.mojang.com/browse/MC-249169)
|
||||
This is caused by the fact that setPacketCoordinates isn't called on paintings when they are spawned (unlike every other entity, like XP orbs)
|
||||
on the client for some reason. This causes it to be relatively teleported to the world origin (0,0,0).
|
||||
|
||||
|
@ -18,7 +21,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
// CraftBukkit end
|
||||
|
||||
- if (this.tickCount > 0 || this.entity instanceof AbstractArrow) {
|
||||
+ if (true || this.tickCount > 0 || this.entity instanceof AbstractArrow) { // Paper - Always update position
|
||||
+ if (!(this.entity instanceof net.minecraft.world.entity.decoration.HangingEntity) || this.tickCount > 0 || this.entity instanceof AbstractArrow) { // Paper - Always update position
|
||||
// Paper start - remove allocation of Vec3D here
|
||||
long k = ClientboundMoveEntityPacket.entityToPacket(vec3d_dx);
|
||||
long l = ClientboundMoveEntityPacket.entityToPacket(vec3d_dy);
|
||||
|
|
Loading…
Reference in a new issue