Add a 1 second delay for failed chair spawns

This commit is contained in:
fullwall 2024-01-29 02:07:51 +08:00
parent 44e68147ab
commit 95d678312b
1 changed files with 5 additions and 1 deletions

View File

@ -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;
}
}