More on group chat: only root agents should subscribe to OnInstantMessage, or else they'll see an echo of their own messages after teleporting.
parent
9cbbb7eddf
commit
8dff05a897
|
@ -129,9 +129,12 @@ namespace OpenSim.Groups
|
||||||
m_sceneList.Add(scene);
|
m_sceneList.Add(scene);
|
||||||
|
|
||||||
scene.EventManager.OnNewClient += OnNewClient;
|
scene.EventManager.OnNewClient += OnNewClient;
|
||||||
|
scene.EventManager.OnMakeRootAgent += OnMakeRootAgent;
|
||||||
|
scene.EventManager.OnMakeChildAgent += OnMakeChildAgent;
|
||||||
scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage;
|
scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage;
|
||||||
scene.EventManager.OnClientLogin += OnClientLogin;
|
scene.EventManager.OnClientLogin += OnClientLogin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegionLoaded(Scene scene)
|
public void RegionLoaded(Scene scene)
|
||||||
{
|
{
|
||||||
if (!m_groupMessagingEnabled)
|
if (!m_groupMessagingEnabled)
|
||||||
|
@ -347,10 +350,20 @@ namespace OpenSim.Groups
|
||||||
{
|
{
|
||||||
if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: OnInstantMessage registered for {0}", client.Name);
|
if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: OnInstantMessage registered for {0}", client.Name);
|
||||||
|
|
||||||
client.OnInstantMessage += OnInstantMessage;
|
|
||||||
ResetAgentGroupChatSessions(client.AgentId.ToString());
|
ResetAgentGroupChatSessions(client.AgentId.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnMakeRootAgent(ScenePresence sp)
|
||||||
|
{
|
||||||
|
sp.ControllingClient.OnInstantMessage += OnInstantMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnMakeChildAgent(ScenePresence sp)
|
||||||
|
{
|
||||||
|
sp.ControllingClient.OnInstantMessage -= OnInstantMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnGridInstantMessage(GridInstantMessage msg)
|
private void OnGridInstantMessage(GridInstantMessage msg)
|
||||||
{
|
{
|
||||||
// The instant message module will only deliver messages of dialog types:
|
// The instant message module will only deliver messages of dialog types:
|
||||||
|
|
Loading…
Reference in New Issue