Add LivingEntity#getTargetEntity

This commit is contained in:
BillyGalbreath 2018-09-22 00:32:53 -05:00
parent 63821bf96b
commit 51b4b8a059
2 changed files with 111 additions and 0 deletions

View file

@ -0,0 +1,40 @@
package com.destroystokyo.paper.entity;
import org.bukkit.entity.Entity;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
/**
* Represents information about a targeted entity
* @deprecated use {@link org.bukkit.util.RayTraceResult}
*/
@Deprecated(forRemoval = true, since = "1.19.3")
public class TargetEntityInfo {
private final Entity entity;
private final Vector hitVec;
public TargetEntityInfo(@NotNull Entity entity, @NotNull Vector hitVec) {
this.entity = entity;
this.hitVec = hitVec;
}
/**
* Get the entity that is targeted
*
* @return Targeted entity
*/
@NotNull
public Entity getEntity() {
return entity;
}
/**
* Get the position the entity is targeted at
*
* @return Targeted position
*/
@NotNull
public Vector getHitVector() {
return hitVec;
}
}

View file

@ -175,6 +175,77 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@Deprecated(forRemoval = true, since = "1.19.3")
@Nullable
public com.destroystokyo.paper.block.TargetBlockInfo getTargetBlockInfo(int maxDistance, @NotNull com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode);
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @return entity being targeted, or null if no entity is targeted
*/
@Nullable
public default Entity getTargetEntity(int maxDistance) {
return getTargetEntity(maxDistance, false);
}
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @param ignoreBlocks true to scan through blocks
* @return entity being targeted, or null if no entity is targeted
*/
@Nullable
public Entity getTargetEntity(int maxDistance, boolean ignoreBlocks);
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @return TargetEntityInfo about the entity being targeted,
* or null if no entity is targeted
* @deprecated use {@link #rayTraceEntities(int)}
*/
@Deprecated(forRemoval = true, since = "1.19.3")
@Nullable
public default com.destroystokyo.paper.entity.TargetEntityInfo getTargetEntityInfo(int maxDistance) {
return getTargetEntityInfo(maxDistance, false);
}
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @return RayTraceResult about the entity being targeted,
* or null if no entity is targeted
*/
@Nullable
default RayTraceResult rayTraceEntities(int maxDistance) {
return this.rayTraceEntities(maxDistance, false);
}
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @param ignoreBlocks true to scan through blocks
* @return TargetEntityInfo about the entity being targeted,
* or null if no entity is targeted
* @deprecated use {@link #rayTraceEntities(int, boolean)}
*/
@Deprecated(forRemoval = true, since = "1.19.3")
@Nullable
public com.destroystokyo.paper.entity.TargetEntityInfo getTargetEntityInfo(int maxDistance, boolean ignoreBlocks);
/**
* Gets information about the entity being targeted
*
* @param maxDistance this is the maximum distance to scan
* @param ignoreBlocks true to scan through blocks
* @return RayTraceResult about the entity being targeted,
* or null if no entity is targeted
*/
@Nullable
RayTraceResult rayTraceEntities(int maxDistance, boolean ignoreBlocks);
// Paper end
/**