private void SendInstantMessage(UUID dest, string message)
{
IClientAPI user = null;
// Find the user's controlling client.
lock (m_scenes) {
foreach (Scene sc in m_scenes) {
ScenePresence av = sc.GetScenePresence (dest);
if ((av != null) && (av.IsChildAgent == false)) {
// Found the client,
// and their root scene.
user = av.ControllingClient;
}
}
}
if (user == null)
return;
UUID transaction = UUID.Random ();
GridInstantMessage msg = new GridInstantMessage ();
msg.fromAgentID = new Guid (UUID.Zero.ToString ());
// From server
msg.toAgentID = new Guid (dest.ToString ());
msg.imSessionID = new Guid (transaction.ToString ());
msg.timestamp = (uint)Util.UnixTimeSinceEpoch ();
msg.fromAgentName = "FreeMoney";
msg.dialog = (byte)19;
// Object msg
msg.fromGroup = false;
msg.offline = (byte)0;
msg.ParentEstateID = (uint)0;
msg.Position = Vector3.Zero;
msg.RegionID = new Guid (UUID.Zero.ToString ());
msg.binaryBucket = new byte[0];
msg.message = message;
user.SendInstantMessage (msg);
}