diff --git a/src/main/java/net/minecraft/entity/EntityTrackerEntry.java b/src/main/java/net/minecraft/entity/EntityTrackerEntry.java index f638856..378c6ae 100644 --- a/src/main/java/net/minecraft/entity/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/entity/EntityTrackerEntry.java @@ -114,7 +114,7 @@ public void sendLocationToAllClients(List p_73122_1_) { - this.playerEntitiesUpdated = false; + boolean playerEntitiesUpdated = false; if (!this.isDataInitialized || posX != this.myEntity.chunkCoordX || posZ != this.myEntity.chunkCoordZ) { @@ -122,9 +122,11 @@ this.posY = this.myEntity.posY; this.posZ = this.myEntity.chunkCoordZ; this.isDataInitialized = true; - this.playerEntitiesUpdated = true; - this.sendEventsToPlayers(p_73122_1_); + playerEntitiesUpdated = true; +// this.sendEventsToPlayers(p_73122_1_); + // Moved below to lastScaled(*)Position be calculated first (fixes bug with invisible players) } + this.playerEntitiesUpdated = playerEntitiesUpdated; if (this.field_85178_v != this.myEntity.ridingEntity || this.myEntity.ridingEntity != null && this.ticks % 60 == 0) { @@ -158,11 +160,11 @@ this.sendMetadataToAllAssociatedPlayers(); } - else if(trackingPlayers.size() == 0) + else if(trackingPlayers.size() == 0 && !playerEntitiesUpdated) { // No players - no tracking } - else if (this.ticks % this.updateFrequency == 0 || this.myEntity.isAirBorne || this.myEntity.getDataWatcher().hasChanges()) + else if (this.ticks % this.updateFrequency == 0 || this.myEntity.isAirBorne || this.myEntity.getDataWatcher().hasChanges() || playerEntitiesUpdated) { int i; int j; @@ -283,6 +285,9 @@ this.func_151261_b(new S12PacketEntityVelocity(this.myEntity)); this.myEntity.velocityChanged = false; } + + if(playerEntitiesUpdated) + this.sendEventsToPlayers(p_73122_1_); } private void sendMetadataToAllAssociatedPlayers()