From 4ce08433156d9ce39b851832789f199d71693e49 Mon Sep 17 00:00:00 2001 From: fullwall Date: Fri, 26 Oct 2012 17:52:01 +0800 Subject: [PATCH] Assuming this works --- .../java/net/citizensnpcs/npc/entity/CitizensHumanNPC.java | 6 ++++-- src/main/java/net/citizensnpcs/util/NMS.java | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/citizensnpcs/npc/entity/CitizensHumanNPC.java b/src/main/java/net/citizensnpcs/npc/entity/CitizensHumanNPC.java index de8c133cb..7d19221ab 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/CitizensHumanNPC.java +++ b/src/main/java/net/citizensnpcs/npc/entity/CitizensHumanNPC.java @@ -138,10 +138,12 @@ public class CitizensHumanNPC extends CitizensNPC implements Equipable { public void update() { super.update(); if (isSpawned() && getBukkitEntity().getLocation().getChunk().isLoaded()) { - mcEntity.move(0, -0.2, 0); + if (NMS.inWater(mcEntity)) { + mcEntity.motY += 0.08F; + } else + mcEntity.move(0, -0.2, 0); // gravity! also works around an entity.onGround not updating issue // (onGround is normally updated by the client) - NMS.trySwim(mcEntity, 0.16F); } } } \ No newline at end of file diff --git a/src/main/java/net/citizensnpcs/util/NMS.java b/src/main/java/net/citizensnpcs/util/NMS.java index 17252d542..ae49496b7 100644 --- a/src/main/java/net/citizensnpcs/util/NMS.java +++ b/src/main/java/net/citizensnpcs/util/NMS.java @@ -208,7 +208,7 @@ public class NMS { } public static void trySwim(EntityLiving handle, float power) { - if ((handle.I() || handle.J()) && Math.random() < 0.8F) { + if (inWater(handle) && Math.random() < 0.8F) { handle.motY += power; } } @@ -276,4 +276,8 @@ public class NMS { Messaging.logTr(Messages.ERROR_GETTING_ID_MAPPING, e.getMessage()); } } + + public static boolean inWater(EntityLiving mcEntity) { + return mcEntity.I() || mcEntity.J(); + } }