aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Communications/Cache/UserProfileCache.cs')
-rw-r--r--OpenSim/Framework/Communications/Cache/UserProfileCache.cs59
1 files changed, 36 insertions, 23 deletions
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
index 2271550..e65b6b2 100644
--- a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
+++ b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs
@@ -98,17 +98,24 @@ namespace OpenSim.Framework.Communications.Caches
98 { 98 {
99 if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) 99 if (this.UserProfiles.ContainsKey(remoteClient.AgentId))
100 { 100 {
101 CachedUserInfo info = this.UserProfiles[remoteClient.AgentId]; 101 if (this.UserProfiles[remoteClient.AgentId].RootFolder != null)
102 if (info.RootFolder.folderID == parentID)
103 { 102 {
104 info.RootFolder.CreateNewSubFolder(folderID, folderName, folderType); 103 CachedUserInfo info = this.UserProfiles[remoteClient.AgentId];
105 } 104 if (info.RootFolder.folderID == parentID)
106 else 105 {
107 { 106 InventoryFolder createdFolder = info.RootFolder.CreateNewSubFolder(folderID, folderName, folderType);
108 InventoryFolder folder = info.RootFolder.HasSubFolder(parentID); 107 if (createdFolder != null)
109 if (folder != null) 108 {
109 this.m_parent.InventoryServer.AddNewInventoryFolder(remoteClient.AgentId, createdFolder);
110 }
111 }
112 else
110 { 113 {
111 folder.CreateNewSubFolder(folderID, folderName, folderType); 114 InventoryFolder folder = info.RootFolder.HasSubFolder(parentID);
115 if (folder != null)
116 {
117 folder.CreateNewSubFolder(folderID, folderName, folderType);
118 }
112 } 119 }
113 } 120 }
114 } 121 }
@@ -127,20 +134,23 @@ namespace OpenSim.Framework.Communications.Caches
127 } 134 }
128 else if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) 135 else if (this.UserProfiles.ContainsKey(remoteClient.AgentId))
129 { 136 {
130 CachedUserInfo info = this.UserProfiles[remoteClient.AgentId]; 137 if (this.UserProfiles[remoteClient.AgentId].RootFolder != null)
131 if (info.RootFolder.folderID == folderID)
132 { 138 {
133 if (fetchItems) 139 CachedUserInfo info = this.UserProfiles[remoteClient.AgentId];
140 if (info.RootFolder.folderID == folderID)
134 { 141 {
135 remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, info.RootFolder.RequestListOfItems()); 142 if (fetchItems)
143 {
144 remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, info.RootFolder.RequestListOfItems());
145 }
136 } 146 }
137 } 147 else
138 else
139 {
140 InventoryFolder folder = info.RootFolder.HasSubFolder(folderID);
141 if ((folder != null) && fetchItems)
142 { 148 {
143 remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, folder.RequestListOfItems()); 149 InventoryFolder folder = info.RootFolder.HasSubFolder(folderID);
150 if ((folder != null) && fetchItems)
151 {
152 remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, folder.RequestListOfItems());
153 }
144 } 154 }
145 } 155 }
146 } 156 }
@@ -154,10 +164,13 @@ namespace OpenSim.Framework.Communications.Caches
154 } 164 }
155 else if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) 165 else if (this.UserProfiles.ContainsKey(remoteClient.AgentId))
156 { 166 {
157 InventoryItemBase item = this.UserProfiles[remoteClient.AgentId].RootFolder.HasItem(itemID); 167 if (this.UserProfiles[remoteClient.AgentId].RootFolder != null)
158 if (item != null)
159 { 168 {
160 remoteClient.SendInventoryItemDetails(ownerID, item); 169 InventoryItemBase item = this.UserProfiles[remoteClient.AgentId].RootFolder.HasItem(itemID);
170 if (item != null)
171 {
172 remoteClient.SendInventoryItemDetails(ownerID, item);
173 }
161 } 174 }
162 } 175 }
163 } 176 }
@@ -168,7 +181,7 @@ namespace OpenSim.Framework.Communications.Caches
168 /// <param name="userID"></param> 181 /// <param name="userID"></param>
169 private void RequestInventoryForUser(LLUUID userID, CachedUserInfo userInfo) 182 private void RequestInventoryForUser(LLUUID userID, CachedUserInfo userInfo)
170 { 183 {
171 //this.m_parent.InventoryServer.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive); 184 this.m_parent.InventoryServer.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive);
172 185
173 //for now we manually create the root folder, 186 //for now we manually create the root folder,
174 // but should be requesting all inventory from inventory server. 187 // but should be requesting all inventory from inventory server.