From 2476d711c4a5b7a824628124f9a3d84fdc1f488a Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 9 Aug 2020 17:57:32 +0100 Subject: [PATCH] go back to events with wrong signatures, at least while they still work --- .../Region/Framework/Scenes/EventManager.cs | 333 ++++++++---------- .../Framework/Scenes/Scene.Permissions.cs | 130 +++---- 2 files changed, 221 insertions(+), 242 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index d3b419b3c3..540e26edc0 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -45,7 +45,6 @@ namespace OpenSim.Region.Framework.Scenes { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public delegate void OnFrameDelegate(); /// /// Triggered on each sim frame. /// @@ -54,9 +53,9 @@ namespace OpenSim.Region.Framework.Scenes /// Core uses it for things like Sun, Wind & Clouds /// The MRM module also uses it. /// - public OnFrameDelegate OnFrame; + public delegate void OnFrameDelegate(); + public event OnFrameDelegate OnFrame; - public delegate void ClientMovement(ScenePresence client); /// /// Trigerred when an agent moves. /// @@ -64,9 +63,9 @@ namespace OpenSim.Region.Framework.Scenes /// This gets triggered in /// prior to /// - public ClientMovement OnClientMovement; + public delegate void ClientMovement(ScenePresence client); + public event ClientMovement OnClientMovement; - public delegate void OnTerrainTaintedDelegate(); /// /// Triggered if the terrain has been edited /// @@ -74,9 +73,9 @@ namespace OpenSim.Region.Framework.Scenes /// This gets triggered in /// after it determines that an update has been made. /// - public OnTerrainTaintedDelegate OnTerrainTainted; + public delegate void OnTerrainTaintedDelegate(); + public event OnTerrainTaintedDelegate OnTerrainTainted; - public delegate void OnTerrainTickDelegate(); /// /// Triggered if the terrain has been edited /// @@ -84,15 +83,15 @@ namespace OpenSim.Region.Framework.Scenes /// This gets triggered in /// but is used by core solely to update the physics engine. /// - public OnTerrainTickDelegate OnTerrainTick; + public delegate void OnTerrainTickDelegate(); + public event OnTerrainTickDelegate OnTerrainTick; public delegate void OnTerrainCheckUpdatesDelegate(); - public OnTerrainCheckUpdatesDelegate OnTerrainCheckUpdates; + public event OnTerrainCheckUpdatesDelegate OnTerrainCheckUpdates; public delegate void OnTerrainUpdateDelegate(); - public OnTerrainUpdateDelegate OnTerrainUpdate; + public event OnTerrainUpdateDelegate OnTerrainUpdate; - public delegate void OnBackupDelegate(ISimulationDataService datastore, bool forceBackup); /// /// Triggered when a region is backed up/persisted to storage /// @@ -100,9 +99,9 @@ namespace OpenSim.Region.Framework.Scenes /// This gets triggered in /// and is fired before the persistence occurs. /// - public OnBackupDelegate OnBackup; + public delegate void OnBackupDelegate(ISimulationDataService datastore, bool forceBackup); + public event OnBackupDelegate OnBackup; - public delegate void OnClientConnectCoreDelegate(IClientCore client); /// /// Triggered when a new client connects to the scene. /// @@ -112,9 +111,9 @@ namespace OpenSim.Region.Framework.Scenes /// also implements and as such, /// is not triggered by NPCs. /// - public OnClientConnectCoreDelegate OnClientConnect; + public delegate void OnClientConnectCoreDelegate(IClientCore client); + public event OnClientConnectCoreDelegate OnClientConnect; - public delegate void OnNewClientDelegate(IClientAPI client); /// /// Triggered when a new client is added to the scene. /// @@ -126,7 +125,8 @@ namespace OpenSim.Region.Framework.Scenes /// This is triggered under per-agent lock. So if you want to perform any long-running operations, please /// do this on a separate thread. /// - public OnNewClientDelegate OnNewClient; + public delegate void OnNewClientDelegate(IClientAPI client); + public event OnNewClientDelegate OnNewClient; /// /// Fired if the client entering this sim is doing so as a new login @@ -137,7 +137,6 @@ namespace OpenSim.Region.Framework.Scenes /// public Action OnClientLogin; - public delegate void OnNewPresenceDelegate(ScenePresence presence); /// /// Triggered when a new presence is added to the scene /// @@ -145,9 +144,9 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered in which is used by both /// users and NPCs /// - public OnNewPresenceDelegate OnNewPresence; + public delegate void OnNewPresenceDelegate(ScenePresence presence); + public event OnNewPresenceDelegate OnNewPresence; - public delegate void OnRemovePresenceDelegate(UUID agentId); /// /// Triggered when a presence is removed from the scene /// @@ -158,9 +157,9 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered under per-agent lock. So if you want to perform any long-running operations, please /// do this on a separate thread. /// - public OnRemovePresenceDelegate OnRemovePresence; + public delegate void OnRemovePresenceDelegate(UUID agentId); + public event OnRemovePresenceDelegate OnRemovePresence; - public delegate void OnParcelPrimCountUpdateDelegate(); /// /// Triggered whenever the prim count may have been altered, or prior /// to an action that requires the current prim count to be accurate. @@ -175,9 +174,9 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate; + public delegate void OnParcelPrimCountUpdateDelegate(); + public event OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate; - public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj); /// /// Triggered in response to for /// objects that actually contribute to parcel prim count. @@ -186,9 +185,9 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered by in /// /// - public OnParcelPrimCountAddDelegate OnParcelPrimCountAdd; + public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj); + public event OnParcelPrimCountAddDelegate OnParcelPrimCountAdd; - public delegate void OnPluginConsoleDelegate(string[] args); /// /// Triggered after /// has been called for all @@ -205,14 +204,14 @@ namespace OpenSim.Region.Framework.Scenes /// via /// /// - public OnPluginConsoleDelegate OnPluginConsole; + public delegate void OnPluginConsoleDelegate(string[] args); + public event OnPluginConsoleDelegate OnPluginConsole; /// /// Triggered when the entire simulator is shutdown. /// public Action OnShutdown; - public delegate void OnSetRootAgentSceneDelegate(UUID agentID, Scene scene); /// /// Triggered before the grunt work for adding a root agent to a /// scene has been performed (resuming attachment scripts, physics, @@ -225,7 +224,8 @@ namespace OpenSim.Region.Framework.Scenes /// via /// and /// - public OnSetRootAgentSceneDelegate OnSetRootAgentScene; + public delegate void OnSetRootAgentSceneDelegate(UUID agentID, Scene scene); + public event OnSetRootAgentSceneDelegate OnSetRootAgentScene; /// /// Triggered after parcel properties have been updated. @@ -235,7 +235,7 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; + public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; /// /// Triggered when an individual scene is shutdown. @@ -246,7 +246,6 @@ namespace OpenSim.Region.Framework.Scenes /// public Action OnSceneShuttingDown; - public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); /// /// Fired when an object is touched/grabbed. /// @@ -257,7 +256,8 @@ namespace OpenSim.Region.Framework.Scenes /// via /// in /// - public ObjectGrabDelegate OnObjectGrab; + public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); + public event ObjectGrabDelegate OnObjectGrab; /// /// Triggered when an object is being touched/grabbed continuously. @@ -267,9 +267,8 @@ namespace OpenSim.Region.Framework.Scenes /// via /// in /// - public ObjectGrabDelegate OnObjectGrabbing; + public event ObjectGrabDelegate OnObjectGrabbing; - public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); /// /// Triggered when an object stops being touched/grabbed. /// @@ -278,9 +277,12 @@ namespace OpenSim.Region.Framework.Scenes /// via /// in /// - public ObjectDeGrabDelegate OnObjectDeGrab; + public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); + public event ObjectDeGrabDelegate OnObjectDeGrab; + + public delegate void OnPermissionErrorDelegate(UUID user, string reason); + public event OnPermissionErrorDelegate OnPermissionError; - public delegate void ScriptResetDelegate(uint localID, UUID itemID); /// /// Triggered when a script resets. /// @@ -290,12 +292,9 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptResetDelegate OnScriptReset; + public delegate void ScriptResetDelegate(uint localID, UUID itemID); + public event ScriptResetDelegate OnScriptReset; - public delegate void OnPermissionErrorDelegate(UUID user, string reason); - public OnPermissionErrorDelegate OnPermissionError; - - public delegate void NewRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource); /// /// Fired when a script is run. /// @@ -304,10 +303,9 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered by /// in /// - public NewRezScript OnRezScript; + public delegate void NewRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource); + public event NewRezScript OnRezScript; - - public delegate void RemoveScript(uint localID, UUID itemID); /// /// Triggered when a script is removed from an object. /// @@ -318,10 +316,9 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public RemoveScript OnRemoveScript; + public delegate void RemoveScript(uint localID, UUID itemID); + public event RemoveScript OnRemoveScript; - - public delegate void StartScript(uint localID, UUID itemID); /// /// Triggered when a script starts. /// @@ -331,9 +328,9 @@ namespace OpenSim.Region.Framework.Scenes /// via , /// via /// - public StartScript OnStartScript; + public delegate void StartScript(uint localID, UUID itemID); + public event StartScript OnStartScript; - public delegate void StopScript(uint localID, UUID itemID); /// /// Triggered when a script stops. /// @@ -343,9 +340,9 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public StopScript OnStopScript; + public delegate void StopScript(uint localID, UUID itemID); + public event StopScript OnStopScript; - public delegate bool SceneGroupMoved(UUID groupID, Vector3 delta); /// /// Triggered when an object is moved. /// @@ -354,9 +351,9 @@ namespace OpenSim.Region.Framework.Scenes /// in , /// /// - public SceneGroupMoved OnSceneGroupMove; + public delegate bool SceneGroupMoved(UUID groupID, Vector3 delta); + public event SceneGroupMoved OnSceneGroupMove; - public delegate void SceneGroupGrabed(UUID groupID, Vector3 offset, UUID userID); /// /// Triggered when an object is grabbed. /// @@ -368,9 +365,9 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public SceneGroupGrabed OnSceneGroupGrab; + public delegate void SceneGroupGrabed(UUID groupID, Vector3 offset, UUID userID); + public event SceneGroupGrabed OnSceneGroupGrab; - public delegate bool SceneGroupSpinStarted(UUID groupID); /// /// Triggered when an object starts to spin. /// @@ -381,9 +378,9 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public SceneGroupSpinStarted OnSceneGroupSpinStart; + public delegate bool SceneGroupSpinStarted(UUID groupID); + public event SceneGroupSpinStarted OnSceneGroupSpinStart; - public delegate bool SceneGroupSpun(UUID groupID, Quaternion rotation); /// /// Triggered when an object is being spun. /// @@ -394,31 +391,29 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public SceneGroupSpun OnSceneGroupSpin; + public delegate bool SceneGroupSpun(UUID groupID, Quaternion rotation); + public event SceneGroupSpun OnSceneGroupSpin; public delegate void LandObjectAdded(ILandObject newParcel); - public LandObjectAdded OnLandObjectAdded; + public event LandObjectAdded OnLandObjectAdded; public delegate void LandObjectRemoved(UUID globalID); - public LandObjectRemoved OnLandObjectRemoved; + public event LandObjectRemoved OnLandObjectRemoved; public delegate void AvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID); - public AvatarEnteringNewParcel OnAvatarEnteringNewParcel; + public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel; public delegate void AvatarAppearanceChange(ScenePresence avatar); - public AvatarAppearanceChange OnAvatarAppearanceChange; + public event AvatarAppearanceChange OnAvatarAppearanceChange; public Action OnSignificantClientMovement; public delegate void IncomingInstantMessage(GridInstantMessage message); - public IncomingInstantMessage OnIncomingInstantMessage; + public event IncomingInstantMessage OnIncomingInstantMessage; + public event IncomingInstantMessage OnUnhandledInstantMessage; public delegate void CrossAgentToNewRegion(ScenePresence sp, bool isFlying, GridRegion newRegion); - public CrossAgentToNewRegion OnCrossAgentToNewRegion; - - public IncomingInstantMessage OnUnhandledInstantMessage; - - public delegate void ClientClosed(UUID clientID, Scene scene); + public event CrossAgentToNewRegion OnCrossAgentToNewRegion; /// /// Fired when a client is removed from a scene whether it's a child or a root agent. @@ -429,9 +424,9 @@ namespace OpenSim.Region.Framework.Scenes /// This is triggered under per-agent lock. So if you want to perform any long-running operations, please /// do this on a separate thread. /// - public ClientClosed OnClientClosed; + public delegate void ClientClosed(UUID clientID, Scene scene); + public event ClientClosed OnClientClosed; - public delegate void NewScript(UUID clientID, SceneObjectPart part, UUID itemID); /// /// Fired when a script is created. /// @@ -441,11 +436,8 @@ namespace OpenSim.Region.Framework.Scenes /// in , /// /// - public NewScript OnNewScript; - - public delegate void ExtraSettingChangedDelegate(Scene scene, string name, string value); - public ExtraSettingChangedDelegate OnExtraSettingChanged; - + public delegate void NewScript(UUID clientID, SceneObjectPart part, UUID itemID); + public event NewScript OnNewScript; public virtual void TriggerNewScript(UUID clientID, SceneObjectPart part, UUID itemID) { NewScript handlerNewScript = OnNewScript; @@ -467,7 +459,6 @@ namespace OpenSim.Region.Framework.Scenes } } - public delegate void UpdateScript(UUID clientID, UUID itemId, UUID primId, bool isScriptRunning, UUID newAssetID); /// /// An indication that the script has changed. /// @@ -480,8 +471,8 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public UpdateScript OnUpdateScript; - + public delegate void UpdateScript(UUID clientID, UUID itemId, UUID primId, bool isScriptRunning, UUID newAssetID); + public event UpdateScript OnUpdateScript; public virtual void TriggerUpdateScript(UUID clientId, UUID itemId, UUID primId, bool isScriptRunning, UUID newAssetID) { UpdateScript handlerUpdateScript = OnUpdateScript; @@ -516,10 +507,9 @@ namespace OpenSim.Region.Framework.Scenes /// in , /// /// - public ScriptChangedEvent OnScriptChangedEvent; public delegate void ScriptChangedEvent(uint localID, uint change, object data); + public event ScriptChangedEvent OnScriptChangedEvent; - public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed); /// /// Triggered when a script receives control input from an agent. @@ -531,23 +521,20 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptControlEvent OnScriptControlEvent; - - public delegate void ScriptMovingStartEvent(uint localID); + public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed); + public event ScriptControlEvent OnScriptControlEvent; /// /// TODO: Should be triggered when a physics object starts moving. /// - public ScriptMovingStartEvent OnScriptMovingStartEvent; - - public delegate void ScriptMovingEndEvent(uint localID); + public delegate void ScriptMovingStartEvent(uint localID); + public event ScriptMovingStartEvent OnScriptMovingStartEvent; /// /// TODO: Should be triggered when a physics object stops moving. /// - public ScriptMovingEndEvent OnScriptMovingEndEvent; - - public delegate void ScriptAtTargetEvent(UUID scriptID, uint handle, Vector3 targetpos, Vector3 atpos); + public delegate void ScriptMovingEndEvent(uint localID); + public event ScriptMovingEndEvent OnScriptMovingEndEvent; /// /// Triggered when an object has arrived within a tolerance distance @@ -559,9 +546,8 @@ namespace OpenSim.Region.Framework.Scenes /// via , /// via /// - public ScriptAtTargetEvent OnScriptAtTargetEvent; - - public delegate void ScriptNotAtTargetEvent(UUID scriptID); + public delegate void ScriptAtTargetEvent(UUID scriptID, uint handle, Vector3 targetpos, Vector3 atpos); + public event ScriptAtTargetEvent OnScriptAtTargetEvent; /// /// Triggered when an object has a motion target but has not arrived @@ -573,9 +559,8 @@ namespace OpenSim.Region.Framework.Scenes /// via , /// via /// - public ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; - - public delegate void ScriptAtRotTargetEvent(UUID scriptID, uint handle, Quaternion targetrot, Quaternion atrot); + public delegate void ScriptNotAtTargetEvent(UUID scriptID); + public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; /// /// Triggered when an object has arrived within a tolerance rotation @@ -587,9 +572,8 @@ namespace OpenSim.Region.Framework.Scenes /// via , /// via /// - public ScriptAtRotTargetEvent OnScriptAtRotTargetEvent; - - public delegate void ScriptNotAtRotTargetEvent(UUID scriptID); + public delegate void ScriptAtRotTargetEvent(UUID scriptID, uint handle, Quaternion targetrot, Quaternion atrot); + public event ScriptAtRotTargetEvent OnScriptAtRotTargetEvent; /// /// Triggered when an object has a rotation target but has not arrived @@ -601,7 +585,9 @@ namespace OpenSim.Region.Framework.Scenes /// via , /// via /// - public ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent; + public delegate void ScriptNotAtRotTargetEvent(UUID scriptID); + public event ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent; + public delegate void ScriptColliding(uint localID, ColliderArgs colliders); @@ -616,7 +602,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptColliderStart; + public event ScriptColliding OnScriptColliderStart; /// /// Triggered when something that previously collided with a prim has @@ -630,7 +616,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptColliding; + public event ScriptColliding OnScriptColliding; /// /// Triggered when something that previously collided with a prim has @@ -643,7 +629,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptCollidingEnd; + public event ScriptColliding OnScriptCollidingEnd; /// /// Triggered when a physical collision has started between an object @@ -656,7 +642,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptLandColliderStart; + public event ScriptColliding OnScriptLandColliderStart; /// /// Triggered when an object that previously collided with the region @@ -669,7 +655,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptLandColliding; + public event ScriptColliding OnScriptLandColliding; /// /// Triggered when an object that previously collided with the region @@ -682,9 +668,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// via /// - public ScriptColliding OnScriptLandColliderEnd; - - public delegate void OnMakeChildAgentDelegate(ScenePresence presence); + public event ScriptColliding OnScriptLandColliderEnd; /// /// Triggered when an agent has been made a child agent of a scene. @@ -696,7 +680,8 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public OnMakeChildAgentDelegate OnMakeChildAgent; + public delegate void OnMakeChildAgentDelegate(ScenePresence presence); + public event OnMakeChildAgentDelegate OnMakeChildAgent; /// /// Triggered after the grunt work for adding a root agent to a @@ -717,22 +702,20 @@ namespace OpenSim.Region.Framework.Scenes /// /// Triggered when an object or attachment enters a scene /// - public OnIncomingSceneObjectDelegate OnIncomingSceneObject; public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so); + public event OnIncomingSceneObjectDelegate OnIncomingSceneObject; public delegate void NewInventoryItemUploadComplete(InventoryItemBase item, int userlevel); - - public NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; + public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; public delegate void RequestChangeWaterHeight(float height); - - public RequestChangeWaterHeight OnRequestChangeWaterHeight; + public event RequestChangeWaterHeight OnRequestChangeWaterHeight; /// /// Fired if any avatar is 'killed' due to its health falling to zero /// - public AvatarKillData OnAvatarKilled; public delegate void AvatarKillData(uint KillerLocalID, ScenePresence avatar); + public event AvatarKillData OnAvatarKilled; /* public delegate void ScriptTimerEvent(uint localID, double timerinterval); @@ -747,9 +730,9 @@ namespace OpenSim.Region.Framework.Scenes */ public delegate void EstateToolsSunUpdate(ulong regionHandle); - public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); + public event EstateToolsSunUpdate OnEstateToolsSunUpdate; - public EstateToolsSunUpdate OnEstateToolsSunUpdate; + public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); /// /// Triggered when an object is added to the scene. @@ -762,18 +745,15 @@ namespace OpenSim.Region.Framework.Scenes /// public Action OnObjectAddedToScene; - /// - /// When a client sends a derez request for an object inworld - /// but before the object is deleted - /// - public DeRezRequested OnDeRezRequested; /// /// Triggered when a client sends a derez request for an object inworld + /// but before the object is deleted /// /// The client question (it can be null) /// The object in question /// The exact derez action /// Flag indicating whether the object should be deleted from the scene or not + public event DeRezRequested OnDeRezRequested; public delegate bool DeRezRequested(IClientAPI remoteClient, List objs, DeRezAction action); /// @@ -783,12 +763,8 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered by /// in /// - public ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; - /// - /// Delegate for - /// - /// The object being removed from the scene public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); + public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; /// /// Triggered when an object is placed into the physical scene (PhysicsActor created). @@ -804,18 +780,16 @@ namespace OpenSim.Region.Framework.Scenes public Action OnObjectRemovedFromPhysicalScene; public delegate void NoticeNoLandDataFromStorage(); - public NoticeNoLandDataFromStorage OnNoticeNoLandDataFromStorage; + public event NoticeNoLandDataFromStorage OnNoticeNoLandDataFromStorage; public delegate void IncomingLandDataFromStorage(List data); - public IncomingLandDataFromStorage OnIncomingLandDataFromStorage; + public event IncomingLandDataFromStorage OnIncomingLandDataFromStorage; public delegate void SetAllowForcefulBan(bool allow); - public SetAllowForcefulBan OnSetAllowForcefulBan; + public event SetAllowForcefulBan OnSetAllowForcefulBan; public delegate void RequestParcelPrimCountUpdate(); - public RequestParcelPrimCountUpdate OnRequestParcelPrimCountUpdate; - - public delegate void ParcelPrimCountTainted(); + public event RequestParcelPrimCountUpdate OnRequestParcelPrimCountUpdate; /// /// Triggered when the parcel prim count has been altered. @@ -830,11 +804,13 @@ namespace OpenSim.Region.Framework.Scenes /// , /// /// - public ParcelPrimCountTainted OnParcelPrimCountTainted; - public GetScriptRunning OnGetScriptRunning; + public delegate void ParcelPrimCountTainted(); + public event ParcelPrimCountTainted OnParcelPrimCountTainted; + + public event GetScriptRunning OnGetScriptRunning; public delegate void ThrottleUpdate(ScenePresence scenePresence); - public ThrottleUpdate OnThrottleUpdate; + public event ThrottleUpdate OnThrottleUpdate; /// /// RegisterCapsEvent is called by Scene after the Caps object @@ -842,21 +818,21 @@ namespace OpenSim.Region.Framework.Scenes /// client and provides region modules to add their caps. /// public delegate void RegisterCapsEvent(UUID agentID, Caps caps); - public RegisterCapsEvent OnRegisterCaps; + public event RegisterCapsEvent OnRegisterCaps; /// /// DeregisterCapsEvent is called by Scene when the caps /// handler for an agent are removed. /// public delegate void DeregisterCapsEvent(UUID agentID, Caps caps); - public DeregisterCapsEvent OnDeregisterCaps; + public event DeregisterCapsEvent OnDeregisterCaps; /// /// ChatFromWorldEvent is called via Scene when a chat message /// from world comes in. /// public delegate void ChatFromWorldEvent(Object sender, OSChatMessage chat); - public ChatFromWorldEvent OnChatFromWorld; + public event ChatFromWorldEvent OnChatFromWorld; /// /// ChatFromClientEvent is triggered via ChatModule (or @@ -864,7 +840,7 @@ namespace OpenSim.Region.Framework.Scenes /// from the client comes in. /// public delegate void ChatFromClientEvent(Object sender, OSChatMessage chat); - public ChatFromClientEvent OnChatFromClient; + public event ChatFromClientEvent OnChatFromClient; /// /// ChatToClientsEvent is triggered via ChatModule (or @@ -875,17 +851,17 @@ namespace OpenSim.Region.Framework.Scenes UUID senderID, HashSet receiverIDs, string message, ChatTypeEnum type, Vector3 fromPos, string fromName, ChatSourceType src, ChatAudibleLevel level); - public ChatToClientsEvent OnChatToClients; + public event ChatToClientsEvent OnChatToClients; /// /// ChatBroadcastEvent is called via Scene when a broadcast chat message /// from world comes in /// public delegate void ChatBroadcastEvent(Object sender, OSChatMessage chat); - public ChatBroadcastEvent OnChatBroadcast; + public event ChatBroadcastEvent OnChatBroadcast; public delegate float SunLindenHour(); - public SunLindenHour OnGetCurrentTimeAsLindenSunHour; + public event SunLindenHour OnGetCurrentTimeAsLindenSunHour; /// /// Called when oar file has finished loading, although @@ -893,7 +869,7 @@ namespace OpenSim.Region.Framework.Scenes /// Message is non empty string if there were problems loading the oar file /// public delegate void OarFileLoaded(Guid guid, List loadedScenes, string message); - public OarFileLoaded OnOarFileLoaded; + public event OarFileLoaded OnOarFileLoaded; /// /// Called when an oar file has finished saving @@ -902,14 +878,14 @@ namespace OpenSim.Region.Framework.Scenes /// Guid.Empty is returned. /// public delegate void OarFileSaved(Guid guid, string message); - public OarFileSaved OnOarFileSaved; + public event OarFileSaved OnOarFileSaved; /// /// Called when the script compile queue becomes empty /// Returns the number of scripts which failed to start /// public delegate void EmptyScriptCompileQueue(int numScriptsFailed, string message); - public EmptyScriptCompileQueue OnEmptyScriptCompileQueue; + public event EmptyScriptCompileQueue OnEmptyScriptCompileQueue; /// /// Called whenever an object is attached, or detached from an in-world presence. @@ -917,14 +893,13 @@ namespace OpenSim.Region.Framework.Scenes /// If the object is being attached, then the avatarID will be present. If the object is being detached then /// the avatarID is UUID.Zero (I know, this doesn't make much sense but now it's historical). public delegate void Attach(uint localID, UUID itemID, UUID avatarID); - public Attach OnAttach; - + public event Attach OnAttach; /// /// Called immediately after an object is loaded from storage. /// - public SceneObjectDelegate OnSceneObjectLoaded; public delegate void SceneObjectDelegate(SceneObjectGroup so); + public event SceneObjectDelegate OnSceneObjectLoaded; /// /// Called immediately before an object is saved to storage. @@ -936,8 +911,8 @@ namespace OpenSim.Region.Framework.Scenes /// /// The original scene object being persisted. Changes here will stay in memory but will not be saved to storage on this save. /// - public SceneObjectPreSaveDelegate OnSceneObjectPreSave; public delegate void SceneObjectPreSaveDelegate(SceneObjectGroup persistingSo, SceneObjectGroup originalSo); + public event SceneObjectPreSaveDelegate OnSceneObjectPreSave; /// /// Called when a scene object part is cloned within the region. @@ -948,25 +923,26 @@ namespace OpenSim.Region.Framework.Scenes /// /// Triggered in /// - public SceneObjectPartCopyDelegate OnSceneObjectPartCopy; public delegate void SceneObjectPartCopyDelegate(SceneObjectPart copy, SceneObjectPart original, bool userExposed); + public event SceneObjectPartCopyDelegate OnSceneObjectPartCopy; public delegate void SceneObjectPartUpdated(SceneObjectPart sop, bool full); - public SceneObjectPartUpdated OnSceneObjectPartUpdated; + public event SceneObjectPartUpdated OnSceneObjectPartUpdated; public delegate void ScenePresenceUpdated(ScenePresence sp); - public ScenePresenceUpdated OnScenePresenceUpdated; + public event ScenePresenceUpdated OnScenePresenceUpdated; public delegate void RegionUp(GridRegion region); - public RegionUp OnRegionUp; + public event RegionUp OnRegionUp; public delegate void RegionStarted(Scene scene); - public RegionStarted OnRegionStarted; + public event RegionStarted OnRegionStarted; public delegate void RegionHeartbeatStart(Scene scene); - public RegionHeartbeatStart OnRegionHeartbeatStart; + public event RegionHeartbeatStart OnRegionHeartbeatStart; + public delegate void RegionHeartbeatEnd(Scene scene); - public RegionHeartbeatEnd OnRegionHeartbeatEnd; + public event RegionHeartbeatEnd OnRegionHeartbeatEnd; /// /// Fired when logins to a region are enabled or disabled. @@ -975,8 +951,8 @@ namespace OpenSim.Region.Framework.Scenes /// /// /// Fired - public RegionLoginsStatusChange OnRegionLoginsStatusChange; public delegate void RegionLoginsStatusChange(IScene scene); + public event RegionLoginsStatusChange OnRegionLoginsStatusChange; /// /// Fired when a region is considered ready for use. @@ -988,7 +964,7 @@ namespace OpenSim.Region.Framework.Scenes public Action OnRegionReadyStatusChange; public delegate void PrimsLoaded(Scene s); - public PrimsLoaded OnPrimsLoaded; + public event PrimsLoaded OnPrimsLoaded; /// /// Triggered when a teleport starts @@ -1000,7 +976,7 @@ namespace OpenSim.Region.Framework.Scenes /// via /// public delegate void TeleportStart(IClientAPI client, GridRegion destination, GridRegion finalDestination, uint teleportFlags, bool gridLogout); - public TeleportStart OnTeleportStart; + public event TeleportStart OnTeleportStart; /// /// Trigered when a teleport fails. @@ -1011,9 +987,9 @@ namespace OpenSim.Region.Framework.Scenes /// via /// public delegate void TeleportFail(IClientAPI client, bool gridLogout); - public TeleportFail OnTeleportFail; + public event TeleportFail OnTeleportFail; - public class MoneyTransferArgs + public class MoneyTransferArgs : EventArgs { public UUID sender; public UUID receiver; @@ -1032,7 +1008,20 @@ namespace OpenSim.Region.Framework.Scenes } } - public class LandBuyArgs + + /// + /// Triggered when an attempt to transfer grid currency occurs + /// + /// + /// Triggered in + /// via + /// via + /// via + /// + public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e); + public event MoneyTransferEvent OnMoneyTransfer; + + public class LandBuyArgs : EventArgs { public UUID agentId = UUID.Zero; public UUID groupId = UUID.Zero; @@ -1065,23 +1054,11 @@ namespace OpenSim.Region.Framework.Scenes } } - public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e); - /// - /// Triggered when an attempt to transfer grid currency occurs - /// - /// - /// Triggered in - /// via - /// via - /// via - /// - public MoneyTransferEvent OnMoneyTransfer; - - public delegate void LandBuy(Object sender, LandBuyArgs e); /// /// Triggered after after /// - public LandBuy OnLandBuy; + public delegate void LandBuy(Object sender, LandBuyArgs e); + public event LandBuy OnLandBuy; /// /// Triggered to allow or prevent a real estate transaction @@ -1090,7 +1067,7 @@ namespace OpenSim.Region.Framework.Scenes /// Triggered in /// /// - public LandBuy OnValidateLandBuy; + public event LandBuy OnValidateLandBuy; public void TriggerOnAttach(uint localID, UUID itemID, UUID avatarID) { @@ -3276,10 +3253,12 @@ namespace OpenSim.Region.Framework.Scenes } } + public delegate void ExtraSettingChangedDelegate(Scene scene, string name, string value); + public event ExtraSettingChangedDelegate OnExtraSettingChanged; + public void TriggerExtraSettingChanged(Scene scene, string name, string val) { ExtraSettingChangedDelegate handler = OnExtraSettingChanged; - if (handler != null) { foreach (ExtraSettingChangedDelegate d in handler.GetInvocationList()) diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs index df98a80334..acc4d350a3 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs @@ -115,73 +115,73 @@ namespace OpenSim.Region.Framework.Scenes m_scene = scene; } - #region delegate handlers - public GenerateClientFlagsHandler OnGenerateClientFlags; - public SetBypassPermissionsHandler OnSetBypassPermissions; - public BypassPermissionsHandler OnBypassPermissions; - public PropagatePermissionsHandler OnPropagatePermissions; - public RezObjectHandler OnRezObject; - public DeleteObjectHandlerByIDs OnDeleteObjectByIDs; - public DeleteObjectHandler OnDeleteObject; - public TransferObjectHandler OnTransferObject; - public TakeObjectHandler OnTakeObject; + #region events + public event GenerateClientFlagsHandler OnGenerateClientFlags; + public event SetBypassPermissionsHandler OnSetBypassPermissions; + public event BypassPermissionsHandler OnBypassPermissions; + public event PropagatePermissionsHandler OnPropagatePermissions; + public event RezObjectHandler OnRezObject; + public event DeleteObjectHandlerByIDs OnDeleteObjectByIDs; + public event DeleteObjectHandler OnDeleteObject; + public event TransferObjectHandler OnTransferObject; + public event TakeObjectHandler OnTakeObject; - public SellGroupObjectHandler OnSellGroupObject; - public SellObjectHandlerByUserID OnSellObjectByUserID; - public SellObjectHandler OnSellObject; + public event SellGroupObjectHandler OnSellGroupObject; + public event SellObjectHandlerByUserID OnSellObjectByUserID; + public event SellObjectHandler OnSellObject; - public TakeCopyObjectHandler OnTakeCopyObject; - public DuplicateObjectHandler OnDuplicateObject; - public EditObjectByIDsHandler OnEditObjectByIDs; - public EditObjectHandler OnEditObject; - public EditObjectPermsHandler OnEditObjectPerms; - public EditObjectInventoryHandler OnEditObjectInventory; - public MoveObjectHandler OnMoveObject; - public ObjectEntryHandler OnObjectEntry; - public ObjectEnterWithScriptsHandler OnObjectEnterWithScripts; - public ReturnObjectsHandler OnReturnObjects; - public InstantMessageHandler OnInstantMessage; - public InventoryTransferHandler OnInventoryTransfer; - public ViewScriptHandler OnViewScript; - public ViewNotecardHandler OnViewNotecard; - public EditScriptHandler OnEditScript; - public EditNotecardHandler OnEditNotecard; - public RunScriptHandlerByIDs OnRunScriptByIDs; - public RunScriptHandler OnRunScript; - public CompileScriptHandler OnCompileScript; - public StartScriptHandler OnStartScript; - public StopScriptHandler OnStopScript; - public ResetScriptHandler OnResetScript; - public TerraformLandHandler OnTerraformLand; - public RunConsoleCommandHandler OnRunConsoleCommand; - public IssueEstateCommandHandler OnIssueEstateCommand; - public IsGridGodHandler OnIsGridGod; - public IsAdministratorHandler OnIsAdministrator; - public IsEstateManagerHandler OnIsEstateManager; -// public EditParcelHandler OnEditParcel; - public EditParcelPropertiesHandler OnEditParcelProperties; - public SellParcelHandler OnSellParcel; - public AbandonParcelHandler OnAbandonParcel; - public ReclaimParcelHandler OnReclaimParcel; - public DeedParcelHandler OnDeedParcel; - public DeedObjectHandler OnDeedObject; - public BuyLandHandler OnBuyLand; - public LinkObjectHandler OnLinkObject; - public DelinkObjectHandler OnDelinkObject; - public CreateObjectInventoryHandler OnCreateObjectInventory; - public CopyObjectInventoryHandler OnCopyObjectInventory; - public DoObjectInvToObjectInv OnDoObjectInvToObjectInv; - public DoDropInObjectInv OnDropInObjectInv; - public DeleteObjectInventoryHandler OnDeleteObjectInventory; - public TransferObjectInventoryHandler OnTransferObjectInventory; - public CreateUserInventoryHandler OnCreateUserInventory; - public EditUserInventoryHandler OnEditUserInventory; - public CopyUserInventoryHandler OnCopyUserInventory; - public DeleteUserInventoryHandler OnDeleteUserInventory; - public TransferUserInventoryHandler OnTransferUserInventory; - public TeleportHandler OnTeleport; - public ControlPrimMediaHandler OnControlPrimMedia; - public InteractWithPrimMediaHandler OnInteractWithPrimMedia; + public event TakeCopyObjectHandler OnTakeCopyObject; + public event DuplicateObjectHandler OnDuplicateObject; + public event EditObjectByIDsHandler OnEditObjectByIDs; + public event EditObjectHandler OnEditObject; + public event EditObjectPermsHandler OnEditObjectPerms; + public event EditObjectInventoryHandler OnEditObjectInventory; + public event MoveObjectHandler OnMoveObject; + public event ObjectEntryHandler OnObjectEntry; + public event ObjectEnterWithScriptsHandler OnObjectEnterWithScripts; + public event ReturnObjectsHandler OnReturnObjects; + public event InstantMessageHandler OnInstantMessage; + public event InventoryTransferHandler OnInventoryTransfer; + public event ViewScriptHandler OnViewScript; + public event ViewNotecardHandler OnViewNotecard; + public event EditScriptHandler OnEditScript; + public event EditNotecardHandler OnEditNotecard; + public event RunScriptHandlerByIDs OnRunScriptByIDs; + public event RunScriptHandler OnRunScript; + public event CompileScriptHandler OnCompileScript; + public event StartScriptHandler OnStartScript; + public event StopScriptHandler OnStopScript; + public event ResetScriptHandler OnResetScript; + public event TerraformLandHandler OnTerraformLand; + public event RunConsoleCommandHandler OnRunConsoleCommand; + public event IssueEstateCommandHandler OnIssueEstateCommand; + public event IsGridGodHandler OnIsGridGod; + public event IsAdministratorHandler OnIsAdministrator; + public event IsEstateManagerHandler OnIsEstateManager; + // public event EditParcelHandler OnEditParcel; + public event EditParcelPropertiesHandler OnEditParcelProperties; + public event SellParcelHandler OnSellParcel; + public event AbandonParcelHandler OnAbandonParcel; + public event ReclaimParcelHandler OnReclaimParcel; + public event DeedParcelHandler OnDeedParcel; + public event DeedObjectHandler OnDeedObject; + public event BuyLandHandler OnBuyLand; + public event LinkObjectHandler OnLinkObject; + public event DelinkObjectHandler OnDelinkObject; + public event CreateObjectInventoryHandler OnCreateObjectInventory; + public event CopyObjectInventoryHandler OnCopyObjectInventory; + public event DoObjectInvToObjectInv OnDoObjectInvToObjectInv; + public event DoDropInObjectInv OnDropInObjectInv; + public event DeleteObjectInventoryHandler OnDeleteObjectInventory; + public event TransferObjectInventoryHandler OnTransferObjectInventory; + public event CreateUserInventoryHandler OnCreateUserInventory; + public event EditUserInventoryHandler OnEditUserInventory; + public event CopyUserInventoryHandler OnCopyUserInventory; + public event DeleteUserInventoryHandler OnDeleteUserInventory; + public event TransferUserInventoryHandler OnTransferUserInventory; + public event TeleportHandler OnTeleport; + public event ControlPrimMediaHandler OnControlPrimMedia; + public event InteractWithPrimMediaHandler OnInteractWithPrimMedia; #endregion #region Object Permission Checks