Console injection fix

This commit is contained in:
Anuken
2025-02-07 16:55:57 -05:00
parent c100d8c13c
commit d5bf4f46e8
2 changed files with 13 additions and 14 deletions

View File

@@ -41,21 +41,9 @@ 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, injectConsoleVariables() + text, "console.js", 1);
Object o = context.evaluateString(scope, text, "console.js", 1);
if(o instanceof NativeJavaObject n) o = n.unwrap();
if(o == null) o = "null";

View File

@@ -173,7 +173,18 @@ public class ConsoleFragment extends Table{
history.insert(1, message);
addMessage("[lightgray]> " + message.replace("[", "[["));
addMessage(mods.getScripts().runConsole(message).replace("[", "[["));
addMessage(mods.getScripts().runConsole(injectConsoleVariables() + message).replace("[", "[["));
}
public String injectConsoleVariables(){
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 void toggle(){