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); + } + /// /// ///