From 7e088fdfe3c77083606bce955624aef1da59bb32 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Wed, 4 Mar 2015 15:27:53 +0100 Subject: [PATCH] We always know playerSAO when calling SendInventory. Using it instead of searching it via peer_id --- src/network/packethandlers/server.cpp | 2 +- src/script/lua_api/l_object.cpp | 2 +- src/server.cpp | 18 +++++++++--------- src/server.h | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/network/packethandlers/server.cpp b/src/network/packethandlers/server.cpp index 526c17344..aeaa2f3f3 100644 --- a/src/network/packethandlers/server.cpp +++ b/src/network/packethandlers/server.cpp @@ -1391,7 +1391,7 @@ void Server::handleCommand_Interact(NetworkPacket* pkt) // Apply returned ItemStack if (playersao->setWieldedItem(item)) { - SendInventory(pkt->getPeerId()); + SendInventory(playersao); } } diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 0f3848aac..d8cfaf82b 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -356,7 +356,7 @@ int ObjectRef::l_set_wielded_item(lua_State *L) ItemStack item = read_item(L, 2, getServer(L)); bool success = co->setWieldedItem(item); if (success && co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - getServer(L)->SendInventory(((PlayerSAO*)co)->getPeerID()); + getServer(L)->SendInventory(((PlayerSAO*)co)); } lua_pushboolean(L, success); return 1; diff --git a/src/server.cpp b/src/server.cpp index 625ab2231..51b90ce45 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1125,7 +1125,7 @@ PlayerSAO* Server::StageTwoClientInit(u16 peer_id) SendPlayerInventoryFormspec(peer_id); // Send inventory - SendInventory(peer_id); + SendInventory(playersao); // Send HP if(g_settings->getBool("enable_damage")) @@ -1329,6 +1329,7 @@ Inventory* Server::getInventory(const InventoryLocation &loc) break; default: assert(0); + break; } return NULL; } @@ -1346,7 +1347,7 @@ void Server::setInventoryModified(const InventoryLocation &loc) if(!playersao) return; - SendInventory(playersao->getPeerID()); + SendInventory(playersao); } break; case InventoryLocation::NODEMETA: @@ -1367,6 +1368,7 @@ void Server::setInventoryModified(const InventoryLocation &loc) break; default: assert(0); + break; } } @@ -1604,23 +1606,21 @@ void Server::SendNodeDef(u16 peer_id, Non-static send methods */ -void Server::SendInventory(u16 peer_id) +void Server::SendInventory(PlayerSAO* playerSAO) { DSTACK(__FUNCTION_NAME); - PlayerSAO *playersao = getPlayerSAO(peer_id); - assert(playersao); - - UpdateCrafting(playersao->getPlayer()); + UpdateCrafting(playerSAO->getPlayer()); /* Serialize it */ - NetworkPacket* pkt = new NetworkPacket(TOCLIENT_INVENTORY, 0, peer_id); + NetworkPacket* pkt = new NetworkPacket(TOCLIENT_INVENTORY, 0, + playerSAO->getPeerID()); std::ostringstream os; - playersao->getInventory()->serialize(os); + playerSAO->getInventory()->serialize(os); std::string s = os.str(); diff --git a/src/server.h b/src/server.h index 2fea0db4c..784f1e928 100644 --- a/src/server.h +++ b/src/server.h @@ -374,7 +374,7 @@ public: void SendPlayerHPOrDie(u16 peer_id, bool die) { die ? DiePlayer(peer_id) : SendPlayerHP(peer_id); } void SendPlayerBreath(u16 peer_id); - void SendInventory(u16 peer_id); + void SendInventory(PlayerSAO* playerSAO); void SendMovePlayer(u16 peer_id); // Bind address