package com.faforever.client.util; import com.google.common.io.CharStreams; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaValue; import org.luaj.vm2.lib.jse.JsePlatform; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path; import static java.nio.charset.StandardCharsets.UTF_8; public final class LuaUtil { private LuaUtil() { throw new AssertionError("Not instantiatable"); } public static LuaValue loadFile(Path file) throws IOException { Globals globals = JsePlatform.standardGlobals(); globals.baselib.load(globals.load(CharStreams.toString(new InputStreamReader(LuaUtil.class.getResourceAsStream("/lua/faf.lua"), UTF_8)))); try (InputStream inputStream = Files.newInputStream(file)) { globals.load(inputStream, "@" + file.toAbsolutePath().toString(), "bt", globals).invoke(); } return globals; } }