diff --git a/libsecondlife-cs/MainAvatar.cs b/libsecondlife-cs/MainAvatar.cs
index 33c0b2c7..80f7f593 100644
--- a/libsecondlife-cs/MainAvatar.cs
+++ b/libsecondlife-cs/MainAvatar.cs
@@ -764,6 +764,43 @@ namespace libsecondlife
}
///
+ /// Send an Instant Message to a group
+ ///
+ /// Key of Group
+ /// Text Message being sent.
+ public void InstantMessageGroup(LLUUID groupUUID, string message)
+ {
+ InstantMessageGroup(FirstName + " " + LastName, groupUUID, message);
+ }
+
+ ///
+ /// Send an Instant Message to a group
+ ///
+ /// The name this IM will show up as being from
+ /// Key of the group
+ /// Text message being sent
+ /// This does not appear to function with groups the agent is not in
+ public void InstantMessageGroup(string fromName, LLUUID groupUUID, string message)
+ {
+ ImprovedInstantMessagePacket im = new ImprovedInstantMessagePacket();
+
+ im.AgentData.AgentID = this.ID;
+ im.AgentData.SessionID = Client.Network.SessionID;
+ im.MessageBlock.Dialog = (byte)MainAvatar.InstantMessageDialog.SessionSend;
+ im.MessageBlock.FromAgentName = Helpers.StringToField(fromName);
+ im.MessageBlock.FromGroup = false;
+ im.MessageBlock.Message = Helpers.StringToField(message);
+ im.MessageBlock.Offline = 0;
+ im.MessageBlock.ID = groupUUID;
+ im.MessageBlock.ToAgentID = groupUUID;
+ im.MessageBlock.BinaryBucket = new byte[0];
+ im.MessageBlock.Position = LLVector3.Zero;
+ im.MessageBlock.RegionID = LLUUID.Zero;
+
+ // Send the message
+ Client.Network.SendPacket(im);
+ }
+
///
///
///