aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0149-Add-LivingEntity-getTargetEntity.patch
blob: 40667d692a0b7654f6c237aec6868f43ad79c1ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
From 0000000000000000000000000000000000000000 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 0000000000000000000000000000000000000000..caa56541c435a3d9103cb0220ab88563a976c6b8
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java
@@ -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;
+    }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 09b0dd1b14e2848253c1d3bfecb98951764737ee..9e0137ea412ec8c65b2903a76499ba8222446ea3 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -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
 
     /**