From f3c7298fc5bdb35e8a293c9aee4134c8e8fe2856 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Wed, 8 Apr 2009 17:50:57 +0000 Subject: * Make it possible to store creator strings in user inventory items as well as UUIDs * All existing functionality should be unaffected. * Database schemas have not been changed. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 27 +++++++++++----------- .../Agent/AssetTransaction/AssetXferUploader.cs | 3 +-- .../CoreModules/Avatar/Friends/FriendsModule.cs | 2 +- .../Archiver/InventoryArchiveReadRequest.cs | 4 ++-- .../Archiver/InventoryArchiveWriteRequest.cs | 4 ++-- .../Communications/REST/RESTInterregionComms.cs | 1 + OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 14 +++++------ OpenSim/Region/Framework/Scenes/Scene.cs | 2 +- .../Framework/Scenes/SceneObjectGroup.Inventory.cs | 2 +- 9 files changed, 30 insertions(+), 29 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 891fa9e..7e99337 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -1729,7 +1729,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP descend.ItemData[i] = new InventoryDescendentsPacket.ItemDataBlock(); descend.ItemData[i].ItemID = item.ID; descend.ItemData[i].AssetID = item.AssetID; - descend.ItemData[i].CreatorID = item.Creator; + descend.ItemData[i].CreatorID = item.CreatorIdAsUuid; descend.ItemData[i].BaseMask = item.BasePermissions; descend.ItemData[i].Description = LLUtil.StringToPacketBytes(item.Description); descend.ItemData[i].EveryoneMask = item.EveryOnePermissions; @@ -1928,7 +1928,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP inventoryReply.InventoryData[0] = new FetchInventoryReplyPacket.InventoryDataBlock(); inventoryReply.InventoryData[0].ItemID = item.ID; inventoryReply.InventoryData[0].AssetID = item.AssetID; - inventoryReply.InventoryData[0].CreatorID = item.Creator; + inventoryReply.InventoryData[0].CreatorID = item.CreatorIdAsUuid; inventoryReply.InventoryData[0].BaseMask = item.BasePermissions; inventoryReply.InventoryData[0].CreationDate = item.CreationDate; @@ -1950,13 +1950,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP inventoryReply.InventoryData[0].SaleType = item.SaleType; inventoryReply.InventoryData[0].CRC = - Helpers.InventoryCRC(1000, 0, inventoryReply.InventoryData[0].InvType, - inventoryReply.InventoryData[0].Type, inventoryReply.InventoryData[0].AssetID, - inventoryReply.InventoryData[0].GroupID, 100, - inventoryReply.InventoryData[0].OwnerID, inventoryReply.InventoryData[0].CreatorID, - inventoryReply.InventoryData[0].ItemID, inventoryReply.InventoryData[0].FolderID, - FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, - FULL_MASK_PERMISSIONS); + Helpers.InventoryCRC( + 1000, 0, inventoryReply.InventoryData[0].InvType, + inventoryReply.InventoryData[0].Type, inventoryReply.InventoryData[0].AssetID, + inventoryReply.InventoryData[0].GroupID, 100, + inventoryReply.InventoryData[0].OwnerID, inventoryReply.InventoryData[0].CreatorID, + inventoryReply.InventoryData[0].ItemID, inventoryReply.InventoryData[0].FolderID, + FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, + FULL_MASK_PERMISSIONS); inventoryReply.Header.Zerocoded = true; OutPacket(inventoryReply, ThrottleOutPacketType.Asset); } @@ -2075,7 +2076,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP itemBlock.ItemID = item.ID; itemBlock.AssetID = item.AssetID; - itemBlock.CreatorID = item.Creator; + itemBlock.CreatorID = item.CreatorIdAsUuid; itemBlock.BaseMask = item.BasePermissions; itemBlock.Description = LLUtil.StringToPacketBytes(item.Description); itemBlock.EveryoneMask = item.EveryOnePermissions; @@ -2138,7 +2139,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP bulkUpdate.ItemData[0] = new BulkUpdateInventoryPacket.ItemDataBlock(); bulkUpdate.ItemData[0].ItemID = item.ID; bulkUpdate.ItemData[0].AssetID = item.AssetID; - bulkUpdate.ItemData[0].CreatorID = item.Creator; + bulkUpdate.ItemData[0].CreatorID = item.CreatorIdAsUuid; bulkUpdate.ItemData[0].BaseMask = item.BasePermissions; bulkUpdate.ItemData[0].CreationDate = item.CreationDate; bulkUpdate.ItemData[0].Description = LLUtil.StringToPacketBytes(item.Description); @@ -2186,7 +2187,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP InventoryReply.InventoryData[0] = new UpdateCreateInventoryItemPacket.InventoryDataBlock(); InventoryReply.InventoryData[0].ItemID = Item.ID; InventoryReply.InventoryData[0].AssetID = Item.AssetID; - InventoryReply.InventoryData[0].CreatorID = Item.Creator; + InventoryReply.InventoryData[0].CreatorID = Item.CreatorIdAsUuid; InventoryReply.InventoryData[0].BaseMask = Item.BasePermissions; InventoryReply.InventoryData[0].Description = LLUtil.StringToPacketBytes(Item.Description); InventoryReply.InventoryData[0].EveryoneMask = Item.EveryOnePermissions; @@ -6746,7 +6747,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP InventoryItemBase item = new InventoryItemBase(); item.ID = rezScriptx.InventoryBlock.ItemID; item.Folder = rezScriptx.InventoryBlock.FolderID; - item.Creator = rezScriptx.InventoryBlock.CreatorID; + item.CreatorId = rezScriptx.InventoryBlock.CreatorID.ToString(); item.Owner = rezScriptx.InventoryBlock.OwnerID; item.BasePermissions = rezScriptx.InventoryBlock.BaseMask; item.CurrentPermissions = rezScriptx.InventoryBlock.OwnerMask; diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs index 8bdf084..a8e5ae3 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs @@ -211,7 +211,6 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction } } - private void DoCreateItem(uint callbackID) { m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); @@ -223,7 +222,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction { InventoryItemBase item = new InventoryItemBase(); item.Owner = ourClient.AgentId; - item.Creator = ourClient.AgentId; + item.CreatorId = ourClient.AgentId.ToString(); item.ID = UUID.Random(); item.AssetID = m_asset.FullID; item.Description = m_description; diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index edb2c56..246cf55 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs @@ -819,7 +819,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends item.AssetType = (int)AssetType.CallingCard; item.BasePermissions = (uint)PermissionMask.Copy; item.CreationDate = Util.UnixTimeSinceEpoch(); - item.Creator = creator; + item.CreatorId = creator.ToString(); item.CurrentPermissions = item.BasePermissions; item.Description = ""; item.EveryOnePermissions = (uint)PermissionMask.None; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 8dec2c4..8732e2e 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -97,7 +97,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver item.InvType = Convert.ToInt32(reader.ReadString()); reader.ReadEndElement(); reader.ReadStartElement("CreatorUUID"); - item.Creator = UUID.Parse(reader.ReadString()); + item.CreatorId = reader.ReadString(); reader.ReadEndElement(); reader.ReadStartElement("CreationDate"); item.CreationDate = Convert.ToInt32(reader.ReadString()); @@ -329,7 +329,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver // Don't use the item ID that's in the file item.ID = UUID.Random(); - item.Creator = m_userInfo.UserProfile.ID; + item.CreatorId = m_userInfo.UserProfile.ID.ToString(); item.Owner = m_userInfo.UserProfile.ID; // Reset folder ID to the one in which we want to load it diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 90a51c3..f302696 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs @@ -140,7 +140,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver writer.WriteString(inventoryItem.InvType.ToString()); writer.WriteEndElement(); writer.WriteStartElement("CreatorUUID"); - writer.WriteString(inventoryItem.Creator.ToString()); + writer.WriteString(inventoryItem.CreatorId); writer.WriteEndElement(); writer.WriteStartElement("CreationDate"); writer.WriteString(inventoryItem.CreationDate.ToString()); @@ -189,7 +189,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_archive.WriteFile(filename, sw.ToString()); - UUID creatorId = inventoryItem.Creator; + UUID creatorId = inventoryItem.CreatorIdAsUuid; // Record the creator of this item m_userUuids[creatorId] = 1; diff --git a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs index 8b2a5ca..87272a1 100644 --- a/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs +++ b/OpenSim/Region/CoreModules/Communications/REST/RESTInterregionComms.cs @@ -24,6 +24,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + using System; using System.Collections; using System.IO; diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 11cee7c..bebf234 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -478,7 +478,7 @@ namespace OpenSim.Region.Framework.Scenes // Insert a copy of the item into the recipient InventoryItemBase itemCopy = new InventoryItemBase(); itemCopy.Owner = recipient; - itemCopy.Creator = item.Creator; + itemCopy.CreatorId = item.CreatorId; itemCopy.ID = UUID.Random(); itemCopy.AssetID = item.AssetID; itemCopy.Description = item.Description; @@ -836,7 +836,7 @@ namespace OpenSim.Region.Framework.Scenes { InventoryItemBase item = new InventoryItemBase(); item.Owner = remoteClient.AgentId; - item.Creator = remoteClient.AgentId; + item.CreatorId = remoteClient.AgentId.ToString(); item.ID = UUID.Random(); item.AssetID = asset.FullID; item.Description = asset.Description; @@ -1086,7 +1086,7 @@ namespace OpenSim.Region.Framework.Scenes InventoryItemBase agentItem = new InventoryItemBase(); agentItem.ID = UUID.Random(); - agentItem.Creator = taskItem.CreatorID; + agentItem.CreatorId = taskItem.CreatorID.ToString(); agentItem.Owner = destAgent; agentItem.AssetID = taskItem.AssetID; agentItem.Description = taskItem.Description; @@ -1549,7 +1549,7 @@ namespace OpenSim.Region.Framework.Scenes taskItem.Type = itemBase.AssetType; taskItem.InvType = itemBase.InvType; taskItem.OwnerID = itemBase.Owner; - taskItem.CreatorID = itemBase.Creator; + taskItem.CreatorID = itemBase.CreatorIdAsUuid; taskItem.BasePermissions = itemBase.BasePermissions; taskItem.CurrentPermissions = itemBase.CurrentPermissions; taskItem.EveryonePermissions = itemBase.EveryOnePermissions; @@ -1946,12 +1946,11 @@ namespace OpenSim.Region.Framework.Scenes } item = new InventoryItemBase(); - item.Creator = objectGroup.RootPart.CreatorID; + item.CreatorId = objectGroup.RootPart.CreatorID.ToString(); item.ID = UUID.Random(); item.InvType = (int)InventoryType.Object; item.Folder = folder.ID; item.Owner = userInfo.UserProfile.ID; - } AssetBase asset = CreateAsset( @@ -2115,6 +2114,7 @@ namespace OpenSim.Region.Framework.Scenes CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(AgentId); + if (userInfo != null) { AssetBase asset = CreateAsset( @@ -2125,7 +2125,7 @@ namespace OpenSim.Region.Framework.Scenes CommsManager.AssetCache.AddAsset(asset); InventoryItemBase item = new InventoryItemBase(); - item.Creator = grp.RootPart.CreatorID; + item.CreatorId = grp.RootPart.CreatorID.ToString(); item.Owner = remoteClient.AgentId; item.ID = UUID.Random(); item.AssetID = asset.FullID; diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 3266703..041d981 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -3368,7 +3368,7 @@ namespace OpenSim.Region.Framework.Scenes CommsManager.AssetCache.AddAsset(asset); InventoryItemBase item = new InventoryItemBase(); - item.Creator = part.CreatorID; + item.CreatorId = part.CreatorID.ToString(); item.ID = UUID.Random(); item.Owner = remoteClient.AgentId; diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 5c47710..4c2b50f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs @@ -151,7 +151,7 @@ namespace OpenSim.Region.Framework.Scenes taskItem.Name = item.Name; taskItem.Description = item.Description; taskItem.OwnerID = part.OwnerID; // Transfer ownership - taskItem.CreatorID = item.Creator; + taskItem.CreatorID = item.CreatorIdAsUuid; taskItem.Type = item.AssetType; taskItem.InvType = item.InvType; -- cgit v1.1