aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs34
1 files changed, 23 insertions, 11 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
index e12588c..c3fc26e 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
@@ -107,7 +107,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
107 #region ISimChat Members 107 #region ISimChat Members
108 public void SimBroadcast(Object sender, ChatFromViewerArgs c) 108 public void SimBroadcast(Object sender, ChatFromViewerArgs c)
109 { 109 {
110 // We only want to relay stuff on channel 0 110 // We only want to relay stuff on channel 0 and on the debug channel
111 if (c.Channel != 0 && c.Channel != DEBUG_CHANNEL) return; 111 if (c.Channel != 0 && c.Channel != DEBUG_CHANNEL) return;
112 112
113 if (c.Channel == DEBUG_CHANNEL) 113 if (c.Channel == DEBUG_CHANNEL)
@@ -118,13 +118,25 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
118 LLVector3 pos = new LLVector3(128, 128, 30); 118 LLVector3 pos = new LLVector3(128, 128, 30);
119 ((Scene)c.Scene).ForEachScenePresence(delegate(ScenePresence presence) 119 ((Scene)c.Scene).ForEachScenePresence(delegate(ScenePresence presence)
120 { 120 {
121 if (!presence.IsChildAgent) return; 121 if (presence.IsChildAgent) return;
122
123 IClientAPI client = presence.ControllingClient;
124
125 if ((c.Type == ChatTypeEnum.Owner) &&
126 (null != c.SenderObject) &&
127 (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId))
128 return;
122 129
123 presence.ControllingClient.SendChatMessage(c.Message, 130 if (null == c.SenderObject)
124 1, //255, 131 client.SendChatMessage(c.Message, (byte)c.Type,
125 pos, c.From, LLUUID.Zero, 132 pos, c.From, LLUUID.Zero,
126 c.Channel == DEBUG_CHANNEL? (byte)ChatSourceType.Object : (byte)ChatSourceType.Agent, 133 (byte)ChatSourceType.Agent,
127 (byte)ChatAudibleLevel.Fully); 134 (byte)ChatAudibleLevel.Fully);
135 else
136 client.SendChatMessage(c.Message, (byte)c.Type,
137 pos, c.From, LLUUID.Zero,
138 (byte)ChatSourceType.Object,
139 (byte)ChatAudibleLevel.Fully);
128 }); 140 });
129 } 141 }
130 142
@@ -147,7 +159,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
147 159
148 string fromName = e.From; 160 string fromName = e.From;
149 string message = e.Message; 161 string message = e.Message;
150 LLUUID fromAgentID = e.SenderUUID; 162 LLUUID fromID = e.SenderUUID;
151 163
152 if (e.Sender != null) 164 if (e.Sender != null)
153 { 165 {
@@ -160,7 +172,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
160 regionPos = new LLVector3(scene.RegionInfo.RegionLocX * Constants.RegionSize, 172 regionPos = new LLVector3(scene.RegionInfo.RegionLocX * Constants.RegionSize,
161 scene.RegionInfo.RegionLocY * Constants.RegionSize, 0); 173 scene.RegionInfo.RegionLocY * Constants.RegionSize, 0);
162 fromName = avatar.Firstname + " " + avatar.Lastname; 174 fromName = avatar.Firstname + " " + avatar.Lastname;
163 fromAgentID = e.Sender.AgentId; 175 fromID = e.Sender.AgentId;
164 } 176 }
165 177
166 if (e.Channel == DEBUG_CHANNEL) 178 if (e.Channel == DEBUG_CHANNEL)
@@ -175,13 +187,13 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
175 if (e.Channel == DEBUG_CHANNEL) 187 if (e.Channel == DEBUG_CHANNEL)
176 { 188 {
177 TrySendChatMessage(presence, fromPos, regionPos, 189 TrySendChatMessage(presence, fromPos, regionPos,
178 fromAgentID, fromName, e.Type, 190 fromID, fromName, e.Type,
179 message, ChatSourceType.Object); 191 message, ChatSourceType.Object);
180 } 192 }
181 else 193 else
182 { 194 {
183 TrySendChatMessage(presence, fromPos, regionPos, 195 TrySendChatMessage(presence, fromPos, regionPos,
184 fromAgentID, fromName, e.Type, 196 fromID, fromName, e.Type,
185 message, ChatSourceType.Agent); 197 message, ChatSourceType.Agent);
186 } 198 }
187 }); 199 });