Reflect the ParcelPropertiesUpdateRequest into Scene.EventManager, because

modules need to see it (Search!) even if it comes in via CAPS
viewer-2-initial-appearance
Melanie Thielker 2010-09-06 03:59:48 +02:00 committed by Melanie
parent 7f9f9f9246
commit 0246edc2ea
2 changed files with 36 additions and 4 deletions

View File

@ -1103,7 +1103,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)
@ -1408,9 +1412,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

@ -109,6 +109,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>
@ -2104,5 +2106,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);
}
}
}
}
} }
} }