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)
{
}