From 95d678312b7fa20da5bf79a3261b9453f5251a36 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 29 Jan 2024 02:07:51 +0800 Subject: [PATCH] Add a 1 second delay for failed chair spawns --- main/src/main/java/net/citizensnpcs/trait/SitTrait.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/src/main/java/net/citizensnpcs/trait/SitTrait.java b/main/src/main/java/net/citizensnpcs/trait/SitTrait.java index af10d2900..9baadea24 100644 --- a/main/src/main/java/net/citizensnpcs/trait/SitTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/SitTrait.java @@ -12,12 +12,14 @@ import net.citizensnpcs.api.npc.NPCRegistry; import net.citizensnpcs.api.persistence.Persist; import net.citizensnpcs.api.trait.Trait; import net.citizensnpcs.api.trait.TraitName; +import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.api.util.SpigotUtil; import net.citizensnpcs.util.NMS; @TraitName("sittrait") public class SitTrait extends Trait { private NPC chair; + private int delay; @Persist private Location sittingAt; @@ -61,7 +63,7 @@ public class SitTrait extends Trait { @Override public void run() { - if (!npc.isSpawned() || !isSitting()) + if (!npc.isSpawned() || !isSitting() || delay-- > 0) return; if (SUPPORT_SITTABLE && npc.getEntity() instanceof Sittable) { @@ -80,6 +82,8 @@ public class SitTrait extends Trait { chair.getOrAddTrait(ArmorStandTrait.class).setAsHelperEntity(npc); if (!chair.spawn(sittingAt.clone())) { chair = null; + delay = 20; + Messaging.debug("Unable to spawn chair NPC"); return; } }