This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
109 lines
3.5 KiB
Diff
109 lines
3.5 KiB
Diff
From 04b7f7a20e837a9394b81b148c7b20949846f963 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sat, 22 Sep 2018 00:32:53 -0500
|
|
Subject: [PATCH] Add LivingEntity#getTargetEntity
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java b/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java
|
|
new file mode 100644
|
|
index 00000000..f52644fa
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java
|
|
@@ -0,0 +1,38 @@
|
|
+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
|
|
+ */
|
|
+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;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
|
index 9dc0d4ce..a78f390d 100644
|
|
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
|
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
|
@@ -150,6 +150,50 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
|
*/
|
|
@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
|
|
+ */
|
|
+ @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
|
|
+ * @param ignoreBlocks true to scan through blocks
|
|
+ * @return TargetEntityInfo about the entity being targeted,
|
|
+ * or null if no entity is targeted
|
|
+ */
|
|
+ @Nullable
|
|
+ public com.destroystokyo.paper.entity.TargetEntityInfo getTargetEntityInfo(int maxDistance, boolean ignoreBlocks);
|
|
// Paper end
|
|
|
|
/**
|
|
--
|
|
2.21.0
|
|
|