Attempt to fix mantis issue #82, taking prims into inventory and then rezzing them in another region.

afrisby
MW 2007-12-02 20:43:21 +00:00
parent 5ae8759de1
commit ac77c32453
5 changed files with 29 additions and 5 deletions

View File

@ -55,14 +55,20 @@ namespace OpenSim.Framework.Communications.Cache
}
else if (RootFolder.folderID == folderInfo.parentID)
{
RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
if (!RootFolder.SubFolders.ContainsKey(folderInfo.folderID))
{
RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
}
}
else
{
InventoryFolderImpl folder = RootFolder.HasSubFolder(folderInfo.parentID);
if (folder != null)
{
folder.SubFolders.Add(folderInfo.folderID, folderInfo);
if (!folder.SubFolders.ContainsKey(folderInfo.folderID))
{
folder.SubFolders.Add(folderInfo.folderID, folderInfo);
}
}
}
}
@ -74,14 +80,20 @@ namespace OpenSim.Framework.Communications.Cache
{
if (itemInfo.parentFolderID == RootFolder.folderID)
{
RootFolder.Items.Add(itemInfo.inventoryID, itemInfo);
if (!RootFolder.Items.ContainsKey(itemInfo.inventoryID))
{
RootFolder.Items.Add(itemInfo.inventoryID, itemInfo);
}
}
else
{
InventoryFolderImpl folder = RootFolder.HasSubFolder(itemInfo.parentFolderID);
if (folder != null)
{
folder.Items.Add(itemInfo.inventoryID, itemInfo);
if (!folder.Items.ContainsKey(itemInfo.inventoryID))
{
folder.Items.Add(itemInfo.inventoryID, itemInfo);
}
}
}
}

View File

@ -72,6 +72,15 @@ namespace OpenSim.Framework.Communications.Cache
}
}
public void UpdateUserInventory(LLUUID userID)
{
CachedUserInfo userInfo = GetUserDetails(userID);
if (userInfo != null)
{
RequestInventoryForUser(userID, userInfo);
}
}
public CachedUserInfo GetUserDetails(LLUUID userID)
{
if (m_userProfiles.ContainsKey(userID))

View File

@ -211,7 +211,7 @@ namespace OpenSim.Framework.Servers
else
{
System.Console.WriteLine("Handler not found for http request " +request.RawUrl);
responseString = "Error";
responseString = "Error";
}
}

View File

@ -106,6 +106,7 @@ namespace OpenSim.Region.Communications.OGS1
request.ItemCallBack(userID, item);
}
}
m_RequestingInventory.Remove(userID);
}
}

View File

@ -425,6 +425,7 @@ namespace OpenSim.Region.Environment.Scenes
public void MakeRootAgent(LLVector3 pos, bool isFlying)
{
m_newAvatar = true;
m_isChildAgent = false;
@ -433,6 +434,7 @@ namespace OpenSim.Region.Environment.Scenes
AddToPhysicalScene();
m_physicsActor.Flying = isFlying;
m_scene.CommsManager.UserProfileCacheService.UpdateUserInventory(m_uuid);
//if (!m_gotAllObjectsInScene)
//{
//m_scene.SendAllSceneObjectsToClient(this);