Better access

This commit is contained in:
Anuken
2019-11-30 17:45:02 -05:00
parent 57f9aeee86
commit 3abcdf2063
5 changed files with 13 additions and 7 deletions

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,10 @@ import io.anuke.arc.util.*;
import io.anuke.mindustry.mod.Mods.*;
import org.graalvm.polyglot.*;
import java.io.*;
public class Scripts{
private static final Class[] denied = {FileHandle.class, InputStream.class, File.class, Scripts.class, Files.class};
private final Context context;
private final String wrapper;
@@ -15,11 +18,9 @@ public class Scripts{
Context.Builder builder = Context.newBuilder("js").allowHostClassLookup(ClassAccess.allowedClassNames::contains);
HostAccess.Builder hb = HostAccess.newBuilder();
for(Class c : ClassAccess.allowedClasses){
hb.allowImplementations(c);
Structs.each(hb::allowAccess, c.getConstructors());
Structs.each(hb::allowAccess, c.getFields());
Structs.each(hb::allowAccess, c.getMethods());
hb.allowPublicAccess(true);
for(Class c : denied){
hb.denyAccess(c);
}
builder.allowHostAccess(hb.build());