Attempt to fix mantis issue #82, taking prims into inventory and then rezzing them in another region.
parent
5ae8759de1
commit
ac77c32453
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -211,7 +211,7 @@ namespace OpenSim.Framework.Servers
|
|||
else
|
||||
{
|
||||
System.Console.WriteLine("Handler not found for http request " +request.RawUrl);
|
||||
responseString = "Error";
|
||||
responseString = "Error";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -106,6 +106,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
request.ItemCallBack(userID, item);
|
||||
}
|
||||
}
|
||||
m_RequestingInventory.Remove(userID);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue