diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar')
5 files changed, 49 insertions, 81 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs index 4359c01..2cd71c4 100644 --- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs | |||
@@ -279,12 +279,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat | |||
279 | 279 | ||
280 | HashSet<UUID> receiverIDs = new HashSet<UUID>(); | 280 | HashSet<UUID> receiverIDs = new HashSet<UUID>(); |
281 | 281 | ||
282 | ((Scene)c.Scene).ForEachScenePresence( | 282 | ((Scene)c.Scene).ForEachRootScenePresence( |
283 | delegate(ScenePresence presence) | 283 | delegate(ScenePresence presence) |
284 | { | 284 | { |
285 | // ignore chat from child agents | ||
286 | if (presence.IsChildAgent) return; | ||
287 | |||
288 | IClientAPI client = presence.ControllingClient; | 285 | IClientAPI client = presence.ControllingClient; |
289 | 286 | ||
290 | // don't forward SayOwner chat from objects to | 287 | // don't forward SayOwner chat from objects to |
diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs index d2a0860..3ce446b 100644 --- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs | |||
@@ -98,10 +98,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog | |||
98 | 98 | ||
99 | public void SendGeneralAlert(string message) | 99 | public void SendGeneralAlert(string message) |
100 | { | 100 | { |
101 | m_scene.ForEachScenePresence(delegate(ScenePresence presence) | 101 | m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) |
102 | { | 102 | { |
103 | if (!presence.IsChildAgent) | 103 | presence.ControllingClient.SendAlertMessage(message); |
104 | presence.ControllingClient.SendAlertMessage(message); | ||
105 | }); | 104 | }); |
106 | } | 105 | } |
107 | 106 | ||
@@ -163,10 +162,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog | |||
163 | public void SendNotificationToUsersInRegion( | 162 | public void SendNotificationToUsersInRegion( |
164 | UUID fromAvatarID, string fromAvatarName, string message) | 163 | UUID fromAvatarID, string fromAvatarName, string message) |
165 | { | 164 | { |
166 | m_scene.ForEachScenePresence(delegate(ScenePresence presence) | 165 | m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) |
167 | { | 166 | { |
168 | if (!presence.IsChildAgent) | 167 | presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); |
169 | presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); | ||
170 | }); | 168 | }); |
171 | } | 169 | } |
172 | 170 | ||
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs index 5ec64d5..562c3b1 100644 --- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs | |||
@@ -140,10 +140,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
140 | // This is a bit crude. It seems the client will be null before it actually stops the thread | 140 | // This is a bit crude. It seems the client will be null before it actually stops the thread |
141 | // The thread will kill itself eventually :/ | 141 | // The thread will kill itself eventually :/ |
142 | // Is there another way to make sure *all* clients get this 'inter region' message? | 142 | // Is there another way to make sure *all* clients get this 'inter region' message? |
143 | m_scene.ForEachScenePresence( | 143 | m_scene.ForEachRootScenePresence( |
144 | delegate(ScenePresence p) | 144 | delegate(ScenePresence p) |
145 | { | 145 | { |
146 | if (p.UUID != godID && !p.IsChildAgent) | 146 | if (p.UUID != godID) |
147 | { | 147 | { |
148 | // Possibly this should really be p.Close() though that method doesn't send a close | 148 | // Possibly this should really be p.Close() though that method doesn't send a close |
149 | // to the client | 149 | // to the client |
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) |
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs index 45b84f4..0dad3c4 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs | |||
@@ -136,24 +136,19 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
136 | // Try root avatar only first | 136 | // Try root avatar only first |
137 | foreach (Scene scene in m_Scenes) | 137 | foreach (Scene scene in m_Scenes) |
138 | { | 138 | { |
139 | if (scene.Entities.ContainsKey(toAgentID) && | 139 | // m_log.DebugFormat( |
140 | scene.Entities[toAgentID] is ScenePresence) | 140 | // "[INSTANT MESSAGE]: Looking for root agent {0} in {1}", |
141 | // toAgentID.ToString(), scene.RegionInfo.RegionName); | ||
142 | ScenePresence sp = scene.GetScenePresence(toAgentID); | ||
143 | if (sp != null && !sp.IsChildAgent) | ||
141 | { | 144 | { |
142 | // m_log.DebugFormat( | 145 | // Local message |
143 | // "[INSTANT MESSAGE]: Looking for root agent {0} in {1}", | 146 | // m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID); |
144 | // toAgentID.ToString(), scene.RegionInfo.RegionName); | 147 | sp.ControllingClient.SendInstantMessage(im); |
145 | 148 | ||
146 | ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; | 149 | // Message sent |
147 | if (!user.IsChildAgent) | 150 | result(true); |
148 | { | 151 | return; |
149 | // Local message | ||
150 | // m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID); | ||
151 | user.ControllingClient.SendInstantMessage(im); | ||
152 | |||
153 | // Message sent | ||
154 | result(true); | ||
155 | return; | ||
156 | } | ||
157 | } | 152 | } |
158 | } | 153 | } |
159 | 154 | ||
@@ -162,15 +157,12 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
162 | { | 157 | { |
163 | // m_log.DebugFormat( | 158 | // m_log.DebugFormat( |
164 | // "[INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName); | 159 | // "[INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName); |
165 | 160 | ScenePresence sp = scene.GetScenePresence(toAgentID); | |
166 | if (scene.Entities.ContainsKey(toAgentID) && | 161 | if (sp != null) |
167 | scene.Entities[toAgentID] is ScenePresence) | ||
168 | { | 162 | { |
169 | // Local message | 163 | // Local message |
170 | ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; | ||
171 | |||
172 | // m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); | 164 | // m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); |
173 | user.ControllingClient.SendInstantMessage(im); | 165 | sp.ControllingClient.SendInstantMessage(im); |
174 | 166 | ||
175 | // Message sent | 167 | // Message sent |
176 | result(true); | 168 | result(true); |
@@ -389,17 +381,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
389 | // Trigger the Instant message in the scene. | 381 | // Trigger the Instant message in the scene. |
390 | foreach (Scene scene in m_Scenes) | 382 | foreach (Scene scene in m_Scenes) |
391 | { | 383 | { |
392 | if (scene.Entities.ContainsKey(toAgentID) && | 384 | ScenePresence sp = scene.GetScenePresence(toAgentID); |
393 | scene.Entities[toAgentID] is ScenePresence) | 385 | if (sp != null && !sp.IsChildAgent) |
394 | { | 386 | { |
395 | ScenePresence user = | 387 | scene.EventManager.TriggerIncomingInstantMessage(gim); |
396 | (ScenePresence)scene.Entities[toAgentID]; | 388 | successful = true; |
397 | |||
398 | if (!user.IsChildAgent) | ||
399 | { | ||
400 | scene.EventManager.TriggerIncomingInstantMessage(gim); | ||
401 | successful = true; | ||
402 | } | ||
403 | } | 389 | } |
404 | } | 390 | } |
405 | if (!successful) | 391 | if (!successful) |