aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Addons/Groups/GroupsMessagingModule.cs40
1 files changed, 24 insertions, 16 deletions
diff --git a/OpenSim/Addons/Groups/GroupsMessagingModule.cs b/OpenSim/Addons/Groups/GroupsMessagingModule.cs
index d172d48..31e9175 100644
--- a/OpenSim/Addons/Groups/GroupsMessagingModule.cs
+++ b/OpenSim/Addons/Groups/GroupsMessagingModule.cs
@@ -264,8 +264,32 @@ namespace OpenSim.Groups
264 264
265 int requestStartTick = Environment.TickCount; 265 int requestStartTick = Environment.TickCount;
266 266
267 // Copy Message
268 GridInstantMessage msg = new GridInstantMessage();
269 msg.imSessionID = groupID.Guid;
270 msg.fromAgentName = im.fromAgentName;
271 msg.message = im.message;
272 msg.dialog = im.dialog;
273 msg.offline = im.offline;
274 msg.ParentEstateID = im.ParentEstateID;
275 msg.Position = im.Position;
276 msg.RegionID = im.RegionID;
277 msg.binaryBucket = im.binaryBucket;
278 msg.timestamp = (uint)Util.UnixTimeSinceEpoch();
279
280 msg.fromAgentID = im.fromAgentID;
281 msg.fromGroup = true;
282
283 // Send to self first of all
284 msg.toAgentID = msg.fromAgentID;
285 ProcessMessageFromGroupSession(msg);
286
287 // Then send to everybody else
267 foreach (GroupMembersData member in groupMembers) 288 foreach (GroupMembersData member in groupMembers)
268 { 289 {
290 if (member.AgentID.Guid == im.fromAgentID)
291 continue;
292
269 if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID)) 293 if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID))
270 { 294 {
271 // Don't deliver messages to people who have dropped this session 295 // Don't deliver messages to people who have dropped this session
@@ -273,22 +297,6 @@ namespace OpenSim.Groups
273 continue; 297 continue;
274 } 298 }
275 299
276 // Copy Message
277 GridInstantMessage msg = new GridInstantMessage();
278 msg.imSessionID = groupID.Guid;
279 msg.fromAgentName = im.fromAgentName;
280 msg.message = im.message;
281 msg.dialog = im.dialog;
282 msg.offline = im.offline;
283 msg.ParentEstateID = im.ParentEstateID;
284 msg.Position = im.Position;
285 msg.RegionID = im.RegionID;
286 msg.binaryBucket = im.binaryBucket;
287 msg.timestamp = (uint)Util.UnixTimeSinceEpoch();
288
289 msg.fromAgentID = im.fromAgentID;
290 msg.fromGroup = true;
291
292 msg.toAgentID = member.AgentID.Guid; 300 msg.toAgentID = member.AgentID.Guid;
293 301
294 IClientAPI client = GetActiveClient(member.AgentID); 302 IClientAPI client = GetActiveClient(member.AgentID);