From fe370258db639c9884824b35ee3031a2cbdea9a5 Mon Sep 17 00:00:00 2001 From: fullwall Date: Sun, 1 Dec 2013 18:51:43 +0800 Subject: [PATCH] Fix player animations --- .../npc/entity/EntityHumanNPC.java | 3 +-- .../citizensnpcs/util/PlayerAnimation.java | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java b/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java index 96b8f4434..56e522233 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java +++ b/src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java @@ -196,8 +196,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder { // swallow } - NMS.setStepHeight(this, 1);// stepHeight - must not stay as the default - // 0 (breaks steps). + NMS.setStepHeight(this, 1); // the default (0) breaks step climbing try { socket.close(); diff --git a/src/main/java/net/citizensnpcs/util/PlayerAnimation.java b/src/main/java/net/citizensnpcs/util/PlayerAnimation.java index 4c056a897..824d7aef5 100644 --- a/src/main/java/net/citizensnpcs/util/PlayerAnimation.java +++ b/src/main/java/net/citizensnpcs/util/PlayerAnimation.java @@ -15,29 +15,31 @@ public enum PlayerAnimation { ARM_SWING { @Override protected void playAnimation(EntityPlayer player, int radius) { - PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 1); - sendPacketNearby(packet, player, radius); + playDefaultAnimation(player, radius, 0); } }, CRIT { @Override protected void playAnimation(EntityPlayer player, int radius) { - PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 6); - sendPacketNearby(packet, player, radius); + playDefaultAnimation(player, radius, 4); + } + }, + EAT_FOOD { + @Override + protected void playAnimation(EntityPlayer player, int radius) { + playDefaultAnimation(player, radius, 3); } }, HURT { @Override protected void playAnimation(EntityPlayer player, int radius) { - PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 2); - sendPacketNearby(packet, player, radius); + playDefaultAnimation(player, radius, 1); } }, MAGIC_CRIT { @Override protected void playAnimation(EntityPlayer player, int radius) { - PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 7); - sendPacketNearby(packet, player, radius); + playDefaultAnimation(player, radius, 5); } }, SIT { @@ -71,8 +73,7 @@ public enum PlayerAnimation { STOP_SLEEPING { @Override protected void playAnimation(EntityPlayer player, int radius) { - PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, 3); - sendPacketNearby(packet, player, radius); + playDefaultAnimation(player, radius, 2); } }, STOP_SNEAKING { @@ -96,6 +97,11 @@ public enum PlayerAnimation { throw new UnsupportedOperationException("unimplemented animation"); } + protected void playDefaultAnimation(EntityPlayer player, int radius, int code) { + PacketPlayOutAnimation packet = new PacketPlayOutAnimation(player, code); + sendPacketNearby(packet, player, radius); + } + protected void sendPacketNearby(Packet packet, EntityPlayer player, int radius) { NMS.sendPacketsNearby(player.getBukkitEntity().getLocation(), Arrays.asList(packet), radius); }