diff options
4 files changed, 10 insertions, 21 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index 2f1e9dd..8b77a5f 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -82,6 +82,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
82 | scene.EventManager.OnNewClient += OnNewClient; | 82 | scene.EventManager.OnNewClient += OnNewClient; |
83 | scene.EventManager.OnClientClosed += ClientLoggedOut; | 83 | scene.EventManager.OnClientClosed += ClientLoggedOut; |
84 | scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage; | 84 | scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage; |
85 | scene.EventManager.OnSetRootAgentScene += OnSetRootAgentScene; | ||
85 | } | 86 | } |
86 | 87 | ||
87 | public void RegionLoaded(Scene scene) | 88 | public void RegionLoaded(Scene scene) |
@@ -98,9 +99,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
98 | scene.EventManager.OnNewClient -= OnNewClient; | 99 | scene.EventManager.OnNewClient -= OnNewClient; |
99 | scene.EventManager.OnClientClosed -= ClientLoggedOut; | 100 | scene.EventManager.OnClientClosed -= ClientLoggedOut; |
100 | scene.EventManager.OnIncomingInstantMessage -= OnGridInstantMessage; | 101 | scene.EventManager.OnIncomingInstantMessage -= OnGridInstantMessage; |
102 | scene.EventManager.OnSetRootAgentScene -= OnSetRootAgentScene; | ||
101 | } | 103 | } |
102 | } | 104 | } |
103 | |||
104 | } | 105 | } |
105 | 106 | ||
106 | public void RemoveRegion(Scene scene) | 107 | public void RemoveRegion(Scene scene) |
@@ -108,6 +109,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
108 | scene.EventManager.OnNewClient -= OnNewClient; | 109 | scene.EventManager.OnNewClient -= OnNewClient; |
109 | scene.EventManager.OnClientClosed -= ClientLoggedOut; | 110 | scene.EventManager.OnClientClosed -= ClientLoggedOut; |
110 | scene.EventManager.OnIncomingInstantMessage -= OnGridInstantMessage; | 111 | scene.EventManager.OnIncomingInstantMessage -= OnGridInstantMessage; |
112 | scene.EventManager.OnSetRootAgentScene -= OnSetRootAgentScene; | ||
111 | m_Scenelist.Remove(scene); | 113 | m_Scenelist.Remove(scene); |
112 | } | 114 | } |
113 | 115 | ||
@@ -136,6 +138,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
136 | // Inventory giving is conducted via instant message | 138 | // Inventory giving is conducted via instant message |
137 | client.OnInstantMessage += OnInstantMessage; | 139 | client.OnInstantMessage += OnInstantMessage; |
138 | } | 140 | } |
141 | |||
142 | protected void OnSetRootAgentScene(UUID id, Scene scene) | ||
143 | { | ||
144 | m_AgentRegions[id] = scene; | ||
145 | } | ||
139 | 146 | ||
140 | private Scene FindClientScene(UUID agentId) | 147 | private Scene FindClientScene(UUID agentId) |
141 | { | 148 | { |
@@ -160,7 +167,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
160 | if (scene == null) // Something seriously wrong here. | 167 | if (scene == null) // Something seriously wrong here. |
161 | return; | 168 | return; |
162 | 169 | ||
163 | |||
164 | if (im.dialog == (byte) InstantMessageDialog.InventoryOffered) | 170 | if (im.dialog == (byte) InstantMessageDialog.InventoryOffered) |
165 | { | 171 | { |
166 | //m_log.DebugFormat("Asset type {0}", ((AssetType)im.binaryBucket[0])); | 172 | //m_log.DebugFormat("Asset type {0}", ((AssetType)im.binaryBucket[0])); |
@@ -346,11 +352,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
346 | } | 352 | } |
347 | } | 353 | } |
348 | 354 | ||
349 | public void SetRootAgentScene(UUID agentID, Scene scene) | ||
350 | { | ||
351 | m_AgentRegions[agentID] = scene; | ||
352 | } | ||
353 | |||
354 | public bool NeedSceneCacheClear(UUID agentID, Scene scene) | 355 | public bool NeedSceneCacheClear(UUID agentID, Scene scene) |
355 | { | 356 | { |
356 | if (!m_AgentRegions.ContainsKey(agentID)) | 357 | if (!m_AgentRegions.ContainsKey(agentID)) |
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs index 2390ff4..1e92fde 100644 --- a/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
35 | /// </summary> | 35 | /// </summary> |
36 | public interface IInventoryTransferModule | 36 | public interface IInventoryTransferModule |
37 | { | 37 | { |
38 | void SetRootAgentScene(UUID agentID, Scene scene); | ||
39 | bool NeedSceneCacheClear(UUID agentID, Scene scene); | 38 | bool NeedSceneCacheClear(UUID agentID, Scene scene); |
40 | } | 39 | } |
41 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4d5c1e7..631046a 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4487,17 +4487,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4487 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); | 4487 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); |
4488 | } | 4488 | } |
4489 | 4489 | ||
4490 | public void SetRootAgentScene(UUID agentID) | ||
4491 | { | ||
4492 | IInventoryTransferModule inv = RequestModuleInterface<IInventoryTransferModule>(); | ||
4493 | if (inv == null) | ||
4494 | return; | ||
4495 | |||
4496 | inv.SetRootAgentScene(agentID, this); | ||
4497 | |||
4498 | EventManager.TriggerSetRootAgentScene(agentID, this); | ||
4499 | } | ||
4500 | |||
4501 | public bool NeedSceneCacheClear(UUID agentID) | 4490 | public bool NeedSceneCacheClear(UUID agentID) |
4502 | { | 4491 | { |
4503 | IInventoryTransferModule inv = RequestModuleInterface<IInventoryTransferModule>(); | 4492 | IInventoryTransferModule inv = RequestModuleInterface<IInventoryTransferModule>(); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 14d7d6a..08c6e27 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -821,7 +821,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
821 | 821 | ||
822 | m_rootRegionHandle = m_scene.RegionInfo.RegionHandle; | 822 | m_rootRegionHandle = m_scene.RegionInfo.RegionHandle; |
823 | 823 | ||
824 | m_scene.SetRootAgentScene(m_uuid); | 824 | m_scene.EventManager.TriggerSetRootAgentScene(m_uuid, m_scene); |
825 | 825 | ||
826 | // Moved this from SendInitialData to ensure that m_appearance is initialized | 826 | // Moved this from SendInitialData to ensure that m_appearance is initialized |
827 | // before the inventory is processed in MakeRootAgent. This fixes a race condition | 827 | // before the inventory is processed in MakeRootAgent. This fixes a race condition |