From ba39fe270c169902970625051d27f30b23d54dc9 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 11 Feb 2020 21:56:48 -0600 Subject: [PATCH] Implement EntityMoveEvent --- .../java/net/minecraft/server/EntityLiving.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 28e555d6e..387f74fe1 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -17,6 +17,7 @@ import java.util.Random; import java.util.Set; import java.util.UUID; import javax.annotation.Nullable; +import net.pl3x.purpur.event.entity.EntityMoveEvent; // Purpur import org.apache.commons.lang3.tuple.Pair; // CraftBukkit start @@ -2648,6 +2649,20 @@ public abstract class EntityLiving extends Entity { this.collideNearby(); this.world.getMethodProfiler().exit(); + // Purpur start + if (EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0) { + if (lastX != locX() || lastY != locY() || lastZ != locZ() || lastYaw != yaw || lastPitch != pitch) { + Location from = new Location(world.getWorld(), lastX, lastY, lastZ, lastYaw, lastPitch); + Location to = new Location (world.getWorld(), locX(), locY(), locZ(), yaw, pitch); + EntityMoveEvent event = new EntityMoveEvent(getBukkitLivingEntity(), from, to.clone()); + if (!event.callEvent()) { + setLocation(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch()); + } else if (!to.equals(event.getTo())) { + setLocation(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch()); + } + } + } + // Purpur end } private void n() { -- 2.26.2