Record the fact that child agents can have asset transactions.

Also change code to grab the agent asset transaction module once.
0.7.3-extended
Justin Clark-Casey (justincc) 2012-06-07 23:51:04 +01:00
parent 3a27f656b3
commit d30d68657e
4 changed files with 26 additions and 32 deletions

View File

@ -42,8 +42,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
public class AssetTransactionModule : INonSharedRegionModule, public class AssetTransactionModule : INonSharedRegionModule,
IAgentAssetTransactions IAgentAssetTransactions
{ {
// private static readonly ILog m_log = LogManager.GetLogger( private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// MethodBase.GetCurrentMethod().DeclaringType);
protected Scene m_Scene; protected Scene m_Scene;
private bool m_dumpAssetsToFile = false; private bool m_dumpAssetsToFile = false;
@ -203,15 +202,15 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
/// and comes through this method. /// and comes through this method.
/// </summary> /// </summary>
/// <param name="remoteClient"></param> /// <param name="remoteClient"></param>
/// <param name="part"></param>
/// <param name="transactionID"></param> /// <param name="transactionID"></param>
/// <param name="item"></param> /// <param name="item"></param>
public void HandleTaskItemUpdateFromTransaction(IClientAPI remoteClient, public void HandleTaskItemUpdateFromTransaction(
SceneObjectPart part, UUID transactionID, IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item)
TaskInventoryItem item)
{ {
// m_log.DebugFormat( m_log.DebugFormat(
// "[TRANSACTIONS MANAGER] Called HandleTaskItemUpdateFromTransaction with item {0}", "[TRANSACTIONS MANAGER] Called HandleTaskItemUpdateFromTransaction with item {0} in {1} for {2} in {3}",
// item.Name); item.Name, part.Name, remoteClient.Name, m_Scene.RegionInfo.RegionName);
AgentAssetTransactions transactions = AgentAssetTransactions transactions =
GetUserTransactions(remoteClient.AgentId); GetUserTransactions(remoteClient.AgentId);

View File

@ -216,7 +216,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
} }
else else
{ {
IAgentAssetTransactions agentTransactions = m_Scene.RequestModuleInterface<IAgentAssetTransactions>(); IAgentAssetTransactions agentTransactions = m_Scene.AgentTransactionsModule;
if (agentTransactions != null) if (agentTransactions != null)
{ {
agentTransactions.HandleItemCreationFromTransaction( agentTransactions.HandleItemCreationFromTransaction(

View File

@ -397,10 +397,9 @@ namespace OpenSim.Region.Framework.Scenes
} }
else else
{ {
IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); if (AgentTransactionsModule != null)
if (agentTransactions != null)
{ {
agentTransactions.HandleItemUpdateFromTransaction(remoteClient, transactionID, item); AgentTransactionsModule.HandleItemUpdateFromTransaction(remoteClient, transactionID, item);
} }
} }
} }
@ -1489,21 +1488,17 @@ namespace OpenSim.Region.Framework.Scenes
// Only look for an uploaded updated asset if we are passed a transaction ID. This is only the // Only look for an uploaded updated asset if we are passed a transaction ID. This is only the
// case for updates uploded through UDP. Updates uploaded via a capability (e.g. a script update) // case for updates uploded through UDP. Updates uploaded via a capability (e.g. a script update)
// will not pass in a transaction ID in the update message. // will not pass in a transaction ID in the update message.
if (transactionID != UUID.Zero) if (transactionID != UUID.Zero && AgentTransactionsModule != null)
{ {
IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); AgentTransactionsModule.HandleTaskItemUpdateFromTransaction(
if (agentTransactions != null) remoteClient, part, transactionID, currentItem);
{
agentTransactions.HandleTaskItemUpdateFromTransaction(
remoteClient, part, transactionID, currentItem);
if ((InventoryType)itemInfo.InvType == InventoryType.Notecard) if ((InventoryType)itemInfo.InvType == InventoryType.Notecard)
remoteClient.SendAgentAlertMessage("Notecard saved", false); remoteClient.SendAgentAlertMessage("Notecard saved", false);
else if ((InventoryType)itemInfo.InvType == InventoryType.LSL) else if ((InventoryType)itemInfo.InvType == InventoryType.LSL)
remoteClient.SendAgentAlertMessage("Script saved", false); remoteClient.SendAgentAlertMessage("Script saved", false);
else else
remoteClient.SendAgentAlertMessage("Item saved", false); remoteClient.SendAgentAlertMessage("Item saved", false);
}
} }
// Base ALWAYS has move // Base ALWAYS has move

View File

@ -497,6 +497,7 @@ namespace OpenSim.Region.Framework.Scenes
public IAttachmentsModule AttachmentsModule { get; set; } public IAttachmentsModule AttachmentsModule { get; set; }
public IEntityTransferModule EntityTransferModule { get; private set; } public IEntityTransferModule EntityTransferModule { get; private set; }
public IAgentAssetTransactions AgentTransactionsModule { get; private set; }
public IAvatarFactoryModule AvatarFactory public IAvatarFactoryModule AvatarFactory
{ {
@ -1219,6 +1220,7 @@ namespace OpenSim.Region.Framework.Scenes
m_capsModule = RequestModuleInterface<ICapabilitiesModule>(); m_capsModule = RequestModuleInterface<ICapabilitiesModule>();
EntityTransferModule = RequestModuleInterface<IEntityTransferModule>(); EntityTransferModule = RequestModuleInterface<IEntityTransferModule>();
m_groupsModule = RequestModuleInterface<IGroupsModule>(); m_groupsModule = RequestModuleInterface<IGroupsModule>();
AgentTransactionsModule = RequestModuleInterface<IAgentAssetTransactions>();
} }
#endregion #endregion
@ -3278,11 +3280,9 @@ namespace OpenSim.Region.Framework.Scenes
}); });
} }
IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); // It's possible for child agents to have transactions if changes are being made cross-border.
if (agentTransactions != null) if (AgentTransactionsModule != null)
{ AgentTransactionsModule.RemoveAgentAssetTransactions(agentID);
agentTransactions.RemoveAgentAssetTransactions(agentID);
}
} }
finally finally
{ {