diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 3d8513492..d82dd6fc8 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -171,7 +171,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame { Inventory *inv_from = mgr->getInventory(from_inv); Inventory *inv_to = mgr->getInventory(to_inv); - + if (!inv_from) { infostream << "IMoveAction::apply(): FAIL: source inventory not found: " << "from_inv=\""<on_inventory_move_item(from_loc, from_list, from_i, to_loc, to_list, to_i, src_item, count, player); + mgr->setInventoryModified(from_inv, false); if(inv_from != inv_to) mgr->setInventoryModified(to_inv, false); @@ -697,6 +734,9 @@ void IDropAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame PLAYER_TO_SA(player)->nodemeta_inventory_OnTake( from_inv.p, from_list, from_i, src_item, player); } + + // Report drop to registered listeners + PLAYER_TO_SA(player)->on_inventory_drop_item(from_inv, from_list, from_i, src_item, player,player->getBasePosition() + v3f(0,1,0)); /* Record rollback information