aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs26
2 files changed, 36 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 040dc8c..f62ec1b 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1115,7 +1115,11 @@ namespace OpenSim.Region.CoreModules.World.Land
1115 m_landList.TryGetValue(localID, out land); 1115 m_landList.TryGetValue(localID, out land);
1116 } 1116 }
1117 1117
1118 if (land != null) land.UpdateLandProperties(args, remote_client); 1118 if (land != null)
1119 {
1120 land.UpdateLandProperties(args, remote_client);
1121 m_scene.EventManager.TriggerOnParcelPropertiesUpdateRequest(args, localID, remote_client);
1122 }
1119 } 1123 }
1120 1124
1121 public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) 1125 public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client)
@@ -1433,9 +1437,13 @@ namespace OpenSim.Region.CoreModules.World.Land
1433 m_landList.TryGetValue(parcelID, out land); 1437 m_landList.TryGetValue(parcelID, out land);
1434 } 1438 }
1435 1439
1436 if (land != null) { 1440 if (land != null)
1441 {
1437 land.UpdateLandProperties(land_update, client); 1442 land.UpdateLandProperties(land_update, client);
1438 } else { 1443 m_scene.EventManager.TriggerOnParcelPropertiesUpdateRequest(land_update, parcelID, client);
1444 }
1445 else
1446 {
1439 m_log.WarnFormat("[LAND] unable to find parcelID {0}", parcelID); 1447 m_log.WarnFormat("[LAND] unable to find parcelID {0}", parcelID);
1440 } 1448 }
1441 return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty()); 1449 return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty());
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 52e6e92..d4e2736 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -113,6 +113,8 @@ namespace OpenSim.Region.Framework.Scenes
113 113
114 public event OnSetRootAgentSceneDelegate OnSetRootAgentScene; 114 public event OnSetRootAgentSceneDelegate OnSetRootAgentScene;
115 115
116 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
117
116 /// <summary> 118 /// <summary>
117 /// Fired when an object is touched/grabbed. 119 /// Fired when an object is touched/grabbed.
118 /// </summary> 120 /// </summary>
@@ -2128,5 +2130,27 @@ namespace OpenSim.Region.Framework.Scenes
2128 } 2130 }
2129 } 2131 }
2130 } 2132 }
2133
2134 public void TriggerOnParcelPropertiesUpdateRequest(LandUpdateArgs args,
2135 int local_id, IClientAPI remote_client)
2136 {
2137 ParcelPropertiesUpdateRequest handler = OnParcelPropertiesUpdateRequest;
2138 if (handler != null)
2139 {
2140 foreach (ParcelPropertiesUpdateRequest d in handler.GetInvocationList())
2141 {
2142 try
2143 {
2144 d(args, local_id, remote_client);
2145 }
2146 catch (Exception e)
2147 {
2148 m_log.ErrorFormat(
2149 "[EVENT MANAGER]: Delegate for TriggerOnSceneObjectPartCopy failed - continuing. {0} {1}",
2150 e.Message, e.StackTrace);
2151 }
2152 }
2153 }
2154 }
2131 } 2155 }
2132} \ No newline at end of file 2156}