Merge branch 'master' into careminster
commit
aa7f4215a9
|
@ -411,6 +411,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// itemUpd.NextPermissions, itemUpd.GroupPermissions, itemUpd.EveryOnePermissions, item.Flags,
|
// itemUpd.NextPermissions, itemUpd.GroupPermissions, itemUpd.EveryOnePermissions, item.Flags,
|
||||||
// item.NextPermissions, item.GroupPermissions, item.EveryOnePermissions, item.CurrentPermissions);
|
// item.NextPermissions, item.GroupPermissions, item.EveryOnePermissions, item.CurrentPermissions);
|
||||||
|
|
||||||
|
bool sendUpdate = false;
|
||||||
|
|
||||||
if (itemUpd.NextPermissions != 0) // Use this to determine validity. Can never be 0 if valid
|
if (itemUpd.NextPermissions != 0) // Use this to determine validity. Can never be 0 if valid
|
||||||
{
|
{
|
||||||
// Create a set of base permissions that will not include export if the user
|
// Create a set of base permissions that will not include export if the user
|
||||||
|
@ -484,11 +486,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
item.SalePrice = itemUpd.SalePrice;
|
item.SalePrice = itemUpd.SalePrice;
|
||||||
item.SaleType = itemUpd.SaleType;
|
item.SaleType = itemUpd.SaleType;
|
||||||
|
|
||||||
InventoryService.UpdateItem(item);
|
if (item.InvType == (int)InventoryType.Wearable && (item.Flags & 0xf) == 0 && (itemUpd.Flags & 0xf) != 0)
|
||||||
|
{
|
||||||
|
item.Flags = (uint)(item.Flags & 0xfffffff0) | (itemUpd.Flags & 0xf);
|
||||||
|
sendUpdate = true;
|
||||||
|
}
|
||||||
|
|
||||||
// We cannot send out a bulk update here, since this will cause editing of clothing to start
|
InventoryService.UpdateItem(item);
|
||||||
// failing frequently. Possibly this is a race with a separate transaction that uploads the asset.
|
|
||||||
// remoteClient.SendBulkUpdateInventory(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UUID.Zero != transactionID)
|
if (UUID.Zero != transactionID)
|
||||||
|
@ -498,6 +502,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
AgentTransactionsModule.HandleItemUpdateFromTransaction(remoteClient, transactionID, item);
|
AgentTransactionsModule.HandleItemUpdateFromTransaction(remoteClient, transactionID, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// This MAY be problematic, if it is, another solution
|
||||||
|
// needs to be found. If inventory item flags are updated
|
||||||
|
// the viewer's notion of the item needs to be refreshed.
|
||||||
|
if (sendUpdate)
|
||||||
|
remoteClient.SendBulkUpdateInventory(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue