This commit is contained in:
Anuken
2019-12-01 12:32:35 -05:00
parent b6915a0483
commit 0e7c403bd8
7 changed files with 27 additions and 8 deletions

View File

@ -13,10 +13,12 @@ public class GraalScripts extends Scripts{
private static final Class[] denied = {FileHandle.class, InputStream.class, File.class, Scripts.class, Files.class, ClassAccess.class};
private final Context context;
private final String wrapper;
private final Context.Builder builder;
private Context console;
public GraalScripts(){
Time.mark();
Context.Builder builder = Context.newBuilder("js").allowHostClassLookup(ClassAccess.allowedClassNames::contains);
builder = Context.newBuilder("js").allowHostClassLookup(ClassAccess.allowedClassNames::contains);
HostAccess.Builder hb = HostAccess.newBuilder();
hb.allowPublicAccess(true);
@ -33,10 +35,19 @@ public class GraalScripts extends Scripts{
Log.info("Time to load script engine: {0}", Time.elapsed());
}
@Override
public void run(LoadedMod mod, FileHandle file){
run(wrapper.replace("$SCRIPT_NAME$", mod.name + "_" +file.nameWithoutExtension().replace("-", "_").replace(" ", "_")).replace("$CODE$", file.readString()));
}
@Override
public String runConsole(String text){
if(console == null){
console = builder.build();
}
return console.eval("js", text).toString();
}
private void run(String script){
context.eval("js", script);
}