diff --git a/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java b/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java index b6823cfcb..173579c4c 100644 --- a/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java +++ b/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java @@ -45,6 +45,10 @@ public class IrisJigsawPieceConnector @Desc("Pick an entity to spawn on this connector") private String spawnEntity; + @DontObfuscate + @Desc("Stop the entity from despawning") + private boolean keepEntity; + @DontObfuscate @MaxNumber(50) @MinNumber(1) diff --git a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java index 3c56f2a7a..08d424b85 100644 --- a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java +++ b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java @@ -15,6 +15,7 @@ import lombok.Data; import org.bukkit.Axis; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.entity.Entity; @Data public class PlannedStructure { @@ -170,7 +171,13 @@ public class PlannedStructure { IrisPosition p = i.getWorldPosition(j).add(new IrisPosition(j.getDirection().toVector().multiply(2))); IrisEntity e = getData().getEntityLoader().load(j.getSpawnEntity()); - e.spawn(a.getCompound().getEngineForHeight(p.getY()), new Location(world, p.getX() + 0.5, p.getY(), p.getZ() + 0.5), rng); + if(a != null) + { + Entity entity = e.spawn(a.getCompound().getEngineForHeight(p.getY()), new Location(world, p.getX() + 0.5, p.getY(), p.getZ() + 0.5), rng); + if (j.isKeepEntity()) { + entity.setPersistent(true); + } + } } } });