diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 8262478..d436bb3 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -816,6 +816,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
816 | m_sceneGridService.RegisterRegion(m_regInfo); | 816 | m_sceneGridService.RegisterRegion(m_regInfo); |
817 | m_sceneGridService.OnExpectUser += NewUserConnection; | 817 | m_sceneGridService.OnExpectUser += NewUserConnection; |
818 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; | 818 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; |
819 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; | ||
819 | } | 820 | } |
820 | 821 | ||
821 | /// <summary> | 822 | /// <summary> |
@@ -864,13 +865,26 @@ namespace OpenSim.Region.Environment.Scenes | |||
864 | } | 865 | } |
865 | } | 866 | } |
866 | 867 | ||
868 | public void CloseConnection(ulong regionHandle, LLUUID agentID) | ||
869 | { | ||
870 | if (regionHandle == m_regionHandle) | ||
871 | { | ||
872 | ScenePresence presence = m_innerScene.GetScenePresence(agentID); | ||
873 | if(presence != null) | ||
874 | { | ||
875 | libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); | ||
876 | presence.ControllingClient.OutPacket(disable); | ||
877 | } | ||
878 | } | ||
879 | } | ||
880 | |||
867 | 881 | ||
868 | /// <summary> | 882 | /// <summary> |
869 | /// | 883 | /// |
870 | /// </summary> | 884 | /// </summary> |
871 | public void InformClientOfNeighbours(ScenePresence presence) | 885 | public void InformClientOfNeighbours(ScenePresence presence) |
872 | { | 886 | { |
873 | m_sceneGridService.InformClientOfNeighbours(presence); | 887 | m_sceneGridService.EnableNeighbourChildAgents(presence); |
874 | } | 888 | } |
875 | 889 | ||
876 | /// <summary> | 890 | /// <summary> |
@@ -908,7 +922,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
908 | { | 922 | { |
909 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) | 923 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) |
910 | { | 924 | { |
911 | m_sceneGridService.RequestTeleportLocation(m_scenePresences[remoteClient.AgentId], regionHandle, position, lookAt, flags); | 925 | m_sceneGridService.RequestTeleportToLocation(m_scenePresences[remoteClient.AgentId], regionHandle, position, lookAt, flags); |
912 | } | 926 | } |
913 | } | 927 | } |
914 | 928 | ||
@@ -920,7 +934,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
920 | /// <param name="position"></param> | 934 | /// <param name="position"></param> |
921 | public bool InformNeighbourOfCrossing(ulong regionhandle, LLUUID agentID, LLVector3 position, bool isFlying) | 935 | public bool InformNeighbourOfCrossing(ulong regionhandle, LLUUID agentID, LLVector3 position, bool isFlying) |
922 | { | 936 | { |
923 | return m_sceneGridService.InformNeighbourOfCrossing(regionhandle, agentID, position, isFlying); | 937 | return m_sceneGridService.CrossToNeighbouringRegion(regionhandle, agentID, position, isFlying); |
924 | } | 938 | } |
925 | 939 | ||
926 | #endregion | 940 | #endregion |