diff --git a/src/main/java/com/volmit/iris/core/decrees/DecIrisStudio.java b/src/main/java/com/volmit/iris/core/decrees/DecIrisStudio.java index 432980fe4..bb284fd6c 100644 --- a/src/main/java/com/volmit/iris/core/decrees/DecIrisStudio.java +++ b/src/main/java/com/volmit/iris/core/decrees/DecIrisStudio.java @@ -19,6 +19,8 @@ package com.volmit.iris.core.decrees; import com.volmit.iris.Iris; +import com.volmit.iris.core.tools.IrisToolbelt; +import com.volmit.iris.engine.object.common.IrisScript; import com.volmit.iris.engine.object.dimensional.IrisDimension; import com.volmit.iris.util.decree.DecreeExecutor; import com.volmit.iris.util.decree.DecreeOrigin; @@ -119,4 +121,13 @@ public class DecIrisStudio implements DecreeExecutor sender().sendMessage("Cant find the file. Unsure why this happened."); } } + + @Decree(description = "Execute a script", aliases = {"ex", "exec", "run"}, origin = DecreeOrigin.PLAYER) + public void execute( + @Param(name = "script", description = "The script to run", aliases = {"s", "scr"}) + IrisScript script + ) + { + IrisToolbelt.access(sender().player().getWorld()).getEngine().getExecution().execute(script); + } } diff --git a/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java b/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java index 78a1c3ea9..be64f4d24 100644 --- a/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java +++ b/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java @@ -20,6 +20,7 @@ package com.volmit.iris.engine; import com.volmit.iris.Iris; import com.volmit.iris.engine.framework.Engine; +import com.volmit.iris.engine.object.common.IrisScript; import com.volmit.iris.engine.scripting.EngineExecutionEnvironment; import com.volmit.iris.engine.scripting.IrisScriptingAPI; import com.volmit.iris.util.format.C; @@ -54,9 +55,13 @@ public class IrisExecutionEnvironment implements EngineExecutionEnvironment { } public void execute(String script) { - Iris.debug("Execute Script (void) " + C.DARK_GREEN + script); + execute(getEngine().getData().getScriptLoader().load(script)); + } + + public void execute(IrisScript script) { + Iris.debug("Execute Script (void) " + C.DARK_GREEN + script.getLoadKey()); try { - javaScriptEngine.exec("", 0, 0, getEngine().getData().getScriptLoader().load(script)); + javaScriptEngine.exec("", 0, 0, script); } catch (BSFException e) { e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java b/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java index 100279ece..f85c11736 100644 --- a/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java +++ b/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java @@ -19,6 +19,7 @@ package com.volmit.iris.engine.scripting; import com.volmit.iris.engine.framework.Engine; +import com.volmit.iris.engine.object.common.IrisScript; import org.apache.bsf.BSFManager; public interface EngineExecutionEnvironment { @@ -30,6 +31,8 @@ public interface EngineExecutionEnvironment { void execute(String script); + void execute(IrisScript script); + Object evaluate(String script); default void close() {