Commit Graph

11 Commits

Author SHA1 Message Date
Dr Scofield
09188d5d10 IRCBridgeModule (and ChatModule before the refactoring) didn't succeed in
finding out which region a new avatar was logging in to; the same problem
occurred when the client/avatar logged out. the reason was mani-fold:

- Scene.AddNewClient(...) would call SubscribeToClientEvents(client)
  which would subscribe to all client events and then call 
  TriggerOnNewClient(...) BEFORE the ScenePresence object had even been
  created and added. i've moved the TriggerOnNewClient() call to the
  end of Scene.AddNewClient()
- Scene.AddNewClient(...) is called with child == true; a later call
  to ScenePresence.MakeRootAgent() will turn child to false. When
  OnNewClient is triggered, child is still true, causing IRCBridgeModule's
  FindClientRegion to ignore the ScenePresence of the new avatar.

i've changed IRCBridgeModule to still use OnNewClient and also OnLogout
and OnConnectionClosed but only to signal that the avatar has logged on
(logged off respectively). to track whether an avatar has actually entered
a region i've added EventManager.OnMakeRootAgent (complementing 
OnMakeChildAgent). 

also, i've cleaned up the internal IRCModule code a bit. currently it 
still uses IClientAPI.SendChatMessage() which replicates the code in
ChatModule, that needs to be changed to use TriggerOnChatFromWorld().
2008-05-23 16:07:47 +00:00
Dr Scofield
bf23e5d66c i've refactored the ChatModule into two modules: ChatModule and IRCBridgeModule.
ChatModule is now only doing in-world chat. IRCBridgeModule is only doing, well,
bridging chat to/from IRC. Both modules are now using a new OnChatFromWorld event
handler (which Scene.PacketHandler is feeding for chat from in-world instead of 
going via the Interface method). This refactoring will allow us to easily add
other bridge modules (e.g., an XMPP bridge module).

there is still a bug in IRCBridgeModule (inherited from the old ChatModule)
where FindClientRegion does not really find the client region...
2008-05-23 10:24:26 +00:00
Justin Clarke Casey
0c94da8305 * Plug in stubbed out archiver module 2008-05-22 22:21:58 +00:00
Jeff Ames
65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Teravus Ovares
8fd0378ae6 * Removed 19 warnings 2008-05-14 04:06:33 +00:00
Teravus Ovares
ce19234dc8 * Unraveled the DEBUG_CHANNEL mystery.
* Moved script errors to the debug channel.
* Typing '/2147483647 OK' results in a debug_channel message.
* Expanded the available parameters that are send-able through IClientAPI
2008-05-05 15:53:11 +00:00
Adam Frisby
20a9bf08f5 * Rolled back a few changes. 2008-05-01 18:04:42 +00:00
Adam Frisby
13526097f2 * Spring cleaning on Region.Environment.
* Converted a large number of read-only fields to be actually, readonly.
* Reformatted code sections.
* Removed redundant code.
2008-05-01 16:35:00 +00:00
Jeff Ames
d51ce47b2d Update svn properties. Minor formatting cleanup. 2008-05-01 14:31:30 +00:00
Adam Frisby
be20f41637 * Cruft removal step #1. Cleaning Modules directory. 2008-04-30 21:43:47 +00:00
Adam Frisby
f5c312bc3c * Refactored Environment/Modules directory - modules now reside in their own directory with any associated module-specific classes.
* Each module directory is currently inside one of the following category folders: Agent (Anything relating to do with Client<->Server communications.), Avatar (Anything to do with the avatar or presence inworld), Framework (Classes modules can use), Grid (Grid traffic, new OGS2 grid comms), Scripting (Scripting functions, etc), World (The enrivonment/scene, IE Sun/Tree modules.)
* This should be moved into a seperate project file.
2008-04-30 21:16:36 +00:00