Skip to content

Commit

Permalink
use more reliable fake entity position set
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Dec 17, 2020
1 parent 839d107 commit aa84271
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 4 deletions.
Expand Up @@ -443,6 +443,8 @@ else if (337.5 <= yaw && yaw < 360.0) {
}
}

public abstract void snapPositionTo(Entity entity, Vector vector);

public abstract void move(Entity entity, Vector vector);

public abstract void teleport(Entity entity, Vector vector);
Expand Down
Expand Up @@ -102,8 +102,8 @@ public void execute(final ScriptEntry scriptEntry) {
ArgumentHelper.debugObj("entities", entities.toString()));
}
for (EntityTag entity : entities) {
if (entity.isFake) {
NMSHandler.getEntityHelper().move(entity.getBukkitEntity(), location.toVector().subtract(entity.getLocation().toVector()));
if (entity.isFake && entity.getWorld().equals(location.getWorld())) {
NMSHandler.getEntityHelper().snapPositionTo(entity.getBukkitEntity(), location.toVector());
NMSHandler.getEntityHelper().look(entity.getBukkitEntity(), location.getYaw(), location.getPitch());
return;
}
Expand Down
Expand Up @@ -156,7 +156,7 @@ public void run() {
cancel();
return;
}
NMSHandler.getEntityHelper().move(fake.entity.getBukkitEntity(), player.getLocation().toVector().subtract(fake.entity.getLocation().toVector()));
NMSHandler.getEntityHelper().snapPositionTo(fake.entity.getBukkitEntity(), player.getLocation().toVector());
NMSHandler.getEntityHelper().look(fake.entity.getBukkitEntity(), player.getLocation().getYaw(), player.getLocation().getPitch());
}
}.runTaskTimer(Denizen.getInstance(), 1, 1);
Expand Down
Expand Up @@ -65,7 +65,7 @@ public void run() {
goal.setPitch(attachLoc.getPitch());
}
if (attached.isFake) {
NMSHandler.getEntityHelper().move(attached.getBukkitEntity(), goal.toVector().subtract(attached.getLocation().toVector()));
NMSHandler.getEntityHelper().snapPositionTo(attached.getBukkitEntity(), goal.toVector());
NMSHandler.getEntityHelper().look(attached.getBukkitEntity(), goal.getYaw(), goal.getPitch());
}
else {
Expand Down
Expand Up @@ -564,6 +564,11 @@ public MapTraceResult mapTrace(LivingEntity from, double range) {
return mtr;
}

@Override
public void snapPositionTo(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().setPosition(vector.getX(), vector.getY(), vector.getZ());
}

@Override
public void move(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().move(EnumMoveType.SELF, new Vec3D(vector.getX(), vector.getY(), vector.getZ()));
Expand Down
Expand Up @@ -564,6 +564,11 @@ public MapTraceResult mapTrace(LivingEntity from, double range) {
return mtr;
}

@Override
public void snapPositionTo(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().setPositionRaw(vector.getX(), vector.getY(), vector.getZ());
}

@Override
public void move(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().move(EnumMoveType.SELF, new Vec3D(vector.getX(), vector.getY(), vector.getZ()));
Expand Down
Expand Up @@ -565,6 +565,11 @@ public MapTraceResult mapTrace(LivingEntity from, double range) {
return mtr;
}

@Override
public void snapPositionTo(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().setPositionRaw(vector.getX(), vector.getY(), vector.getZ());
}

@Override
public void move(Entity entity, Vector vector) {
((CraftEntity) entity).getHandle().move(EnumMoveType.SELF, new Vec3D(vector.getX(), vector.getY(), vector.getZ()));
Expand Down

0 comments on commit aa84271

Please sign in to comment.