diff options
Diffstat (limited to 'OpenSim')
3 files changed, 28 insertions, 38 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 1187e91..d895bb1 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -56,11 +56,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
56 | { | 56 | { |
57 | m_scene = scene; | 57 | m_scene = scene; |
58 | m_scene.RegisterModuleInterface<IAttachmentsModule>(this); | 58 | m_scene.RegisterModuleInterface<IAttachmentsModule>(this); |
59 | m_scene.EventManager.OnNewClient += SubscribeToClientEvents; | ||
60 | // TODO: Should probably be subscribing to CloseClient too, but this doesn't yet give us IClientAPI | ||
59 | } | 61 | } |
60 | 62 | ||
61 | public void RemoveRegion(Scene scene) | 63 | public void RemoveRegion(Scene scene) |
62 | { | 64 | { |
63 | m_scene.UnregisterModuleInterface<IAttachmentsModule>(this); | 65 | m_scene.UnregisterModuleInterface<IAttachmentsModule>(this); |
66 | m_scene.EventManager.OnNewClient -= SubscribeToClientEvents; | ||
64 | } | 67 | } |
65 | 68 | ||
66 | public void RegionLoaded(Scene scene) {} | 69 | public void RegionLoaded(Scene scene) {} |
@@ -69,7 +72,25 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
69 | { | 72 | { |
70 | RemoveRegion(m_scene); | 73 | RemoveRegion(m_scene); |
71 | } | 74 | } |
72 | 75 | ||
76 | public void SubscribeToClientEvents(IClientAPI client) | ||
77 | { | ||
78 | client.OnRezSingleAttachmentFromInv += RezSingleAttachmentFromInventory; | ||
79 | client.OnRezMultipleAttachmentsFromInv += RezMultipleAttachmentsFromInventory; | ||
80 | client.OnObjectAttach += AttachObject; | ||
81 | client.OnObjectDetach += DetachObject; | ||
82 | client.OnDetachAttachmentIntoInv += ShowDetachInUserInventory; | ||
83 | } | ||
84 | |||
85 | public void UnsubscribeFromClientEvents(IClientAPI client) | ||
86 | { | ||
87 | client.OnRezSingleAttachmentFromInv -= RezSingleAttachmentFromInventory; | ||
88 | client.OnRezMultipleAttachmentsFromInv -= RezMultipleAttachmentsFromInventory; | ||
89 | client.OnObjectAttach -= AttachObject; | ||
90 | client.OnObjectDetach -= DetachObject; | ||
91 | client.OnDetachAttachmentIntoInv -= ShowDetachInUserInventory; | ||
92 | } | ||
93 | |||
73 | /// <summary> | 94 | /// <summary> |
74 | /// Called by client | 95 | /// Called by client |
75 | /// </summary> | 96 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9141d44..088d210 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2783,17 +2783,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2783 | SubscribeToClientPrimEvents(client); | 2783 | SubscribeToClientPrimEvents(client); |
2784 | SubscribeToClientPrimRezEvents(client); | 2784 | SubscribeToClientPrimRezEvents(client); |
2785 | SubscribeToClientInventoryEvents(client); | 2785 | SubscribeToClientInventoryEvents(client); |
2786 | SubscribeToClientAttachmentEvents(client); | ||
2787 | SubscribeToClientTeleportEvents(client); | 2786 | SubscribeToClientTeleportEvents(client); |
2788 | SubscribeToClientScriptEvents(client); | 2787 | SubscribeToClientScriptEvents(client); |
2789 | SubscribeToClientParcelEvents(client); | 2788 | SubscribeToClientParcelEvents(client); |
2790 | SubscribeToClientGridEvents(client); | 2789 | SubscribeToClientGridEvents(client); |
2791 | SubscribeToClientGodEvents(client); | 2790 | SubscribeToClientGodEvents(client); |
2792 | |||
2793 | SubscribeToClientNetworkEvents(client); | 2791 | SubscribeToClientNetworkEvents(client); |
2794 | |||
2795 | |||
2796 | // EventManager.TriggerOnNewClient(client); | ||
2797 | } | 2792 | } |
2798 | 2793 | ||
2799 | public virtual void SubscribeToClientTerrainEvents(IClientAPI client) | 2794 | public virtual void SubscribeToClientTerrainEvents(IClientAPI client) |
@@ -2874,18 +2869,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2874 | client.OnMoveTaskItem += ClientMoveTaskInventoryItem; | 2869 | client.OnMoveTaskItem += ClientMoveTaskInventoryItem; |
2875 | } | 2870 | } |
2876 | 2871 | ||
2877 | public virtual void SubscribeToClientAttachmentEvents(IClientAPI client) | ||
2878 | { | ||
2879 | if (AttachmentsModule != null) | ||
2880 | { | ||
2881 | client.OnRezSingleAttachmentFromInv += AttachmentsModule.RezSingleAttachmentFromInventory; | ||
2882 | client.OnRezMultipleAttachmentsFromInv += AttachmentsModule.RezMultipleAttachmentsFromInventory; | ||
2883 | client.OnObjectAttach += AttachmentsModule.AttachObject; | ||
2884 | client.OnObjectDetach += AttachmentsModule.DetachObject; | ||
2885 | client.OnDetachAttachmentIntoInv += AttachmentsModule.ShowDetachInUserInventory; | ||
2886 | } | ||
2887 | } | ||
2888 | |||
2889 | public virtual void SubscribeToClientTeleportEvents(IClientAPI client) | 2872 | public virtual void SubscribeToClientTeleportEvents(IClientAPI client) |
2890 | { | 2873 | { |
2891 | client.OnTeleportLocationRequest += RequestTeleportLocation; | 2874 | client.OnTeleportLocationRequest += RequestTeleportLocation; |
@@ -2934,16 +2917,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2934 | } | 2917 | } |
2935 | 2918 | ||
2936 | /// <summary> | 2919 | /// <summary> |
2937 | /// Register for events from the client | 2920 | /// Unsubscribe the client from events. |
2938 | /// </summary> | 2921 | /// </summary> |
2939 | /// <param name="client">The IClientAPI of the connected client</param> | 2922 | /// <param name="client">The IClientAPI of the client</param> |
2940 | public virtual void UnSubscribeToClientEvents(IClientAPI client) | 2923 | public virtual void UnSubscribeToClientEvents(IClientAPI client) |
2941 | { | 2924 | { |
2942 | UnSubscribeToClientTerrainEvents(client); | 2925 | UnSubscribeToClientTerrainEvents(client); |
2943 | UnSubscribeToClientPrimEvents(client); | 2926 | UnSubscribeToClientPrimEvents(client); |
2944 | UnSubscribeToClientPrimRezEvents(client); | 2927 | UnSubscribeToClientPrimRezEvents(client); |
2945 | UnSubscribeToClientInventoryEvents(client); | 2928 | UnSubscribeToClientInventoryEvents(client); |
2946 | UnSubscribeToClientAttachmentEvents(client); | ||
2947 | UnSubscribeToClientTeleportEvents(client); | 2929 | UnSubscribeToClientTeleportEvents(client); |
2948 | UnSubscribeToClientScriptEvents(client); | 2930 | UnSubscribeToClientScriptEvents(client); |
2949 | UnSubscribeToClientParcelEvents(client); | 2931 | UnSubscribeToClientParcelEvents(client); |
@@ -2951,8 +2933,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2951 | UnSubscribeToClientGodEvents(client); | 2933 | UnSubscribeToClientGodEvents(client); |
2952 | 2934 | ||
2953 | UnSubscribeToClientNetworkEvents(client); | 2935 | UnSubscribeToClientNetworkEvents(client); |
2954 | |||
2955 | // EventManager.TriggerOnNewClient(client); | ||
2956 | } | 2936 | } |
2957 | 2937 | ||
2958 | public virtual void UnSubscribeToClientTerrainEvents(IClientAPI client) | 2938 | public virtual void UnSubscribeToClientTerrainEvents(IClientAPI client) |
@@ -3029,18 +3009,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3029 | client.OnMoveTaskItem -= ClientMoveTaskInventoryItem; | 3009 | client.OnMoveTaskItem -= ClientMoveTaskInventoryItem; |
3030 | } | 3010 | } |
3031 | 3011 | ||
3032 | public virtual void UnSubscribeToClientAttachmentEvents(IClientAPI client) | ||
3033 | { | ||
3034 | if (AttachmentsModule != null) | ||
3035 | { | ||
3036 | client.OnRezSingleAttachmentFromInv -= AttachmentsModule.RezSingleAttachmentFromInventory; | ||
3037 | client.OnRezMultipleAttachmentsFromInv -= AttachmentsModule.RezMultipleAttachmentsFromInventory; | ||
3038 | client.OnObjectAttach -= AttachmentsModule.AttachObject; | ||
3039 | client.OnObjectDetach -= AttachmentsModule.DetachObject; | ||
3040 | client.OnDetachAttachmentIntoInv -= AttachmentsModule.ShowDetachInUserInventory; | ||
3041 | } | ||
3042 | } | ||
3043 | |||
3044 | public virtual void UnSubscribeToClientTeleportEvents(IClientAPI client) | 3012 | public virtual void UnSubscribeToClientTeleportEvents(IClientAPI client) |
3045 | { | 3013 | { |
3046 | client.OnTeleportLocationRequest -= RequestTeleportLocation; | 3014 | client.OnTeleportLocationRequest -= RequestTeleportLocation; |
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerIndividualEventForwarder.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerIndividualEventForwarder.cs index 9d41c9c..62410e2 100644 --- a/OpenSim/Region/RegionCombinerModule/RegionCombinerIndividualEventForwarder.cs +++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerIndividualEventForwarder.cs | |||
@@ -28,11 +28,12 @@ | |||
28 | using System; | 28 | using System; |
29 | using OpenMetaverse; | 29 | using OpenMetaverse; |
30 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
31 | using OpenSim.Region.CoreModules.Avatar.Attachments; | ||
31 | using OpenSim.Region.Framework.Scenes; | 32 | using OpenSim.Region.Framework.Scenes; |
32 | 33 | ||
33 | namespace OpenSim.Region.RegionCombinerModule | 34 | namespace OpenSim.Region.RegionCombinerModule |
34 | { | 35 | { |
35 | public class RegionCombinerIndividualEventForwarder | 36 | public class RegionCombinerIndividualEventForwarder |
36 | { | 37 | { |
37 | private Scene m_rootScene; | 38 | private Scene m_rootScene; |
38 | private Scene m_virtScene; | 39 | private Scene m_virtScene; |
@@ -48,7 +49,7 @@ namespace OpenSim.Region.RegionCombinerModule | |||
48 | m_virtScene.UnSubscribeToClientPrimEvents(client); | 49 | m_virtScene.UnSubscribeToClientPrimEvents(client); |
49 | m_virtScene.UnSubscribeToClientPrimRezEvents(client); | 50 | m_virtScene.UnSubscribeToClientPrimRezEvents(client); |
50 | m_virtScene.UnSubscribeToClientInventoryEvents(client); | 51 | m_virtScene.UnSubscribeToClientInventoryEvents(client); |
51 | m_virtScene.UnSubscribeToClientAttachmentEvents(client); | 52 | ((AttachmentsModule)m_virtScene.AttachmentsModule).UnsubscribeFromClientEvents(client); |
52 | //m_virtScene.UnSubscribeToClientTeleportEvents(client); | 53 | //m_virtScene.UnSubscribeToClientTeleportEvents(client); |
53 | m_virtScene.UnSubscribeToClientScriptEvents(client); | 54 | m_virtScene.UnSubscribeToClientScriptEvents(client); |
54 | m_virtScene.UnSubscribeToClientGodEvents(client); | 55 | m_virtScene.UnSubscribeToClientGodEvents(client); |
@@ -58,7 +59,7 @@ namespace OpenSim.Region.RegionCombinerModule | |||
58 | client.OnAddPrim += LocalAddNewPrim; | 59 | client.OnAddPrim += LocalAddNewPrim; |
59 | client.OnRezObject += LocalRezObject; | 60 | client.OnRezObject += LocalRezObject; |
60 | m_rootScene.SubscribeToClientInventoryEvents(client); | 61 | m_rootScene.SubscribeToClientInventoryEvents(client); |
61 | m_rootScene.SubscribeToClientAttachmentEvents(client); | 62 | ((AttachmentsModule)m_rootScene.AttachmentsModule).SubscribeToClientEvents(client); |
62 | //m_rootScene.SubscribeToClientTeleportEvents(client); | 63 | //m_rootScene.SubscribeToClientTeleportEvents(client); |
63 | m_rootScene.SubscribeToClientScriptEvents(client); | 64 | m_rootScene.SubscribeToClientScriptEvents(client); |
64 | m_rootScene.SubscribeToClientGodEvents(client); | 65 | m_rootScene.SubscribeToClientGodEvents(client); |