From 63b2e3575ae7aa765f22a35b23784ae98af8527a Mon Sep 17 00:00:00 2001 From: Dr Scofield Date: Tue, 30 Sep 2008 16:14:09 +0000 Subject: - a couple of minor code cleanups in RestInventoryServices - cleanups and more comments in ChatModule and IRCBridgeModule - adding Name support in ScenePresence --- .../Environment/Modules/Avatar/Chat/ChatModule.cs | 109 ++++++++++++--------- .../Modules/Avatar/Chat/IRCBridgeModule.cs | 19 ++-- 2 files changed, 70 insertions(+), 58 deletions(-) (limited to 'OpenSim/Region/Environment/Modules') diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs index 6a7b622..606ce7e 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs @@ -63,9 +63,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat if (!m_scenes.Contains(scene)) { m_scenes.Add(scene); - scene.EventManager.OnNewClient += NewClient; - scene.EventManager.OnChatFromWorld += SimChat; - scene.EventManager.OnChatBroadcast += SimBroadcast; + scene.EventManager.OnNewClient += OnNewClient; + scene.EventManager.OnChatFromWorld += OnSimChat; + scene.EventManager.OnChatBroadcast += OnSimBroadcast; } // wrap this in a try block so that defaults will work if @@ -105,7 +105,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat #endregion #region ISimChat Members - public void SimBroadcast(Object sender, OSChatMessage c) + public void OnSimBroadcast(Object sender, OSChatMessage c) { // We only want to relay stuff on channel 0 and on the debug channel if (c.Channel != 0 && c.Channel != DEBUG_CHANNEL) return; @@ -116,34 +116,44 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat if (c.Message.Length > 1100) c.Message = c.Message.Substring(0, 1000); - // chat works by redistributing every incoming chat - // message to each avatar in the scene + // broadcast chat works by redistributing every incoming chat + // message to each avatar in the scene. Vector3 pos = new Vector3(128, 128, 30); - ((Scene)c.Scene).ForEachScenePresence(delegate(ScenePresence presence) - { - if (presence.IsChildAgent) return; - - IClientAPI client = presence.ControllingClient; - - if ((c.Type == ChatTypeEnum.Owner) && - (null != c.SenderObject) && - (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId)) - return; - - if (null == c.SenderObject) - client.SendChatMessage(c.Message, (byte)c.Type, - pos, c.From, UUID.Zero, - (byte)ChatSourceType.Agent, - (byte)ChatAudibleLevel.Fully); - else - client.SendChatMessage(c.Message, (byte)c.Type, - pos, c.From, UUID.Zero, - (byte)ChatSourceType.Object, - (byte)ChatAudibleLevel.Fully); - }); + ((Scene)c.Scene).ForEachScenePresence( + delegate(ScenePresence presence) + { + // ignore chat from child agents + if (presence.IsChildAgent) return; + + IClientAPI client = presence.ControllingClient; + + // don't forward SayOwner chat from objects to + // non-owner agents + if ((c.Type == ChatTypeEnum.Owner) && + (null != c.SenderObject) && + (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId)) + return; + + if (null == c.SenderObject) + { + // chat from agent (avatar) + client.SendChatMessage(c.Message, (byte)c.Type, + pos, c.From, UUID.Zero, + (byte)ChatSourceType.Agent, + (byte)ChatAudibleLevel.Fully); + } + else + { + // chat from object + client.SendChatMessage(c.Message, (byte)c.Type, + pos, c.From, UUID.Zero, + (byte)ChatSourceType.Object, + (byte)ChatAudibleLevel.Fully); + } + }); } - public void SimChat(Object sender, OSChatMessage e) + public void OnSimChat(Object sender, OSChatMessage e) { // early return if not on public or debug channel if (e.Channel != 0 && e.Channel != DEBUG_CHANNEL) return; @@ -176,7 +186,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat { fromPos = avatar.AbsolutePosition; regionPos = new Vector3(scene.RegionInfo.RegionLocX * Constants.RegionSize, - scene.RegionInfo.RegionLocY * Constants.RegionSize, 0); + scene.RegionInfo.RegionLocY * Constants.RegionSize, 0); fromName = avatar.Firstname + " " + avatar.Lastname; fromID = e.Sender.AgentId; } @@ -188,31 +198,32 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat // message to each avatar in the scene foreach (Scene s in m_scenes) { - s.ForEachScenePresence(delegate(ScenePresence presence) - { - if (e.Channel == DEBUG_CHANNEL) - { - TrySendChatMessage(presence, fromPos, regionPos, - fromID, fromName, e.Type, - message, ChatSourceType.Object); - } - else - { - TrySendChatMessage(presence, fromPos, regionPos, - fromID, fromName, e.Type, - message, ChatSourceType.Agent); - } - }); + s.ForEachScenePresence( + delegate(ScenePresence presence) + { + if (e.Channel == DEBUG_CHANNEL) + { + TrySendChatMessage(presence, fromPos, regionPos, + fromID, fromName, e.Type, + message, ChatSourceType.Object); + } + else + { + TrySendChatMessage(presence, fromPos, regionPos, + fromID, fromName, e.Type, + message, ChatSourceType.Agent); + } + }); } } #endregion - public void NewClient(IClientAPI client) + public void OnNewClient(IClientAPI client) { try { - client.OnChatFromViewer += SimChat; + client.OnChatFromViewer += OnSimChat; } catch (Exception ex) { @@ -229,8 +240,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat Vector3 fromRegionPos = fromPos + regionPos; Vector3 toRegionPos = presence.AbsolutePosition + - new Vector3(presence.Scene.RegionInfo.RegionLocX * Constants.RegionSize, - presence.Scene.RegionInfo.RegionLocY * Constants.RegionSize, 0); + new Vector3(presence.Scene.RegionInfo.RegionLocX * Constants.RegionSize, + presence.Scene.RegionInfo.RegionLocY * Constants.RegionSize, 0); int dis = Math.Abs((int) Util.GetDistanceTo(toRegionPos, fromRegionPos)); diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs index 8fe5080..215c8d9 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs @@ -92,8 +92,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat if (!m_scenes.Contains(scene)) { m_scenes.Add(scene); - scene.EventManager.OnNewClient += NewClient; - scene.EventManager.OnChatFromWorld += SimChat; + scene.EventManager.OnNewClient += OnNewClient; + scene.EventManager.OnChatFromWorld += OnSimChat; scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; scene.EventManager.OnMakeChildAgent += OnMakeChildAgent; } @@ -171,7 +171,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat #region ISimChat Members - public void SimChat(Object sender, OSChatMessage e) + public void OnSimChat(Object sender, OSChatMessage e) { // We only want to relay stuff on channel 0 if (e.Channel != 0) return; @@ -233,15 +233,15 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat #endregion - public void NewClient(IClientAPI client) + public void OnNewClient(IClientAPI client) { try { string clientName = String.Format("{0} {1}", client.FirstName, client.LastName); - client.OnChatFromViewer += SimChat; - client.OnLogout += ClientLoggedOut; - client.OnConnectionClosed += ClientLoggedOut; + client.OnChatFromViewer += OnSimChat; + client.OnLogout += OnClientLoggedOut; + client.OnConnectionClosed += OnClientLoggedOut; if (clientName != m_last_new_user) { @@ -295,7 +295,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat } - public void ClientLoggedOut(IClientAPI client) + public void OnClientLoggedOut(IClientAPI client) { lock (m_syncLogout) { @@ -614,10 +614,11 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat } } + static private Vector3 pos = new Vector3(128, 128, 20); public void ListenerRun() { string inputLine; - Vector3 pos = new Vector3(128, 128, 20); + while (m_enabled) { try -- cgit v1.1