diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-03-10 17:50:44 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-03-10 17:50:44 +0100 |
commit | 4c6ab11d9edefabe4af7572a506e247932b417d1 (patch) | |
tree | 7206978f089b5134c194f6342343bdaf54c79078 | |
parent | 7613d9bfe6121f6b741f6b8196ee6d89ef95d1ae (diff) | |
parent | 1309066be8bc9e7cd688b8f84f8cfa761bea9ebe (diff) | |
download | dragonfireclient-4c6ab11d9edefabe4af7572a506e247932b417d1.tar.xz |
Merge branch 'master' of https://github.com/EliasFleckenstein03/dragonfireclient
-rw-r--r-- | builtin/client/util.lua | 20 | ||||
-rw-r--r-- | src/script/lua_api/l_http.cpp | 14 |
2 files changed, 32 insertions, 2 deletions
diff --git a/builtin/client/util.lua b/builtin/client/util.lua index aea15e00f..440f99ebc 100644 --- a/builtin/client/util.lua +++ b/builtin/client/util.lua @@ -58,3 +58,23 @@ end function core.get_nearby_objects(radius) return core.get_objects_inside_radius(core.localplayer:get_pos(), radius) end + +-- HTTP callback interface + +function core.http_add_fetch(httpenv) + httpenv.fetch = function(req, callback) + local handle = httpenv.fetch_async(req) + + local function update_http_status() + local res = httpenv.fetch_async_get(handle) + if res.completed then + callback(res) + else + core.after(0, update_http_status) + end + end + core.after(0, update_http_status) + end + + return httpenv +end diff --git a/src/script/lua_api/l_http.cpp b/src/script/lua_api/l_http.cpp index 0bf9cfbad..5ea3b3f99 100644 --- a/src/script/lua_api/l_http.cpp +++ b/src/script/lua_api/l_http.cpp @@ -239,8 +239,18 @@ int ModApiHttp::l_get_http_api(lua_State *L) void ModApiHttp::Initialize(lua_State *L, int top) { #if USE_CURL - API_FCT(get_http_api); - API_FCT(request_http_api); + + bool isMainmenu = false; +#ifndef SERVER + isMainmenu = ModApiBase::getGuiEngine(L) != nullptr; +#endif + + if (isMainmenu) { + API_FCT(get_http_api); + } else { + API_FCT(request_http_api); + } + #endif } |