summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/script/lua_api/l_inventory.cpp30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/script/lua_api/l_inventory.cpp b/src/script/lua_api/l_inventory.cpp
index 6dfb7a28c..1404c3c8a 100644
--- a/src/script/lua_api/l_inventory.cpp
+++ b/src/script/lua_api/l_inventory.cpp
@@ -416,9 +416,18 @@ int ModApiInventory::l_get_inventory(lua_State *L)
std::string type = checkstringfield(L, 1, "type");
- if(type != "pos"){
- NO_MAP_LOCK_REQUIRED;
+ if(type == "node"){
+ lua_getfield(L, 1, "pos");
+ v3s16 pos = check_v3s16(L, -1);
+ loc.setNodeMeta(pos);
+ if(getServer(L)->getInventory(loc) != NULL)
+ InvRef::create(L, loc);
+ else
+ lua_pushnil(L);
+ return 1;
+ } else {
+ NO_MAP_LOCK_REQUIRED;
if(type == "player"){
std::string name = checkstringfield(L, 1, "name");
loc.setPlayer(name);
@@ -431,22 +440,9 @@ int ModApiInventory::l_get_inventory(lua_State *L)
InvRef::create(L, loc);
else
lua_pushnil(L);
-
- return 1;
- }
- else {
- if(type == "node"){
- lua_getfield(L, 1, "pos");
- v3s16 pos = check_v3s16(L, -1);
- loc.setNodeMeta(pos);
- }
- if(getServer(L)->getInventory(loc) != NULL)
- InvRef::create(L, loc);
- else
- lua_pushnil(L);
- return 1;
+ return 1;
+ // END NO_MAP_LOCK_REQUIRED;
}
-
}
// create_detached_inventory_raw(name)