From cc14768607eebb6fb6e691709cd6d9e2b05d78b2 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 11 May 2020 20:36:35 +0800 Subject: [PATCH] New finder now sets the passenger movement for horses --- .../citizensnpcs/npc/ai/AStarNavigationStrategy.java | 10 +++++++++- .../net/citizensnpcs/npc/ai/CitizensNavigator.java | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java b/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java index c66cc0301..0f5238c3d 100644 --- a/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java +++ b/main/src/main/java/net/citizensnpcs/npc/ai/AStarNavigationStrategy.java @@ -5,6 +5,7 @@ import java.util.List; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.util.Vector; import com.google.common.collect.Lists; @@ -25,6 +26,7 @@ import net.citizensnpcs.api.astar.pathfinder.VectorGoal; import net.citizensnpcs.api.astar.pathfinder.VectorNode; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.util.NMS; +import net.citizensnpcs.util.Util; public class AStarNavigationStrategy extends AbstractPathStrategy { private final Location destination; @@ -164,7 +166,13 @@ public class AStarNavigationStrategy extends AbstractPathStrategy { if (distance > 0 && dY > NMS.getStepHeight(npc.getEntity()) && xzDistance <= 2.75) { NMS.setShouldJump(npc.getEntity()); } - NMS.setDestination(npc.getEntity(), destVector.getX(), destVector.getY(), destVector.getZ(), params.speed()); + if (Util.isHorse(npc.getEntity().getType())) { + Entity passenger = npc.getEntity().getPassenger(); + NMS.setDestination(passenger, destVector.getX(), destVector.getY(), destVector.getZ(), params.speed()); + } else { + NMS.setDestination(npc.getEntity(), destVector.getX(), destVector.getY(), destVector.getZ(), + params.speed()); + } params.run(); plan.run(npc); return false; diff --git a/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java b/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java index 72c31e36f..601988cfb 100644 --- a/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java +++ b/main/src/main/java/net/citizensnpcs/npc/ai/CitizensNavigator.java @@ -125,7 +125,7 @@ public class CitizensNavigator implements Navigator, Runnable { defaultParams.updatePathRate(root.getInt("updatepathrate")); } defaultParams.speedModifier((float) root.getDouble("speedmodifier", 1F)); - defaultParams.avoidWater(root.getBoolean("avoidwater")); + defaultParams.avoidWater(root.getBoolean("avoidwater")); if (!root.getBoolean("usedefaultstuckaction") && defaultParams.stuckAction() == TeleportStuckAction.INSTANCE) { defaultParams.stuckAction(null); }