Also I think im onto something ``` interface RawLu...
# random
j
Also I think im onto something
Copy code
interface RawLua : Library {
    fun luaL_newstate(): Pointer
    fun luaL_openlibs(L: Pointer)
    fun luaL_loadstring(L: Pointer, str: String): Int
    fun lua_pcallk(L: Pointer, nargs: Int, nresults: Int, msgh: Int, ctx: Int = 0, k: Pointer? = Pointer.NULL): Int
}
// Add some macros
fun RawLua.lua_pcall(L: Pointer, nargs: Int, nresults: Int, msgh: Int): Int = lua_pcallk(L, nargs, nresults, msgh)
fun RawLua.luaL_dostring(L: Pointer, str: String): Int = luaL_loadstring(L, str) xor lua_pcall(L, 0, LUA_MULTRET, 0)

fun main(args: Array<String>) {
    Native.setProtected(true)
    val rlua = Native.loadLibrary("lua", RawLua::class.java) as RawLua

    val sp = rlua.luaL_newstate()
    rlua.luaL_openlibs(sp)
    rlua.luaL_dostring(sp, "print(\"hi from lua\")")
}