aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2021-03-10 17:50:44 +0100
committerElias Fleckenstein <eliasfleckenstein@web.de>2021-03-10 17:50:44 +0100
commit4c6ab11d9edefabe4af7572a506e247932b417d1 (patch)
tree7206978f089b5134c194f6342343bdaf54c79078
parent7613d9bfe6121f6b741f6b8196ee6d89ef95d1ae (diff)
parent1309066be8bc9e7cd688b8f84f8cfa761bea9ebe (diff)
downloaddragonfireclient-4c6ab11d9edefabe4af7572a506e247932b417d1.tar.xz
Merge branch 'master' of https://github.com/EliasFleckenstein03/dragonfireclient
-rw-r--r--builtin/client/util.lua20
-rw-r--r--src/script/lua_api/l_http.cpp14
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
}