From 890bc4ceab47ba50c8f271c0b477aed91115de8e Mon Sep 17 00:00:00 2001 From: fullwall Date: Tue, 17 Sep 2019 19:24:38 +0800 Subject: [PATCH] Check for behavior controller modification - fixes #1901 --- .../citizensnpcs/nms/v1_14_R1/entity/VillagerController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java index ef9776416..a711fbc38 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/VillagerController.java @@ -17,6 +17,7 @@ import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; +import net.minecraft.server.v1_14_R1.BehaviorController; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.DamageSource; import net.minecraft.server.v1_14_R1.DataWatcherObject; @@ -48,6 +49,7 @@ public class VillagerController extends MobEntityController { private boolean blockTrades = true; boolean calledNMSHeight = false; private final CitizensNPC npc; + private BehaviorController previousBehaviorController; public EntityVillagerNPC(EntityTypes types, World world) { this(types, world, null); @@ -230,8 +232,9 @@ public class VillagerController extends MobEntityController { @Override public void mobTick() { if (npc != null) { - if (this.behaviorMap == null) { + if (this.behaviorMap == null || this.previousBehaviorController != this.getBehaviorController()) { this.behaviorMap = NMSImpl.getBehaviorMap(this); + this.previousBehaviorController = this.getBehaviorController(); } if (this.behaviorMap.size() > 0) { this.behaviorMap.clear();