diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java index ba3e886..1e4e7c7 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java @@ -14,6 +14,7 @@ import me.unurled.sacredrealms.sr.components.player.PotionEffectDeserializer; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.managers.Manager; +import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.Mob; @@ -123,9 +124,29 @@ public class EntityManager extends Manager { return null; } - public void spawnEntity( + public List spawnEntity( @NotNull SREntityType type, int amount, double x, double y, double z, @NotNull World world) { // spawn entity + List srEntities = new ArrayList<>(); + for (int i = 0; i < amount; i++) { + Entity e = world.spawnEntity(new Location(world, x, y, z), type.getType()); + if (e instanceof Mob mob) { + if (type.getItem() != null) { + mob.getEquipment().setItemInMainHand(type.getItem()); + } + if (!type.getArmor().isEmpty()) { + mob.getEquipment().setArmorContents(type.getArmor().toArray(new ItemStack[0])); + } + if (type.getSecondHandItem() != null) { + mob.getEquipment().setItemInOffHand(type.getSecondHandItem()); + } + } + SREntity srEntity = new SREntity(e); + addEntity(srEntity); + srEntities.add(srEntity); + } + + return srEntities; } @EventHandler