diff options
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/common/c_content.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 793485e25..361db226e 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -1093,7 +1093,7 @@ MapNode readnode(lua_State *L, int index, const NodeDefManager *ndef) lua_getfield(L, index, "name"); if (!lua_isstring(L, -1)) throw LuaError("Node name is not set or is not a string!"); - const char *name = lua_tostring(L, -1); + std::string name = lua_tostring(L, -1); lua_pop(L, 1); u8 param1 = 0; @@ -1108,7 +1108,11 @@ MapNode readnode(lua_State *L, int index, const NodeDefManager *ndef) param2 = lua_tonumber(L, -1); lua_pop(L, 1); - return {ndef, name, param1, param2}; + content_t id = CONTENT_IGNORE; + if (!ndef->getId(name, id)) + throw LuaError("\"" + name + "\" is not a registered node!"); + + return {id, param1, param2}; } /******************************************************************************/ |