OpenMetaverse.AgentManager.InstantMessage C# (CSharp) Method

InstantMessage() public method

Send an Instant Message
public InstantMessage ( string fromName, UUID target, string message, UUID imSessionID, InstantMessageDialog dialog, InstantMessageOnline offline, System.Vector3 position, UUID regionID, byte binaryBucket ) : void
fromName string The name this IM will show up as being from
target UUID Key of Avatar
message string Text message being sent
imSessionID UUID IM session ID (to differentiate between IM windows)
dialog InstantMessageDialog Type of instant message to send
offline InstantMessageOnline Whether to IM offline avatars as well
position System.Vector3 Senders Position
regionID UUID RegionID Sender is In
binaryBucket byte Packed binary data that is specific to /// the dialog type
return void
        public void InstantMessage(string fromName, UUID target, string message, UUID imSessionID,
            InstantMessageDialog dialog, InstantMessageOnline offline, Vector3 position, UUID regionID,
            byte[] binaryBucket)
        {
            if (target != UUID.Zero)
            {
                ImprovedInstantMessagePacket im = new ImprovedInstantMessagePacket();

                if (imSessionID.Equals(UUID.Zero) || imSessionID.Equals(AgentID))
                    imSessionID = AgentID.Equals(target) ? AgentID : target ^ AgentID;

                im.AgentData.AgentID = Client.Self.AgentID;
                im.AgentData.SessionID = Client.Self.SessionID;

                im.MessageBlock.Dialog = (byte)dialog;
                im.MessageBlock.FromAgentName = Utils.StringToBytes(fromName);
                im.MessageBlock.FromGroup = false;
                im.MessageBlock.ID = imSessionID;
                im.MessageBlock.Message = Utils.StringToBytes(message);
                im.MessageBlock.Offline = (byte)offline;
                im.MessageBlock.ToAgentID = target;

                if (binaryBucket != null)
                    im.MessageBlock.BinaryBucket = binaryBucket;
                else
                    im.MessageBlock.BinaryBucket = new byte[0];

                // These fields are mandatory, even if we don't have valid values for them
                im.MessageBlock.Position = Vector3.Zero;
                //TODO: Allow region id to be correctly set by caller or fetched from Client.*
                im.MessageBlock.RegionID = regionID;

                // Send the message
                Client.Network.SendPacket(im);
            }
            else
            {
                Logger.Log(String.Format("Suppressing instant message \"{0}\" to UUID.Zero", message),
                    Helpers.LogLevel.Error, Client);
            }
        }

Same methods

AgentManager::InstantMessage ( UUID target, string message ) : void
AgentManager::InstantMessage ( UUID target, string message, UUID imSessionID ) : void
AgentManager::InstantMessage ( string fromName, UUID target, string message, UUID imSessionID, UUID conferenceIDs ) : void