From 8d6b56daa2ef8c476fb498d0574ffb5dbeb3ed08 Mon Sep 17 00:00:00 2001 From: fullwall Date: Fri, 14 Feb 2020 22:47:19 +0800 Subject: [PATCH] Reduce default movement speed on 1.15 villagers --- .../v1_15_R1/entity/VillagerController.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java index a0478cfc2..937614cb4 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/VillagerController.java @@ -26,6 +26,7 @@ import net.minecraft.server.v1_15_R1.EntityLightning; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.EntityVillager; import net.minecraft.server.v1_15_R1.EnumHand; +import net.minecraft.server.v1_15_R1.GenericAttributes; import net.minecraft.server.v1_15_R1.IBlockData; import net.minecraft.server.v1_15_R1.MerchantRecipe; import net.minecraft.server.v1_15_R1.NBTTagCompound; @@ -60,6 +61,7 @@ public class VillagerController extends MobEntityController { this.npc = (CitizensNPC) npc; if (npc != null) { NMSImpl.clearGoals(goalSelector, targetSelector); + getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3); } } @@ -154,28 +156,6 @@ public class VillagerController extends MobEntityController { } } - @Override - public void h(double x, double y, double z) { - if (npc == null) { - super.h(x, y, z); - return; - } - if (NPCPushEvent.getHandlerList().getRegisteredListeners().length == 0) { - if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) - super.h(x, y, z); - return; - } - Vector vector = new Vector(x, y, z); - NPCPushEvent event = Util.callPushEvent(npc, vector); - if (!event.isCancelled()) { - vector = event.getCollisionVector(); - super.h(vector.getX(), vector.getY(), vector.getZ()); - } - // when another entity collides, this method is called to push the - // NPC so we prevent it from doing anything if the event is - // cancelled. - } - @Override public CraftEntity getBukkitEntity() { if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { @@ -204,6 +184,28 @@ public class VillagerController extends MobEntityController { return NMSImpl.getSoundEffect(npc, super.getSoundHurt(damagesource), NPC.HURT_SOUND_METADATA); } + @Override + public void h(double x, double y, double z) { + if (npc == null) { + super.h(x, y, z); + return; + } + if (NPCPushEvent.getHandlerList().getRegisteredListeners().length == 0) { + if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) + super.h(x, y, z); + return; + } + Vector vector = new Vector(x, y, z); + NPCPushEvent event = Util.callPushEvent(npc, vector); + if (!event.isCancelled()) { + vector = event.getCollisionVector(); + super.h(vector.getX(), vector.getY(), vector.getZ()); + } + // when another entity collides, this method is called to push the + // NPC so we prevent it from doing anything if the event is + // cancelled. + } + public boolean isBlockingTrades() { return blockTrades; }