diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 3044017..62a831e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -35,7 +35,7 @@ using OpenMetaverse; | |||
35 | using OpenMetaverse.Packets; | 35 | using OpenMetaverse.Packets; |
36 | using log4net; | 36 | using log4net; |
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Framework.Communications.Cache; | 38 | |
39 | using OpenSim.Region.Framework; | 39 | using OpenSim.Region.Framework; |
40 | using OpenSim.Region.Framework.Interfaces; | 40 | using OpenSim.Region.Framework.Interfaces; |
41 | using OpenSim.Region.Framework.Scenes.Serialization; | 41 | using OpenSim.Region.Framework.Scenes.Serialization; |
@@ -101,12 +101,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
101 | { | 101 | { |
102 | userlevel = 1; | 102 | userlevel = 1; |
103 | } | 103 | } |
104 | // TODO: remove this cruft once MasterAvatar is fully deprecated | ||
105 | // | ||
106 | if (m_regInfo.MasterAvatarAssignedUUID == AgentID) | ||
107 | { | ||
108 | userlevel = 2; | ||
109 | } | ||
110 | EventManager.TriggerOnNewInventoryItemUploadComplete(AgentID, item.AssetID, item.Name, userlevel); | 104 | EventManager.TriggerOnNewInventoryItemUploadComplete(AgentID, item.AssetID, item.Name, userlevel); |
111 | } | 105 | } |
112 | else | 106 | else |
@@ -573,7 +567,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
573 | "[AGENT INVENTORY]: CopyInventoryItem received by {0} with oldAgentID {1}, oldItemID {2}, new FolderID {3}, newName {4}", | 567 | "[AGENT INVENTORY]: CopyInventoryItem received by {0} with oldAgentID {1}, oldItemID {2}, new FolderID {3}, newName {4}", |
574 | remoteClient.AgentId, oldAgentID, oldItemID, newFolderID, newName); | 568 | remoteClient.AgentId, oldAgentID, oldItemID, newFolderID, newName); |
575 | 569 | ||
576 | InventoryItemBase item = CommsManager.UserProfileCacheService.LibraryRoot.FindItem(oldItemID); | 570 | InventoryItemBase item = null; |
571 | if (LibraryService != null && LibraryService.LibraryRootFolder != null) | ||
572 | item = LibraryService.LibraryRootFolder.FindItem(oldItemID); | ||
577 | 573 | ||
578 | if (item == null) | 574 | if (item == null) |
579 | { | 575 | { |
@@ -742,13 +738,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
742 | 738 | ||
743 | if (transactionID == UUID.Zero) | 739 | if (transactionID == UUID.Zero) |
744 | { | 740 | { |
745 | CachedUserInfo userInfo | 741 | ScenePresence presence; |
746 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 742 | if (TryGetAvatar(remoteClient.AgentId, out presence)) |
747 | |||
748 | if (userInfo != null) | ||
749 | { | 743 | { |
750 | ScenePresence presence; | ||
751 | TryGetAvatar(remoteClient.AgentId, out presence); | ||
752 | byte[] data = null; | 744 | byte[] data = null; |
753 | 745 | ||
754 | if (invType == (sbyte)InventoryType.Landmark && presence != null) | 746 | if (invType == (sbyte)InventoryType.Landmark && presence != null) |
@@ -770,7 +762,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
770 | else | 762 | else |
771 | { | 763 | { |
772 | m_log.ErrorFormat( | 764 | m_log.ErrorFormat( |
773 | "userInfo for agent uuid {0} unexpectedly null in CreateNewInventoryItem", | 765 | "ScenePresence for agent uuid {0} unexpectedly not found in CreateNewInventoryItem", |
774 | remoteClient.AgentId); | 766 | remoteClient.AgentId); |
775 | } | 767 | } |
776 | } | 768 | } |
@@ -1161,15 +1153,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
1161 | 1153 | ||
1162 | private void SendInventoryUpdate(IClientAPI client, InventoryFolderBase folder, bool fetchFolders, bool fetchItems) | 1154 | private void SendInventoryUpdate(IClientAPI client, InventoryFolderBase folder, bool fetchFolders, bool fetchItems) |
1163 | { | 1155 | { |
1156 | if (folder == null) | ||
1157 | return; | ||
1158 | |||
1164 | m_log.DebugFormat("[AGENT INVENTORY]: Send Inventory Folder {0} Update to {1} {2}", folder.Name, client.FirstName, client.LastName); | 1159 | m_log.DebugFormat("[AGENT INVENTORY]: Send Inventory Folder {0} Update to {1} {2}", folder.Name, client.FirstName, client.LastName); |
1165 | InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID); | 1160 | InventoryCollection contents = InventoryService.GetFolderContent(client.AgentId, folder.ID); |
1166 | InventoryFolderBase containingFolder = new InventoryFolderBase(); | 1161 | InventoryFolderBase containingFolder = new InventoryFolderBase(); |
1167 | containingFolder.ID = folder.ID; | 1162 | containingFolder.ID = folder.ID; |
1168 | containingFolder.Owner = client.AgentId; | 1163 | containingFolder.Owner = client.AgentId; |
1169 | containingFolder = InventoryService.GetFolder(containingFolder); | 1164 | containingFolder = InventoryService.GetFolder(containingFolder); |
1170 | int version = containingFolder.Version; | 1165 | if (containingFolder != null) |
1166 | { | ||
1167 | int version = containingFolder.Version; | ||
1171 | 1168 | ||
1172 | client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, version, fetchFolders, fetchItems); | 1169 | client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, version, fetchFolders, fetchItems); |
1170 | } | ||
1173 | } | 1171 | } |
1174 | 1172 | ||
1175 | /// <summary> | 1173 | /// <summary> |
@@ -1211,9 +1209,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1211 | item = InventoryService.GetItem(item); | 1209 | item = InventoryService.GetItem(item); |
1212 | 1210 | ||
1213 | // Try library | 1211 | // Try library |
1214 | if (null == item) | 1212 | if (null == item && LibraryService != null && LibraryService.LibraryRootFolder != null) |
1215 | { | 1213 | { |
1216 | item = CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); | 1214 | item = LibraryService.LibraryRootFolder.FindItem(itemID); |
1217 | } | 1215 | } |
1218 | 1216 | ||
1219 | if (item != null) | 1217 | if (item != null) |
@@ -1280,9 +1278,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1280 | 1278 | ||
1281 | // Try library | 1279 | // Try library |
1282 | // XXX clumsy, possibly should be one call | 1280 | // XXX clumsy, possibly should be one call |
1283 | if (null == item) | 1281 | if (null == item && LibraryService != null && LibraryService.LibraryRootFolder != null) |
1284 | { | 1282 | { |
1285 | item = CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); | 1283 | item = LibraryService.LibraryRootFolder.FindItem(itemID); |
1286 | } | 1284 | } |
1287 | 1285 | ||
1288 | if (item != null) | 1286 | if (item != null) |
@@ -2405,7 +2403,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2405 | // XXYY!! | 2403 | // XXYY!! |
2406 | InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); | 2404 | InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); |
2407 | item = InventoryService.GetItem(item); | 2405 | item = InventoryService.GetItem(item); |
2408 | presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/); | 2406 | presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /* att.UUID */); |
2409 | 2407 | ||
2410 | if (m_AvatarFactory != null) | 2408 | if (m_AvatarFactory != null) |
2411 | { | 2409 | { |