parent
9c81b8a430
commit
c5c0df74e6
|
@ -129,35 +129,13 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
InventoryItemBase item = userInfo.RootFolder.HasItem(itemID);
|
InventoryItemBase item = userInfo.RootFolder.HasItem(itemID);
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
AssetBase asset = null;
|
|
||||||
bool addAsset = false;
|
|
||||||
|
|
||||||
// If we're not inside a transaction and an existing asset is attached
|
|
||||||
// to the update item, then we need to create a new asset for the new details
|
|
||||||
if (LLUUID.Zero == transactionID)
|
if (LLUUID.Zero == transactionID)
|
||||||
{
|
{
|
||||||
asset = AssetCache.GetAsset(item.assetID);
|
item.inventoryName = name;
|
||||||
|
item.inventoryDescription = description;
|
||||||
|
item.inventoryNextPermissions = nextOwnerMask;
|
||||||
|
|
||||||
if (asset != null)
|
userInfo.UpdateItem(remoteClient.AgentId, item);
|
||||||
{
|
|
||||||
// to update an item we need to create a new asset
|
|
||||||
// it's possible that this could be optimized to an update if we knew
|
|
||||||
// that the owner's inventory had the only copy of the item (I believe
|
|
||||||
// we're using copy on write semantics).
|
|
||||||
item.inventoryName = asset.Name = name;
|
|
||||||
item.inventoryDescription = asset.Description = description;
|
|
||||||
item.inventoryNextPermissions = nextOwnerMask;
|
|
||||||
item.assetID = asset.FullID = LLUUID.Random();
|
|
||||||
|
|
||||||
addAsset = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MainLog.Instance.Warn(
|
|
||||||
"Asset ID " + item.assetID + " not found for item ID " + itemID
|
|
||||||
+ " named " + item.inventoryName + " for an inventory item update.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -167,7 +145,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
if (transactions != null)
|
if (transactions != null)
|
||||||
{
|
{
|
||||||
LLUUID assetID = transactionID.Combine(remoteClient.SecureSessionId);
|
LLUUID assetID = transactionID.Combine(remoteClient.SecureSessionId);
|
||||||
asset = AssetCache.GetAsset(assetID);
|
AssetBase asset = AssetCache.GetAsset(assetID);
|
||||||
|
|
||||||
if (asset == null)
|
if (asset == null)
|
||||||
{
|
{
|
||||||
|
@ -182,30 +160,24 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
asset.Type = (sbyte) item.assetType;
|
asset.Type = (sbyte) item.assetType;
|
||||||
item.assetID = asset.FullID;
|
item.assetID = asset.FullID;
|
||||||
|
|
||||||
addAsset = true;
|
AssetCache.AddAsset(asset);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (asset != null)
|
userInfo.UpdateItem(remoteClient.AgentId, item);
|
||||||
{
|
|
||||||
if (addAsset)
|
|
||||||
{
|
|
||||||
AssetCache.AddAsset(asset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
userInfo.UpdateItem(remoteClient.AgentId, item);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainLog.Instance.Warn(
|
MainLog.Instance.Warn(
|
||||||
|
"INVENTORY",
|
||||||
"Item ID " + itemID + " not found for an inventory item update.");
|
"Item ID " + itemID + " not found for an inventory item update.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainLog.Instance.Warn(
|
MainLog.Instance.Warn(
|
||||||
|
"INVENTORY",
|
||||||
"Agent ID " + remoteClient.AgentId + " not found for an inventory item update.");
|
"Agent ID " + remoteClient.AgentId + " not found for an inventory item update.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue