diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-07-22 17:10:58 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-07-22 17:40:48 +0300 |
commit | 4cc98d7add7b697ac302a6136bbeb95ef78cec45 (patch) | |
tree | efcdd9352f25c99557a1acd5177b6d586ecba881 /src/server.cpp | |
parent | 506203345ba2795aa0af68a434f4b77cf50e664a (diff) | |
download | minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.tar.gz minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.tar.bz2 minetest-4cc98d7add7b697ac302a6136bbeb95ef78cec45.zip |
minetest.register_on_player_receive_fields()
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp index 2a6c6054f..893d03b24 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3248,6 +3248,22 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) scriptapi_node_on_receive_fields(m_lua, p, formname, fields, playersao); } + else if(command == TOSERVER_INVENTORY_FIELDS) + { + std::string datastring((char*)&data[2], datasize-2); + std::istringstream is(datastring, std::ios_base::binary); + + std::string formname = deSerializeString(is); + int num = readU16(is); + std::map<std::string, std::string> fields; + for(int k=0; k<num; k++){ + std::string fieldname = deSerializeString(is); + std::string fieldvalue = deSerializeLongString(is); + fields[fieldname] = fieldvalue; + } + + scriptapi_on_player_receive_fields(m_lua, playersao, formname, fields); + } else { infostream<<"Server::ProcessData(): Ignoring " |