diff options
author | Dr Scofield | 2008-10-03 14:53:11 +0000 |
---|---|---|
committer | Dr Scofield | 2008-10-03 14:53:11 +0000 |
commit | 5c0a0bc2e0951745fd52f5c01f2ee2c0aee49a3a (patch) | |
tree | 529c2c8e3ea8f1193f2495f905e542ff1462adb6 /OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs | |
parent | * minor: remove warnings (the code cleaners strike again) (diff) | |
download | opensim-SC-5c0a0bc2e0951745fd52f5c01f2ee2c0aee49a3a.zip opensim-SC-5c0a0bc2e0951745fd52f5c01f2ee2c0aee49a3a.tar.gz opensim-SC-5c0a0bc2e0951745fd52f5c01f2ee2c0aee49a3a.tar.bz2 opensim-SC-5c0a0bc2e0951745fd52f5c01f2ee2c0aee49a3a.tar.xz |
This changeset changes the way chat from client is routed:
old way: each region module interested in chat from client had to
- subscribe to scene.EventManager.OnNewClient
- then in its OnNewClient delegate it would subscribe to
client.OnChatFromViewer to capture chat messages coming
new way: ChatModule is the only region module that uses the "old
way" approach but is now forwarding all client chat via
scene.EventManager.OnChatFromClient
- each region module interested in chat from client now only
subscribes to scene.EventManager.OnChatFromClient
this not only simplifies code, but also allows us to substitute
ChatModule with derived classes (ConciergeModule is going to be one
example).
Also, this changeset changes ChatFromViewer to ChatFromClient as it
doesn't necessarily have to be a viewer that is a chat source.
i've taken great care to only comment out those OnNewClient delegates
that were only used for getting at the client chat --- hope it's not
breaking anything.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs index eba65a9..5840cb2 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs | |||
@@ -93,6 +93,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
93 | m_scenes.Add(scene); | 93 | m_scenes.Add(scene); |
94 | scene.EventManager.OnNewClient += OnNewClient; | 94 | scene.EventManager.OnNewClient += OnNewClient; |
95 | scene.EventManager.OnChatFromWorld += OnSimChat; | 95 | scene.EventManager.OnChatFromWorld += OnSimChat; |
96 | scene.EventManager.OnChatFromClient += OnSimChat; | ||
96 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; | 97 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; |
97 | scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; | 98 | scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; |
98 | } | 99 | } |
@@ -236,7 +237,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
236 | 237 | ||
237 | if (avatar != null) | 238 | if (avatar != null) |
238 | { | 239 | { |
239 | fromName = avatar.Firstname + " " + avatar.Lastname; | 240 | fromName = avatar.Name; |
240 | } | 241 | } |
241 | 242 | ||
242 | // Try to reconnect to server if not connected | 243 | // Try to reconnect to server if not connected |
@@ -277,21 +278,19 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
277 | { | 278 | { |
278 | try | 279 | try |
279 | { | 280 | { |
280 | string clientName = String.Format("{0} {1}", client.FirstName, client.LastName); | 281 | // client.OnChatFromViewer += OnSimChat; |
281 | |||
282 | client.OnChatFromViewer += OnSimChat; | ||
283 | client.OnLogout += OnClientLoggedOut; | 282 | client.OnLogout += OnClientLoggedOut; |
284 | client.OnConnectionClosed += OnClientLoggedOut; | 283 | client.OnConnectionClosed += OnClientLoggedOut; |
285 | 284 | ||
286 | if (clientName != m_last_new_user) | 285 | if (client.Name != m_last_new_user) |
287 | { | 286 | { |
288 | if ((m_irc.Enabled) && (m_irc.Connected)) | 287 | if ((m_irc.Enabled) && (m_irc.Connected)) |
289 | { | 288 | { |
290 | m_log.DebugFormat("[IRC] {0} logging on", clientName); | 289 | m_log.DebugFormat("[IRC] {0} logging on", client.Name); |
291 | m_irc.PrivMsg(m_irc.Nick, "Sim", | 290 | m_irc.PrivMsg(m_irc.Nick, "Sim", |
292 | String.Format("notices {0} logging on", clientName)); | 291 | String.Format("notices {0} logging on", client.Name)); |
293 | } | 292 | } |
294 | m_last_new_user = clientName; | 293 | m_last_new_user = client.Name; |
295 | } | 294 | } |
296 | } | 295 | } |
297 | catch (Exception ex) | 296 | catch (Exception ex) |
@@ -343,21 +342,20 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
343 | { | 342 | { |
344 | if ((m_irc.Enabled) && (m_irc.Connected)) | 343 | if ((m_irc.Enabled) && (m_irc.Connected)) |
345 | { | 344 | { |
346 | string clientName = String.Format("{0} {1}", client.FirstName, client.LastName); | ||
347 | // handles simple case. May not work for hundred connecting in per second. | 345 | // handles simple case. May not work for hundred connecting in per second. |
348 | // and the NewClients calles getting interleved | 346 | // and the NewClients calles getting interleved |
349 | // but filters out multiple reports | 347 | // but filters out multiple reports |
350 | if (clientName != m_last_leaving_user) | 348 | if (client.Name != m_last_leaving_user) |
351 | { | 349 | { |
352 | Console.WriteLine("Avatar was seen logging out."); | 350 | Console.WriteLine("Avatar was seen logging out."); |
353 | //Console.ReadLine(); | 351 | //Console.ReadLine(); |
354 | Console.WriteLine(); | 352 | Console.WriteLine(); |
355 | m_last_leaving_user = clientName; | 353 | m_last_leaving_user = client.Name; |
356 | m_irc.PrivMsg(m_irc.Nick, "Sim", String.Format("notices {0} logging out", clientName)); | 354 | m_irc.PrivMsg(m_irc.Nick, "Sim", String.Format("notices {0} logging out", client.Name)); |
357 | m_log.InfoFormat("[IRC]: {0} logging out", clientName); | 355 | m_log.InfoFormat("[IRC]: {0} logging out", client.Name); |
358 | } | 356 | } |
359 | 357 | ||
360 | if (m_last_new_user == clientName) | 358 | if (m_last_new_user == client.Name) |
361 | m_last_new_user = null; | 359 | m_last_new_user = null; |
362 | } | 360 | } |
363 | } | 361 | } |