diff --git a/OpenMetaverse/AgentManager.cs b/OpenMetaverse/AgentManager.cs
index b5bc5e64..50caa290 100644
--- a/OpenMetaverse/AgentManager.cs
+++ b/OpenMetaverse/AgentManager.cs
@@ -2837,24 +2837,27 @@ namespace OpenMetaverse
/// the teleport, or denying it
///
/// of the avatar sending the lure
+ /// IM session of the incoming lure request
/// true to accept the lure, false to decline it
- public void TeleportLureRespond(UUID requesterID, bool accept)
+ public void TeleportLureRespond(UUID requesterID, UUID sessionID, bool accept)
{
- InstantMessage(Name, requesterID, String.Empty, UUID.Random(),
- accept ? InstantMessageDialog.AcceptTeleport : InstantMessageDialog.DenyTeleport,
- InstantMessageOnline.Offline, this.SimPosition, UUID.Zero, Utils.EmptyBytes);
-
if (accept)
{
TeleportLureRequestPacket lure = new TeleportLureRequestPacket();
lure.Info.AgentID = Client.Self.AgentID;
lure.Info.SessionID = Client.Self.SessionID;
- lure.Info.LureID = Client.Self.AgentID;
+ lure.Info.LureID = sessionID;
lure.Info.TeleportFlags = (uint)TeleportFlags.ViaLure;
Client.Network.SendPacket(lure);
}
+ else
+ {
+ InstantMessage(Name, requesterID, String.Empty, sessionID,
+ accept ? InstantMessageDialog.AcceptTeleport : InstantMessageDialog.DenyTeleport,
+ InstantMessageOnline.Offline, this.SimPosition, UUID.Zero, Utils.EmptyBytes);
+ }
}
#endregion Teleporting
diff --git a/Programs/examples/Dashboard/Dashboard.cs b/Programs/examples/Dashboard/Dashboard.cs
index 314a05e4..3b042d79 100644
--- a/Programs/examples/Dashboard/Dashboard.cs
+++ b/Programs/examples/Dashboard/Dashboard.cs
@@ -86,7 +86,7 @@ namespace Dashboard
{
DialogResult result = MessageBox.Show(this, e.IM.FromAgentName + " has offered you a teleport request:" + Environment.NewLine + e.IM.Message, this.Text, MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
- Client.Self.TeleportLureRespond(e.IM.FromAgentID, true);
+ Client.Self.TeleportLureRespond(e.IM.FromAgentID, e.IM.IMSessionID, true);
});
}
}
diff --git a/Programs/examples/IRCGateway/Program.cs b/Programs/examples/IRCGateway/Program.cs
index 75cf9712..2e52da94 100644
--- a/Programs/examples/IRCGateway/Program.cs
+++ b/Programs/examples/IRCGateway/Program.cs
@@ -44,7 +44,7 @@ namespace IRCGateway
{
if (e.IM.FromAgentID == _MasterID)
{
- _Client.Self.TeleportLureRespond(e.IM.FromAgentID, true);
+ _Client.Self.TeleportLureRespond(e.IM.FromAgentID, e.IM.IMSessionID, true);
}
}
}
diff --git a/Programs/examples/TestClient/TestClient.cs b/Programs/examples/TestClient/TestClient.cs
index 7201c76f..395315ec 100644
--- a/Programs/examples/TestClient/TestClient.cs
+++ b/Programs/examples/TestClient/TestClient.cs
@@ -77,7 +77,7 @@ namespace OpenMetaverse.TestClient
if (e.IM.Dialog == InstantMessageDialog.RequestTeleport)
{
Console.WriteLine("Accepting teleport lure.");
- Self.TeleportLureRespond(e.IM.FromAgentID, true);
+ Self.TeleportLureRespond(e.IM.FromAgentID, e.IM.IMSessionID, true);
}
else if (
e.IM.Dialog == InstantMessageDialog.MessageFromAgent ||