diff options
author | Dr Scofield | 2008-05-26 15:37:31 +0000 |
---|---|---|
committer | Dr Scofield | 2008-05-26 15:37:31 +0000 |
commit | 1bb1d5d9b06887380eec0696102eb859f04810e6 (patch) | |
tree | fecd69763a3daeba464a1bcbc1349828dd9445b3 /OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs | |
parent | Adding OnChatBroadcast event logic to EventManager providing (diff) | |
download | opensim-SC-1bb1d5d9b06887380eec0696102eb859f04810e6.zip opensim-SC-1bb1d5d9b06887380eec0696102eb859f04810e6.tar.gz opensim-SC-1bb1d5d9b06887380eec0696102eb859f04810e6.tar.bz2 opensim-SC-1bb1d5d9b06887380eec0696102eb859f04810e6.tar.xz |
This cleans up a merge mess from the earlier checkin and implements llOwnerSay()
via the newly created Scene.SimBroadcast() call.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs | 34 |
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 | }); |