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.
This commit is contained in:
Dr Scofield
2008-10-03 14:53:11 +00:00
parent 8c55f3eaa6
commit 5c0a0bc2e0
11 changed files with 216 additions and 179 deletions

View File

@@ -59,22 +59,22 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
public void Say(string message)
{
SendOnChatFromViewer(message, ChatTypeEnum.Say);
SendOnChatFromClient(message, ChatTypeEnum.Say);
}
public void Shout(string message)
{
SendOnChatFromViewer(message, ChatTypeEnum.Shout);
SendOnChatFromClient(message, ChatTypeEnum.Shout);
}
public void Whisper(string message)
{
SendOnChatFromViewer(message, ChatTypeEnum.Whisper);
SendOnChatFromClient(message, ChatTypeEnum.Whisper);
}
public void Broadcast(string message)
{
SendOnChatFromViewer(message, ChatTypeEnum.Broadcast);
SendOnChatFromClient(message, ChatTypeEnum.Broadcast);
}
public void GiveMoney(UUID target, int amount)
@@ -132,19 +132,19 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
#region Internal Functions
private void SendOnChatFromViewer(string message, ChatTypeEnum chatType)
private void SendOnChatFromClient(string message, ChatTypeEnum chatType)
{
OSChatMessage chatFromViewer = new OSChatMessage();
chatFromViewer.Channel = 0;
chatFromViewer.From = Name;
chatFromViewer.Message = message;
chatFromViewer.Position = StartPos;
chatFromViewer.Scene = m_scene;
chatFromViewer.Sender = this;
chatFromViewer.SenderUUID = AgentId;
chatFromViewer.Type = chatType;
OSChatMessage chatFromClient = new OSChatMessage();
chatFromClient.Channel = 0;
chatFromClient.From = Name;
chatFromClient.Message = message;
chatFromClient.Position = StartPos;
chatFromClient.Scene = m_scene;
chatFromClient.Sender = this;
chatFromClient.SenderUUID = AgentId;
chatFromClient.Type = chatType;
OnChatFromViewer(this, chatFromViewer);
OnChatFromClient(this, chatFromClient);
}
#endregion
@@ -161,7 +161,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
public event Action<IClientAPI> OnConnectionClosed;
public event GenericMessage OnGenericMessage;
public event ImprovedInstantMessage OnInstantMessage;
public event ChatMessage OnChatFromViewer;
public event ChatMessage OnChatFromClient;
public event TextureRequest OnRequestTexture;
public event RezObject OnRezObject;
public event ModifyTerrain OnModifyTerrain;