Reflect the ParcelPropertiesUpdateRequest into Scene.EventManager, because

modules need to see it (Search!) even if it comes in via CAPS
avinationmerge
Melanie Thielker 2010-09-06 03:59:48 +02:00
parent b9c20fbaa7
commit 00a23eea0e
2 changed files with 36 additions and 4 deletions

View File

@ -1115,7 +1115,11 @@ namespace OpenSim.Region.CoreModules.World.Land
m_landList.TryGetValue(localID, out land); m_landList.TryGetValue(localID, out land);
} }
if (land != null) land.UpdateLandProperties(args, remote_client); if (land != null)
{
land.UpdateLandProperties(args, remote_client);
m_scene.EventManager.TriggerOnParcelPropertiesUpdateRequest(args, localID, remote_client);
}
} }
public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) public void ClientOnParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client)
@ -1433,9 +1437,13 @@ namespace OpenSim.Region.CoreModules.World.Land
m_landList.TryGetValue(parcelID, out land); m_landList.TryGetValue(parcelID, out land);
} }
if (land != null) { if (land != null)
{
land.UpdateLandProperties(land_update, client); land.UpdateLandProperties(land_update, client);
} else { m_scene.EventManager.TriggerOnParcelPropertiesUpdateRequest(land_update, parcelID, client);
}
else
{
m_log.WarnFormat("[LAND] unable to find parcelID {0}", parcelID); m_log.WarnFormat("[LAND] unable to find parcelID {0}", parcelID);
} }
return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty()); return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty());

View File

@ -113,6 +113,8 @@ namespace OpenSim.Region.Framework.Scenes
public event OnSetRootAgentSceneDelegate OnSetRootAgentScene; public event OnSetRootAgentSceneDelegate OnSetRootAgentScene;
public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
/// <summary> /// <summary>
/// Fired when an object is touched/grabbed. /// Fired when an object is touched/grabbed.
/// </summary> /// </summary>
@ -2128,5 +2130,27 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
} }
public void TriggerOnParcelPropertiesUpdateRequest(LandUpdateArgs args,
int local_id, IClientAPI remote_client)
{
ParcelPropertiesUpdateRequest handler = OnParcelPropertiesUpdateRequest;
if (handler != null)
{
foreach (ParcelPropertiesUpdateRequest d in handler.GetInvocationList())
{
try
{
d(args, local_id, remote_client);
}
catch (Exception e)
{
m_log.ErrorFormat(
"[EVENT MANAGER]: Delegate for TriggerOnSceneObjectPartCopy failed - continuing. {0} {1}",
e.Message, e.StackTrace);
}
}
}
}
} }
} }