Add cancellability to PlayerTrackEntityEvent (#8605)

This commit is contained in:
Yannick Lamprecht
2023-08-21 09:38:55 +02:00
parent b0439eea91
commit 183462c9f0
2 changed files with 36 additions and 27 deletions

View File

@@ -14,17 +14,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.player.PlayerEvent;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Is called when a {@link Player} tracks an {@link Entity}.
+ * <p>
+ * If cancelled entity is not shown to the player and interaction in both directions is not possible.
+ */
+public class PlayerTrackEntityEvent extends PlayerEvent {
+public class PlayerTrackEntityEvent extends PlayerEvent implements Cancellable {
+
+ private static final HandlerList handlers = new HandlerList();
+ private final Entity entity;
+ private boolean cancelled;
+
+ public PlayerTrackEntityEvent(@NotNull Player player, @NotNull Entity entity) {
+ super(player);
@@ -51,6 +55,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ public Entity getEntity() {
+ return entity;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerUntrackEntityEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerUntrackEntityEvent.java
new file mode 100644