Add getPlayer to SkeletonHorseTrapEvent

This commit is contained in:
William Blake Galbreath
2019-10-19 02:36:40 -05:00
parent eb9a8c940f
commit f7da59a45a
2 changed files with 109 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
From 4538053cf5be9c25af8a07ebe5ae6f7730d630a7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:35:24 -0500
Subject: [PATCH] Add getPlayer to SkeletonHorseTrapEvent
---
.../event/entity/SkeletonHorseTrapEvent.java | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java
index d79dbcd68..1ed3ea8fa 100644
--- a/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java
@@ -1,20 +1,30 @@
package com.destroystokyo.paper.event.entity;
+import org.bukkit.entity.Player;
import org.bukkit.entity.SkeletonHorse;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
/**
* Event called when a player gets close to a skeleton horse and triggers the lightning trap
*/
public class SkeletonHorseTrapEvent extends EntityEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
+ private final Player player; // Purpur
private boolean cancelled;
public SkeletonHorseTrapEvent(@NotNull SkeletonHorse horse) {
+ // Purpur start
+ this(horse, null);
+ }
+
+ public SkeletonHorseTrapEvent(@NotNull SkeletonHorse horse, @Nullable Player player) {
+ // Purpur end
super(horse);
+ this.player = player; // Purpur
}
@NotNull
@@ -23,6 +33,20 @@ public class SkeletonHorseTrapEvent extends EntityEvent implements Cancellable {
return (SkeletonHorse) super.getEntity();
}
+ // Purpur start
+ /**
+ * Get the player that triggered this trap event
+ * <p>
+ * Null value if called by a plugin that does not support this feature
+ *
+ * @return Player that triggered event
+ */
+ @Nullable
+ public Player getPlayer() {
+ return player;
+ }
+ // Purpur end
+
@Override
public boolean isCancelled() {
return cancelled;
--
2.23.0.rc1

View File

@@ -0,0 +1,41 @@
From 88e8ca7cf1e15112a75edc51488a96eddf948014 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:35:35 -0500
Subject: [PATCH] Add getPlayer to SkeletonHorseTrapEvent
---
.../java/net/minecraft/server/PathfinderGoalHorseTrap.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
index f093744136..01f69e81ad 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
@@ -2,7 +2,8 @@ package net.minecraft.server;
public class PathfinderGoalHorseTrap extends PathfinderGoal {
- private final EntityHorseSkeleton a;
+ private final EntityHorseSkeleton a; public EntityHorseSkeleton getHorse() { return a; } // Purpur - OBFHELPER
+ private EntityHuman player; // Purpur
public PathfinderGoalHorseTrap(EntityHorseSkeleton entityhorseskeleton) {
this.a = entityhorseskeleton;
@@ -10,12 +11,12 @@ public class PathfinderGoalHorseTrap extends PathfinderGoal {
@Override
public boolean a() {
- return this.a.world.isPlayerNearby(this.a.locX, this.a.locY, this.a.locZ, 10.0D);
+ return (player = getHorse().world.findNearbyPlayer(getHorse(), 10D)) != null; // Purpur
}
@Override
public void e() {
- if (!new com.destroystokyo.paper.event.entity.SkeletonHorseTrapEvent((org.bukkit.entity.SkeletonHorse) this.a.getBukkitEntity()).callEvent()) return; // Paper
+ if (!new com.destroystokyo.paper.event.entity.SkeletonHorseTrapEvent((org.bukkit.entity.SkeletonHorse) this.a.getBukkitEntity(), (org.bukkit.entity.Player) player.getBukkitEntity()).callEvent()) return; // Paper // Purpur
DifficultyDamageScaler difficultydamagescaler = this.a.world.getDamageScaler(new BlockPosition(this.a));
this.a.r(false);
--
2.23.0.rc1