diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java index 4de1273206..9e2b76f896 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -56,9 +56,9 @@ public class EntityTracker { } else if (entity instanceof EntityItem) { this.addEntity(entity, 64, 20, true); } else if (entity instanceof EntityMinecartAbstract) { - this.addEntity(entity, 80, 3, true); + this.addEntity(entity, 80, 2, true); // CraftBukkit - Send updates at same rate as players } else if (entity instanceof EntityBoat) { - this.addEntity(entity, 80, 3, true); + this.addEntity(entity, 80, 2, true); // CraftBukkit - Send updates at same rate as players } else if (entity instanceof EntitySquid) { this.addEntity(entity, 64, 3, true); } else if (entity instanceof EntityWither) { diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java index 4871bd7301..65cc4e8422 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -68,7 +68,7 @@ public class EntityTrackerEntry { this.scanPlayers(list); } - if (this.v != this.tracker.vehicle || this.tracker.vehicle != null && this.m % 60 == 0) { + if (this.v != this.tracker.vehicle /* || this.tracker.vehicle != null && this.m % 60 == 0 */) { // CraftBukkit - Revert to 1.4 logic, this packet is a toggle this.v = this.tracker.vehicle; this.broadcast(new Packet39AttachEntity(this.tracker, this.tracker.vehicle)); } @@ -318,9 +318,13 @@ public class EntityTrackerEntry { entityplayer.playerConnection.sendPacket(new Packet28EntityVelocity(this.tracker.id, this.tracker.motX, this.tracker.motY, this.tracker.motZ)); } - if (this.tracker.vehicle != null) { + // CraftBukkit start + if (this.tracker.vehicle != null && this.tracker.id > this.tracker.vehicle.id) { entityplayer.playerConnection.sendPacket(new Packet39AttachEntity(this.tracker, this.tracker.vehicle)); + } else if (this.tracker.passenger != null && this.tracker.id > this.tracker.passenger.id) { + entityplayer.playerConnection.sendPacket(new Packet39AttachEntity(this.tracker.passenger, this.tracker)); } + // CraftBukkit end if (this.tracker instanceof EntityLiving) { for (int i = 0; i < 5; ++i) {