protected final void register(ILApi api) { if (api instanceof LuaValue) { mGlobals.set(api.apiName(), (LuaValue) api); } }
protected final void register(ILGlobalObject api) { if (api instanceof LuaValue) { mGlobals.set(api.objectName(), (LuaValue) api); } }
public void registerPackage(String packageName, LuaTable table) { globals.set(packageName, table); loadedTable.set(packageName, LuaValue.TRUE); }
public void registerPackage(String packageName, LuaTable table) { globals.set(packageName, table); loadedTable.set(packageName, LuaValue.TRUE); }
@Override public void set(int key, LuaValue value) { if (value.isfunction()) super.set(key, value); else error("Globals not allowed: set " + value); }
@Override public void registerPrimitive(String aObjectName, long aValue) { globals.set(LuaString.valueOf(aObjectName), LuaInteger.valueOf(aValue)); }
@Override public void registerObject(String aObjectName, Reflectable aObject) { if (aObject != null) { globals.set(LuaString.valueOf(aObjectName), toLuaValue(aObject, cache)); } }
private static Globals getGlobals(Context context, XHook hook, Map<String, String> settings) { Globals globals = JsePlatform.standardGlobals(); // base, bit32, coroutine, io, math, os, package, string, table, luajava if (BuildConfig.DEBUG) globals.load(new DebugLib()); globals.set("log", new LuaLog(context.getPackageName(), context.getApplicationInfo().uid, hook.getId())); globals.set("hook", new LuaHook(context, settings)); return new LuaLocals(globals); }
this.loadConfigWithChecks(); globals.set("plugin", new PluginWrapper(this)); globals.set("logger", new LoggerWrapper(this)); globals.set("util", new UtilitiesWrapper(this)); globals.set("config", new ConfigWrapper(this)); globals.set("require", new OneArgFunction() { @Override public LuaValue call(LuaValue luaValue) { globals.set("import", new OneArgFunction() { @Override public LuaValue call(LuaValue luaValue) { globals.set("newInstance", new VarArgFunction() { @Override public LuaValue call(LuaValue cls, LuaValue args) {
private void load(MwInterface luaInterface) throws IOException { final String filename = fileNameForInterface(luaInterface); try (InputStream is = globals.finder.findResource(filename)) { if (is == null) { throw new FileNotFoundException("could not find '"+filename+"'. Make sure it is on the classpath."); } final LuaValue pkg = globals.load(is, "@"+filename, "bt", globals).call(); final LuaValue setupInterface = pkg.get("setupInterface"); if (!setupInterface.isnil()) { globals.set("mw_interface", luaInterface.getInterface()); setupInterface.call(luaInterface.getSetupOptions()); } } }
/** * Simple wrapper for invoking a lua function with command line arguments. * The supplied function is first given a new Globals object, * then the program is run with arguments. */ public static void luaMain(LuaValue mainChunk, String[] args) { Globals g = standardGlobals(); int n = args.length; LuaValue[] vargs = new LuaValue[args.length]; for (int i = 0; i < n; ++i) vargs[i] = LuaValue.valueOf(args[i]); LuaValue arg = LuaValue.listOf(vargs); arg.set("n", n); g.set("arg", arg); mainChunk.initupvalue1(g); mainChunk.invoke(LuaValue.varargsOf(vargs)); } }
/** Simple wrapper for invoking a lua function with command line arguments. * The supplied function is first given a new Globals object as its environment * then the program is run with arguments. * @return {@link Varargs} containing any values returned by mainChunk. */ public static Varargs luaMain(LuaValue mainChunk, String[] args) { Globals g = standardGlobals(); int n = args.length; LuaValue[] vargs = new LuaValue[args.length]; for (int i = 0; i < n; ++i) vargs[i] = LuaValue.valueOf(args[i]); LuaValue arg = LuaValue.listOf(vargs); arg.set("n", n); g.set("arg", arg); mainChunk.initupvalue1(g); return mainChunk.invoke(LuaValue.varargsOf(vargs)); } }
private Globals createSandboxedGlobals() { Globals result = new Globals(); result.load(new JseBaseLib()); result.load(new PackageLib()); result.load(new Bit32Lib()); result.load(new TableLib()); result.load(new StringLib()); result.load(new JseMathLib()); result.load(new DebugLib()); result.set("debug", LuaValue.NIL); return result; } }
/** Perform one-time initialization on the library by adding package functions * to the supplied environment, and returning it as the return value. * It also creates the package.preload and package.loaded tables for use by * other libraries. * @param modname the module name supplied if this is loaded via 'require'. * @param env the environment to load into, typically a Globals instance. */ public LuaValue call(LuaValue modname, LuaValue env) { globals = env.checkglobals(); globals.set("require", new require()); package_ = new LuaTable(); package_.set(_LOADED, new LuaTable()); package_.set(_PRELOAD, new LuaTable()); package_.set(_PATH, LuaValue.valueOf(DEFAULT_LUA_PATH)); package_.set(_LOADLIB, new loadlib()); package_.set(_SEARCHPATH, new searchpath()); LuaTable searchers = new LuaTable(); searchers.set(1, preload_searcher = new preload_searcher()); searchers.set(2, lua_searcher = new lua_searcher()); searchers.set(3, java_searcher = new java_searcher()); package_.set(_SEARCHERS, searchers); package_.get(_LOADED).set("package", package_); env.set("package", package_); globals.package_ = this; return env; }
/** Perform one-time initialization on the library by adding package functions * to the supplied environment, and returning it as the return value. * It also creates the package.preload and package.loaded tables for use by * other libraries. * @param modname the module name supplied if this is loaded via 'require'. * @param env the environment to load into, typically a Globals instance. */ public LuaValue call(LuaValue modname, LuaValue env) { globals = env.checkglobals(); globals.set("require", new require()); package_ = new LuaTable(); package_.set(_LOADED, new LuaTable()); package_.set(_PRELOAD, new LuaTable()); package_.set(_PATH, LuaValue.valueOf(DEFAULT_LUA_PATH)); package_.set(_LOADLIB, new loadlib()); package_.set(_SEARCHPATH, new searchpath()); LuaTable searchers = new LuaTable(); searchers.set(1, preload_searcher = new preload_searcher()); searchers.set(2, lua_searcher = new lua_searcher()); searchers.set(3, java_searcher = new java_searcher()); package_.set(_SEARCHERS, searchers); package_.get(_LOADED).set("package", package_); env.set("package", package_); globals.package_ = this; return env; }