diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 673810e8b1..bfc70a47e2 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -878,7 +878,7 @@ namespace OpenSim.Framework /// Tell the client that we have created the item it requested. /// /// - void SendInventoryItemCreateUpdate(InventoryItemBase Item); + void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId); void SendRemoveInventoryItem(UUID itemID); diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 3565e5a3c9..34ad0f10cc 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -2062,7 +2062,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP } /// IClientAPI.SendInventoryItemCreateUpdate(InventoryItemBase) - public void SendInventoryItemCreateUpdate(InventoryItemBase Item) + public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId) { const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All; @@ -2088,6 +2088,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP InventoryReply.InventoryData[0].OwnerID = Item.Owner; InventoryReply.InventoryData[0].OwnerMask = Item.CurrentPermissions; InventoryReply.InventoryData[0].Type = (sbyte)Item.AssetType; + InventoryReply.InventoryData[0].CallbackID = callbackId; InventoryReply.InventoryData[0].GroupID = Item.GroupID; InventoryReply.InventoryData[0].GroupOwned = Item.GroupOwned; diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs index b71c2a6e39..7803209c49 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs @@ -148,7 +148,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction m_finished = true; if (m_createItem) { - DoCreateItem(); + DoCreateItem(0); } else if (m_storeLocal) { @@ -200,7 +200,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction if (m_finished) { - DoCreateItem(); + DoCreateItem(callbackID); } else { @@ -210,7 +210,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction } - private void DoCreateItem() + private void DoCreateItem(uint callbackID) { m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); CachedUserInfo userInfo = @@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction item.CreationDate = Util.UnixTimeSinceEpoch(); userInfo.AddItem(item); - ourClient.SendInventoryItemCreateUpdate(item); + ourClient.SendInventoryItemCreateUpdate(item, callbackID); } else { diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 4e11759f27..3d461e78cf 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs @@ -540,7 +540,7 @@ namespace OpenSim.Region.Examples.SimpleModule { } - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item) + public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) { } diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 2800e9ec92..f5d7b3217b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -140,7 +140,7 @@ namespace OpenSim.Region.Framework.Scenes if (userInfo != null) { AddInventoryItem(remoteClient.AgentId, item); - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, 0); } else { @@ -846,7 +846,7 @@ namespace OpenSim.Region.Framework.Scenes item.CreationDate = creationDate; userInfo.AddItem(item); - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, callbackID); } else { @@ -1379,6 +1379,7 @@ namespace OpenSim.Region.Framework.Scenes if (part != null) { + TaskInventoryItem currentItem = part.Inventory.GetInventoryItem(itemID); bool allowInventoryDrop = (part.GetEffectiveObjectFlags() & (uint)PrimFlags.AllowInventoryDrop) != 0; @@ -2003,14 +2004,14 @@ namespace OpenSim.Region.Framework.Scenes if (remoteClient != null && item.Owner == remoteClient.AgentId) { - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, 0); } else { ScenePresence notifyUser = GetScenePresence(item.Owner); if (notifyUser != null) { - notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item); + notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item, 0); } } } @@ -2092,7 +2093,7 @@ namespace OpenSim.Region.Framework.Scenes // this gets called when the agent loggs off! if (remoteClient != null) { - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, 0); } } } @@ -2151,7 +2152,7 @@ namespace OpenSim.Region.Framework.Scenes grp.SetFromAssetID(item.ID); userInfo.AddItem(item); - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, 0); itemID = item.ID; return item.AssetID; diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 1d2f37ad0a..23c4478b11 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -3581,7 +3581,7 @@ namespace OpenSim.Region.Framework.Scenes item.CreationDate = Util.UnixTimeSinceEpoch(); userInfo.AddItem(item); - remoteClient.SendInventoryItemCreateUpdate(item); + remoteClient.SendInventoryItemCreateUpdate(item, 0); } else { diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index c84ede8194..871a58124f 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs @@ -628,7 +628,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC { } - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item) + public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) { } diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index 373ee134ae..ee4aaa8d4d 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs @@ -619,7 +619,7 @@ namespace OpenSim.Tests.Common.Mock { } - public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item) + public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackID) { }