From b874da3b717993b67912d8920600ad4a6cde4b6f Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 6 Feb 2025 14:40:38 -0500 Subject: [PATCH] Inject convenience variables into console invocations --- core/src/mindustry/mod/Scripts.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index fdbc717c6d..97527093d2 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -41,9 +41,21 @@ public class Scripts implements Disposable{ return errored; } + public String injectConsoleVariables(){ + //FIXME: this may cause issues if someone tries to use the variables in their own code multiple times. Investigate potential issues with this system. + return + "var unit = Vars.player.unit();" + + "var team = Vars.player.team();" + + "var core = Vars.player.core();" + + "var items = Vars.player.team().items();" + + "var build = Vars.world.buildWorld(Core.input.mouseWorldX(), Core.input.mouseWorldY());" + + "var cursor = Vars.world.tileWorld(Core.input.mouseWorldX(), Core.input.mouseWorldY());" + + "\n"; + } + public String runConsole(String text){ try{ - Object o = context.evaluateString(scope, text, "console.js", 1); + Object o = context.evaluateString(scope, injectConsoleVariables() + text, "console.js", 1); if(o instanceof NativeJavaObject n) o = n.unwrap(); if(o == null) o = "null";