From 06f74e4295061f789c084dca95209fc84dfd8cb4 Mon Sep 17 00:00:00 2001 From: diva Date: Mon, 22 Dec 2008 17:43:51 +0000 Subject: Fix for attachment crossing on TPs. Now that we're letting the viewer have control over MakeRoot at the destination, we need to pass the attachments after that. Attachment crossing requires a root agent at the destination. --- .../Region/Environment/Scenes/SceneCommunicationService.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 98ea879..3a16b91 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs @@ -853,8 +853,6 @@ namespace OpenSim.Region.Environment.Scenes //} avatar.MakeChildAgent(); - // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it - avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); m_log.DebugFormat( "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); @@ -877,15 +875,19 @@ namespace OpenSim.Region.Environment.Scenes KiPrimitive(avatar.LocalId); } + // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which + // trigers a whole shebang of things there, including MakeRoot. So let's wait plenty before + // we send the attachments and close things here. + Thread.Sleep(3000); + + // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it + avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) { - // FinishTeleport makes the client send CompleteMovementIntoRegion (at the destination), which - // trigers a whole shebang of things there. So let's wait plenty before we disconnect. - // The user is already there anyway. - Thread.Sleep(8000); + Thread.Sleep(5000); avatar.Close(); CloseConnection(avatar.UUID); } -- cgit v1.1