2f782a6652
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 17543ecf SPIGOT-5035: Error Using Virtual Merchant GUI 0fc6922b SPIGOT-5028: Villager#setVillagerExperience() doesn't work bdbdbe44 SPIGOT-5024: Fox error - Unknown target reason
144 lines
4.4 KiB
Diff
144 lines
4.4 KiB
Diff
From 71d000f54e5cba9f8b047d8a88ec46e70922e7eb Mon Sep 17 00:00:00 2001
|
|
From: Caleb Bassham <caleb.bassham@gmail.com>
|
|
Date: Fri, 28 Sep 2018 02:30:56 -0500
|
|
Subject: [PATCH] Add spectator target events
|
|
|
|
- PlayerStartSpectatingEntityEvent
|
|
- PlayerStopSpectatingEntityEvent
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerStartSpectatingEntityEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerStartSpectatingEntityEvent.java
|
|
new file mode 100644
|
|
index 000000000..b8ec7ef2d
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerStartSpectatingEntityEvent.java
|
|
@@ -0,0 +1,67 @@
|
|
+package com.destroystokyo.paper.event.player;
|
|
+
|
|
+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;
|
|
+
|
|
+/**
|
|
+ * Triggered when a player starts spectating an entity in spectator mode.
|
|
+ */
|
|
+public class PlayerStartSpectatingEntityEvent extends PlayerEvent implements Cancellable {
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private boolean cancelled;
|
|
+ @NotNull private final Entity currentSpectatorTarget;
|
|
+ @NotNull private final Entity newSpectatorTarget;
|
|
+
|
|
+ public PlayerStartSpectatingEntityEvent(@NotNull Player player, @NotNull Entity currentSpectatorTarget, @NotNull Entity newSpectatorTarget) {
|
|
+ super(player);
|
|
+ this.currentSpectatorTarget = currentSpectatorTarget;
|
|
+ this.newSpectatorTarget = newSpectatorTarget;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the entity that the player is currently spectating or themselves if they weren't spectating anything
|
|
+ *
|
|
+ * @return The entity the player is currently spectating (before they start spectating the new target).
|
|
+ */
|
|
+ @NotNull
|
|
+ public Entity getCurrentSpectatorTarget() {
|
|
+ return currentSpectatorTarget;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the new entity that the player will now be spectating
|
|
+ *
|
|
+ * @return The entity the player is now going to be spectating.
|
|
+ */
|
|
+ @NotNull
|
|
+ public Entity getNewSpectatorTarget() {
|
|
+ return newSpectatorTarget;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ this.cancelled = cancel;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
+
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerStopSpectatingEntityEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerStopSpectatingEntityEvent.java
|
|
new file mode 100644
|
|
index 000000000..693d119ab
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerStopSpectatingEntityEvent.java
|
|
@@ -0,0 +1,54 @@
|
|
+package com.destroystokyo.paper.event.player;
|
|
+
|
|
+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;
|
|
+
|
|
+/**
|
|
+ * Triggered when a player stops spectating an entity in spectator mode.
|
|
+ */
|
|
+public class PlayerStopSpectatingEntityEvent extends PlayerEvent implements Cancellable {
|
|
+
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private boolean cancelled;
|
|
+ @NotNull private final Entity spectatorTarget;
|
|
+
|
|
+ public PlayerStopSpectatingEntityEvent(@NotNull Player player, @NotNull Entity spectatorTarget) {
|
|
+ super(player);
|
|
+ this.spectatorTarget = spectatorTarget;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the entity that the player is spectating
|
|
+ *
|
|
+ * @return The entity the player is currently spectating (before they will stop).
|
|
+ */
|
|
+ @NotNull
|
|
+ public Entity getSpectatorTarget() {
|
|
+ return spectatorTarget;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancelled;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ this.cancelled = cancel;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
--
|
|
2.21.0
|
|
|