summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2013-12-18 22:57:33 +0100
committerKahrl <kahrl@gmx.net>2013-12-18 23:04:13 +0100
commitba8fa0bd42b5a4a0e3658a5e784ee6a885dcc891 (patch)
treed9fe27bdd9b839d1acb1b37d748ab414971c852e /src
parent1ed90c90c304c6cc9cfddb722e4d15a1221d0177 (diff)
downloadminetest-ba8fa0bd42b5a4a0e3658a5e784ee6a885dcc891.tar.gz
minetest-ba8fa0bd42b5a4a0e3658a5e784ee6a885dcc891.tar.bz2
minetest-ba8fa0bd42b5a4a0e3658a5e784ee6a885dcc891.zip
Log guilty node name when allow_metadata_inventory_move/put/take fails
Diffstat (limited to 'src')
-rw-r--r--src/script/cpp_api/s_nodemeta.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/script/cpp_api/s_nodemeta.cpp b/src/script/cpp_api/s_nodemeta.cpp
index d8fd4dcfe..e15abd40f 100644
--- a/src/script/cpp_api/s_nodemeta.cpp
+++ b/src/script/cpp_api/s_nodemeta.cpp
@@ -45,8 +45,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowMove(v3s16 p,
return 0;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "allow_metadata_inventory_move"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "allow_metadata_inventory_move"))
return count;
// function(pos, from_list, from_index, to_list, to_index, count, player)
@@ -61,7 +61,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowMove(v3s16 p,
scriptError();
lua_remove(L, errorhandler); // Remove error handler
if(!lua_isnumber(L, -1))
- throw LuaError(NULL, "allow_metadata_inventory_move should return a number");
+ throw LuaError(NULL, "allow_metadata_inventory_move should"
+ " return a number, guilty node: " + nodename);
int num = luaL_checkinteger(L, -1);
lua_pop(L, 1); // Pop integer
return num;
@@ -85,8 +86,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowPut(v3s16 p,
return 0;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "allow_metadata_inventory_put"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "allow_metadata_inventory_put"))
return stack.count;
// Call function(pos, listname, index, stack, player)
@@ -99,7 +100,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowPut(v3s16 p,
scriptError();
lua_remove(L, errorhandler); // Remove error handler
if(!lua_isnumber(L, -1))
- throw LuaError(NULL, "allow_metadata_inventory_put should return a number");
+ throw LuaError(NULL, "allow_metadata_inventory_put should"
+ " return a number, guilty node: " + nodename);
int num = luaL_checkinteger(L, -1);
lua_pop(L, 1); // Pop integer
return num;
@@ -123,8 +125,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowTake(v3s16 p,
return 0;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "allow_metadata_inventory_take"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "allow_metadata_inventory_take"))
return stack.count;
// Call function(pos, listname, index, count, player)
@@ -137,7 +139,8 @@ int ScriptApiNodemeta::nodemeta_inventory_AllowTake(v3s16 p,
scriptError();
lua_remove(L, errorhandler); // Remove error handler
if(!lua_isnumber(L, -1))
- throw LuaError(NULL, "allow_metadata_inventory_take should return a number");
+ throw LuaError(NULL, "allow_metadata_inventory_take should"
+ " return a number, guilty node: " + nodename);
int num = luaL_checkinteger(L, -1);
lua_pop(L, 1); // Pop integer
return num;
@@ -162,8 +165,8 @@ void ScriptApiNodemeta::nodemeta_inventory_OnMove(v3s16 p,
return;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "on_metadata_inventory_move"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "on_metadata_inventory_move"))
return;
// function(pos, from_list, from_index, to_list, to_index, count, player)
@@ -197,8 +200,8 @@ void ScriptApiNodemeta::nodemeta_inventory_OnPut(v3s16 p,
return;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "on_metadata_inventory_put"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "on_metadata_inventory_put"))
return;
// Call function(pos, listname, index, stack, player)
@@ -230,8 +233,8 @@ void ScriptApiNodemeta::nodemeta_inventory_OnTake(v3s16 p,
return;
// Push callback function on stack
- if(!getItemCallback(ndef->get(node).name.c_str(),
- "on_metadata_inventory_take"))
+ std::string nodename = ndef->get(node).name;
+ if(!getItemCallback(nodename.c_str(), "on_metadata_inventory_take"))
return;
// Call function(pos, listname, index, stack, player)