Add cancellability to PlayerTrackEntityEvent (#8605)
This commit is contained in:
parent
88891c37b1
commit
5bf82aa136
3 changed files with 42 additions and 33 deletions
|
@ -4,31 +4,26 @@ Date: Wed, 30 Mar 2022 18:16:52 +0200
|
|||
Subject: [PATCH] Player Entity Tracking Events
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 32093c96a22221f17411aaf260db071f27350966..58eb0a7be2e5b4dd2aba8aebc0f7a57ff1348135 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4018,9 +4018,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
EnchantmentHelper.doPostDamageEffects(attacker, target);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 469083208110d5735e1bbda7a15c55a032d0e8cc..a98c134ce2ea51ae6d6f92959e57a4f0e03b0f6c 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -1543,9 +1543,18 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
// CraftBukkit end
|
||||
if (flag) {
|
||||
if (this.seenBy.add(player.connection)) {
|
||||
+ // Paper start - entity tracking events
|
||||
+ if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length == 0 || new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.entity.getBukkitEntity()).callEvent()) {
|
||||
this.serverEntity.addPairing(player);
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
||||
} else if (this.seenBy.remove(player.connection)) {
|
||||
+ // Paper start - entity tracking events
|
||||
+ if (io.papermc.paper.event.player.PlayerUntrackEntityEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||
+ new io.papermc.paper.event.player.PlayerUntrackEntityEvent(player.getBukkitEntity(), this.entity.getBukkitEntity()).callEvent();
|
||||
+ }
|
||||
+ // Paper end
|
||||
this.serverEntity.removePairing(player);
|
||||
}
|
||||
|
||||
- public void startSeenByPlayer(ServerPlayer player) {}
|
||||
+ // Paper start
|
||||
+ public void startSeenByPlayer(ServerPlayer player) {
|
||||
+ if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||
+ new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.getBukkitEntity()).callEvent();
|
||||
+ }
|
||||
+ }
|
||||
+ // Paper end
|
||||
|
||||
- public void stopSeenByPlayer(ServerPlayer player) {}
|
||||
+ // Paper start
|
||||
+ public void stopSeenByPlayer(ServerPlayer player) {
|
||||
+ if(io.papermc.paper.event.player.PlayerUntrackEntityEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||
+ new io.papermc.paper.event.player.PlayerUntrackEntityEvent(player.getBukkitEntity(), this.getBukkitEntity()).callEvent();
|
||||
+ }
|
||||
+ }
|
||||
+ // Paper end
|
||||
|
||||
public float rotate(Rotation rotation) {
|
||||
float f = Mth.wrapDegrees(this.getYRot());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue