diff options
Removed use of 'is' operator and casting to find the root ScenePresence in MessageTransfer modules and Groups module.
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs | 57 |
1 files changed, 22 insertions, 35 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs index 72b448b..321a705 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs | |||
@@ -143,24 +143,19 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
143 | // Try root avatar only first | 143 | // Try root avatar only first |
144 | foreach (Scene scene in m_Scenes) | 144 | foreach (Scene scene in m_Scenes) |
145 | { | 145 | { |
146 | if (scene.Entities.ContainsKey(toAgentID) && | 146 | // m_log.DebugFormat( |
147 | scene.Entities[toAgentID] is ScenePresence) | 147 | // "[HG INSTANT MESSAGE]: Looking for root agent {0} in {1}", |
148 | { | 148 | // toAgentID.ToString(), scene.RegionInfo.RegionName); |
149 | // m_log.DebugFormat( | 149 | ScenePresence sp = scene.GetScenePresence(toAgentID); |
150 | // "[HG INSTANT MESSAGE]: Looking for root agent {0} in {1}", | 150 | if (sp != null && !sp.IsChildAgent) |
151 | // toAgentID.ToString(), scene.RegionInfo.RegionName); | 151 | { |
152 | 152 | // Local message | |
153 | ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; | 153 | // m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID); |
154 | if (!user.IsChildAgent) | 154 | sp.ControllingClient.SendInstantMessage(im); |
155 | { | ||
156 | // Local message | ||
157 | // m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID); | ||
158 | user.ControllingClient.SendInstantMessage(im); | ||
159 | 155 | ||
160 | // Message sent | 156 | // Message sent |
161 | result(true); | 157 | result(true); |
162 | return; | 158 | return; |
163 | } | ||
164 | } | 159 | } |
165 | } | 160 | } |
166 | 161 | ||
@@ -168,16 +163,14 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
168 | foreach (Scene scene in m_Scenes) | 163 | foreach (Scene scene in m_Scenes) |
169 | { | 164 | { |
170 | // m_log.DebugFormat( | 165 | // m_log.DebugFormat( |
171 | // "[HG INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName); | 166 | // "[HG INSTANT MESSAGE]: Looking for child of {0} in {1}", |
172 | 167 | // toAgentID, scene.RegionInfo.RegionName); | |
173 | if (scene.Entities.ContainsKey(toAgentID) && | 168 | ScenePresence sp = scene.GetScenePresence(toAgentID); |
174 | scene.Entities[toAgentID] is ScenePresence) | 169 | if (sp != null) |
175 | { | 170 | { |
176 | // Local message | 171 | // Local message |
177 | ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; | ||
178 | |||
179 | // m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); | 172 | // m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); |
180 | user.ControllingClient.SendInstantMessage(im); | 173 | sp.ControllingClient.SendInstantMessage(im); |
181 | 174 | ||
182 | // Message sent | 175 | // Message sent |
183 | result(true); | 176 | result(true); |
@@ -231,17 +224,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
231 | bool successful = false; | 224 | bool successful = false; |
232 | foreach (Scene scene in m_Scenes) | 225 | foreach (Scene scene in m_Scenes) |
233 | { | 226 | { |
234 | if (scene.Entities.ContainsKey(toAgentID) && | 227 | ScenePresence sp = scene.GetScenePresence(toAgentID); |
235 | scene.Entities[toAgentID] is ScenePresence) | 228 | if(!sp.IsChildAgent) |
236 | { | 229 | { |
237 | ScenePresence user = | 230 | scene.EventManager.TriggerIncomingInstantMessage(gim); |
238 | (ScenePresence)scene.Entities[toAgentID]; | 231 | successful = true; |
239 | |||
240 | if (!user.IsChildAgent) | ||
241 | { | ||
242 | scene.EventManager.TriggerIncomingInstantMessage(gim); | ||
243 | successful = true; | ||
244 | } | ||
245 | } | 232 | } |
246 | } | 233 | } |
247 | if (!successful) | 234 | if (!successful) |