From 7878b05030ae6eca5a146c2561c13f5511f7584d Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Tue, 21 Sep 2021 17:57:55 +0200 Subject: [PATCH] Run raw commands for entity spawns --- .../com/volmit/iris/engine/object/IrisEntity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java index 0e6254a2e..658a5afa3 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java @@ -176,6 +176,10 @@ public class IrisEntity extends IrisRegistrant { @RegistryListResource(IrisScript.class) private KList postSpawnScripts = new KList<>(); + @ArrayType(min = 1, type = String.class) + @Desc("Run raw commands when this entity is spawned. Use {x}, {y}, and {z} for location. /summon pig {x} {y} {z}") + private KList rawCommands = new KList<>(); + public Entity spawn(Engine gen, Location at) { return spawn(gen, at, new RNG(at.hashCode())); } @@ -357,6 +361,17 @@ public class IrisEntity extends IrisRegistrant { } } + if (rawCommands.isNotEmpty()) { + synchronized (this) { + for (String rawCommand : rawCommands) { + rawCommand.replaceAll("\\Q{x}\\E", String.valueOf(at.getBlockX())); + rawCommand.replaceAll("\\Q{y}\\E", String.valueOf(at.getBlockY())); + rawCommand.replaceAll("\\Q{z}\\E", String.valueOf(at.getBlockZ())); + Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), rawCommand); + } + } + } + Location finalAt1 = at; J.s(() -> {