diff options
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.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 14 |
1 files changed, 8 insertions, 6 deletions
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 | |||
853 | //} | 853 | //} |
854 | 854 | ||
855 | avatar.MakeChildAgent(); | 855 | avatar.MakeChildAgent(); |
856 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
857 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
858 | 856 | ||
859 | m_log.DebugFormat( | 857 | m_log.DebugFormat( |
860 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); | 858 | "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, avatar.UUID); |
@@ -877,15 +875,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
877 | KiPrimitive(avatar.LocalId); | 875 | KiPrimitive(avatar.LocalId); |
878 | } | 876 | } |
879 | 877 | ||
878 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which | ||
879 | // trigers a whole shebang of things there, including MakeRoot. So let's wait plenty before | ||
880 | // we send the attachments and close things here. | ||
881 | Thread.Sleep(3000); | ||
882 | |||
883 | // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it | ||
884 | avatar.CrossAttachmentsIntoNewRegion(reg.RegionHandle, true); | ||
880 | 885 | ||
881 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 886 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
882 | 887 | ||
883 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) | 888 | if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) |
884 | { | 889 | { |
885 | // FinishTeleport makes the client send CompleteMovementIntoRegion (at the destination), which | 890 | Thread.Sleep(5000); |
886 | // trigers a whole shebang of things there. So let's wait plenty before we disconnect. | ||
887 | // The user is already there anyway. | ||
888 | Thread.Sleep(8000); | ||
889 | avatar.Close(); | 891 | avatar.Close(); |
890 | CloseConnection(avatar.UUID); | 892 | CloseConnection(avatar.UUID); |
891 | } | 893 | } |