diff options
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/src/server.cpp b/src/server.cpp index cafeb951d..0bb91d758 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -609,14 +609,6 @@ void Server::AsyncRunStep(bool initial_step) SendMovePlayer(*i); playersao->m_moved = false; } - - /* - Send player inventories if necessary - */ - if(playersao->m_inventory_not_sent) { - UpdateCrafting(*i); - SendInventory(*i); - } } } @@ -1164,7 +1156,6 @@ PlayerSAO* Server::StageTwoClientInit(u16 peer_id) SendPlayerInventoryFormspec(peer_id); // Send inventory - UpdateCrafting(peer_id); SendInventory(peer_id); // Send HP @@ -1385,7 +1376,8 @@ void Server::setInventoryModified(const InventoryLocation &loc) PlayerSAO *playersao = player->getPlayerSAO(); if(!playersao) return; - playersao->m_inventory_not_sent = true; + + SendInventory(playersao->getPeerID()); } break; case InventoryLocation::NODEMETA: @@ -1650,7 +1642,7 @@ void Server::SendInventory(u16 peer_id) PlayerSAO *playersao = getPlayerSAO(peer_id); assert(playersao); - playersao->m_inventory_not_sent = false; + UpdateCrafting(playersao->getPlayer()); /* Serialize it @@ -2701,13 +2693,10 @@ void Server::DeleteClient(u16 peer_id, ClientDeletionReason reason) SendChatMessage(PEER_ID_INEXISTENT,message); } -void Server::UpdateCrafting(u16 peer_id) +void Server::UpdateCrafting(Player* player) { DSTACK(__FUNCTION_NAME); - Player* player = m_env->getPlayer(peer_id); - assert(player); - // Get a preview for crafting ItemStack preview; InventoryLocation loc; |