From 5734620ec8ab344670d05ca0e1eb0e05e28ade6b Mon Sep 17 00:00:00 2001 From: Sybren Gjaltema Date: Mon, 1 Aug 2016 23:25:28 +0200 Subject: [PATCH] Add NPC_METADATA_MARKER before teleporting This solves an issue I have, namely that I cannot check if a "Player" is an NPC on a PlayerTeleportEvent when the NPC is spawning. Fixes https://bitbucket.org/Lolmewn/stats/issues/292/citizen-denizen-npc-issue --- src/main/java/net/citizensnpcs/npc/CitizensNPC.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index faa4047e7..dd0090e8a 100644 --- a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -196,6 +196,8 @@ public class CitizensNPC extends AbstractNPC { entityController.spawn(at, this); + getEntity().setMetadata(NPC_METADATA_MARKER, new FixedMetadataValue(CitizensAPI.getPlugin(), true)); + boolean couldSpawn = !Util.isLoaded(at) ? false : NMS.addEntityToWorld(getEntity(), SpawnReason.CUSTOM); // send skin packets, if applicable, before other NMS packets are sent @@ -219,8 +221,6 @@ public class CitizensNPC extends AbstractNPC { NMS.setHeadYaw(getEntity(), at.getYaw()); - getEntity().setMetadata(NPC_METADATA_MARKER, new FixedMetadataValue(CitizensAPI.getPlugin(), true)); - // Set the spawned state getTrait(CurrentLocation.class).setLocation(at); getTrait(Spawned.class).setSpawned(true);