use of net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC in project Citizens2 by CitizensDev.
the class NMSImpl method getDestination.
@Override
public Location getDestination(org.bukkit.entity.Entity entity) {
Entity handle = getHandle(entity);
ControllerMove controller = handle instanceof EntityInsentient ? ((EntityInsentient) handle).getControllerMove() : handle instanceof EntityHumanNPC ? ((EntityHumanNPC) handle).getControllerMove() : null;
return new Location(entity.getWorld(), controller.d(), controller.e(), controller.f());
}
use of net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC in project Citizens2 by CitizensDev.
the class NMSImpl method replaceTrackerEntry.
@Override
public void replaceTrackerEntry(Player player) {
WorldServer server = (WorldServer) NMSImpl.getHandle(player).getWorld();
EntityTracker entry = server.getChunkProvider().playerChunkMap.trackedEntities.get(player.getEntityId());
if (entry == null)
return;
PlayerlistTracker replace = new PlayerlistTracker(server.getChunkProvider().playerChunkMap, entry);
server.getChunkProvider().playerChunkMap.trackedEntities.put(player.getEntityId(), replace);
if (getHandle(player) instanceof EntityHumanNPC) {
((EntityHumanNPC) getHandle(player)).setTracked(replace);
}
}
use of net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC in project Citizens2 by CitizensDev.
the class PlayerPathfinder method a.
public PathEntity a(IWorldReader var0, EntityHumanNPC var1, Set<BlockPosition> var2, float var3, int var4) {
this.a.a();
this.e.a(var0, var1);
PathPoint var5 = this.e.b();
Map var6 = var2.stream().collect(Collectors.toMap((var0x) -> {
return this.e.a((double) var0x.getX(), (double) var0x.getY(), (double) var0x.getZ());
}, Function.identity()));
PathEntity var7 = this.a(var5, var6, var3, var4);
this.e.a();
return var7;
}
use of net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC in project Citizens2 by CitizensDev.
the class NMSImpl method setShouldJump.
@Override
public void setShouldJump(org.bukkit.entity.Entity entity) {
Entity handle = NMSImpl.getHandle(entity);
if (handle == null)
return;
if (handle instanceof Mob) {
JumpControl controller = ((Mob) handle).getJumpControl();
controller.jump();
} else if (handle instanceof EntityHumanNPC) {
((EntityHumanNPC) handle).setShouldJump();
}
}
use of net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC in project Citizens2 by CitizensDev.
the class PlayerMoveControl method tick.
@Override
public void tick() {
this.entity.zza = 0;
if (this.moving) {
this.moving = false;
double dX = this.tx - this.entity.getX();
double dZ = this.tz - this.entity.getZ();
double dY = this.ty - this.entity.getY();
double dXZ = dX * dX + dZ * dZ;
if (Math.abs(dY) < 1.0 && dXZ < 0.0075) {
this.entity.zza = 0.0F;
return;
}
float f = (float) (Mth.atan2(dZ, dX) * 57.2957763671875D) - 90.0F;
this.entity.setYRot(rotlerp(this.entity.getYRot(), f, 90.0F));
NMS.setHeadYaw(entity.getBukkitEntity(), this.entity.getYRot());
AttributeInstance speed = this.entity.getAttribute(Attributes.MOVEMENT_SPEED);
speed.setBaseValue(0.3D * this.speed);
float movement = (float) (this.speed * speed.getValue());
this.entity.setSpeed(movement);
this.entity.zza = movement;
if (shouldJump() || (dY >= NMS.getStepHeight(entity.getBukkitEntity()) && dXZ < 1.0D)) {
this.jumpTicks = jumpTicks();
this.jumpTicks /= 3;
if (this.entity instanceof EntityHumanNPC) {
((EntityHumanNPC) this.entity).getControllerJump().jump();
} else {
((Mob) this.entity).getJumpControl().jump();
}
}
}
}
Aggregations