Skip to content

Commit

Permalink
Send movement updates more often
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Oct 27, 2013
1 parent 64e33f2 commit 133ea9e
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
9 changes: 9 additions & 0 deletions src/main/java/net/citizensnpcs/npc/CitizensNPC.java
Expand Up @@ -21,6 +21,7 @@
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_6_R3.EntityLiving;
import net.minecraft.server.v1_6_R3.Packet34EntityTeleport;

import org.bukkit.Bukkit;
import org.bukkit.Location;
Expand All @@ -38,6 +39,7 @@
public class CitizensNPC extends AbstractNPC {
private EntityController entityController;
private final CitizensNavigator navigator = new CitizensNavigator(this);
private int packetUpdateCount;

public CitizensNPC(int id, String name, EntityController entityController, NPCRegistry registry) {
super(id, name, registry);
Expand Down Expand Up @@ -228,6 +230,13 @@ public void update() {
if (isSpawned()) {
NMS.trySwim(getBukkitEntity());
navigator.run();
if (++packetUpdateCount > 30) {
if (!getNavigator().isNavigating()) {
NMS.sendPacketNearby(getStoredLocation(),
new Packet34EntityTeleport(NMS.getHandle(getBukkitEntity())));
}
packetUpdateCount = 0;
}
}
} catch (Exception ex) {
Throwable error = Throwables.getRootCause(ex);
Expand Down
Expand Up @@ -30,7 +30,6 @@
import net.minecraft.server.v1_6_R3.NetworkManager;
import net.minecraft.server.v1_6_R3.Packet;
import net.minecraft.server.v1_6_R3.Packet201PlayerInfo;
import net.minecraft.server.v1_6_R3.Packet34EntityTeleport;
import net.minecraft.server.v1_6_R3.Packet35EntityHeadRotation;
import net.minecraft.server.v1_6_R3.Packet5EntityEquipment;
import net.minecraft.server.v1_6_R3.PlayerInteractManager;
Expand Down Expand Up @@ -240,11 +239,10 @@ public void updateAI() {
private void updatePackets(boolean navigating) {
if (++packetUpdateCount >= 30) {
Location current = getBukkitEntity().getLocation(packetLocationCache);
Packet[] packets = new Packet[navigating ? 6 : 8];
Packet[] packets = new Packet[navigating ? 6 : 7];
if (!navigating) {
packets[6] = new Packet35EntityHeadRotation(id,
(byte) MathHelper.d(NMS.getHeadYaw(this) * 256.0F / 360.0F));
packets[7] = new Packet34EntityTeleport(this);
}
for (int i = 0; i < 5; i++) {
packets[i] = new Packet5EntityEquipment(id, i, getEquipment(i));
Expand Down

0 comments on commit 133ea9e

Please sign in to comment.