aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs12
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
3 files changed, 29 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 853491b..470ce2e 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -72,9 +72,11 @@ namespace OpenSim.Region.Framework.Scenes
72 public delegate void OnNewClientDelegate(IClientAPI client); 72 public delegate void OnNewClientDelegate(IClientAPI client);
73 73
74 /// <summary> 74 /// <summary>
75 /// Deprecated in favour of OnClientConnect. 75 /// Triggered when a new client is added to the scene.
76 /// Will be marked Obsolete after IClientCore has 100% of IClientAPI interfaces.
77 /// </summary> 76 /// </summary>
77 /// <remarks>
78 /// Triggered before OnClientLogin.
79 /// </remarks>
78 public event OnNewClientDelegate OnNewClient; 80 public event OnNewClientDelegate OnNewClient;
79 81
80 /// <summary> 82 /// <summary>
@@ -192,6 +194,12 @@ namespace OpenSim.Region.Framework.Scenes
192 194
193 public delegate void ClientClosed(UUID clientID, Scene scene); 195 public delegate void ClientClosed(UUID clientID, Scene scene);
194 196
197 /// <summary>
198 /// Fired when a client is removed from a scene.
199 /// </summary>
200 /// <remarks>
201 /// At the point of firing, the scene still contains the client's scene presence.
202 /// </remarks>
195 public event ClientClosed OnClientClosed; 203 public event ClientClosed OnClientClosed;
196 204
197 public delegate void NewScript(UUID clientID, SceneObjectPart part, UUID itemID); 205 public delegate void NewScript(UUID clientID, SceneObjectPart part, UUID itemID);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index fc1034d..cac178d 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1881,8 +1881,8 @@ namespace OpenSim.Region.Framework.Scenes
1881 1881
1882 foreach (SceneObjectGroup group in PrimsFromDB) 1882 foreach (SceneObjectGroup group in PrimsFromDB)
1883 { 1883 {
1884 EventManager.TriggerOnSceneObjectLoaded(group);
1885 AddRestoredSceneObject(group, true, true); 1884 AddRestoredSceneObject(group, true, true);
1885 EventManager.TriggerOnSceneObjectLoaded(group);
1886 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1886 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1887 rootPart.Flags &= ~PrimFlags.Scripted; 1887 rootPart.Flags &= ~PrimFlags.Scripted;
1888 rootPart.TrimPermissions(); 1888 rootPart.TrimPermissions();
@@ -2800,14 +2800,6 @@ namespace OpenSim.Region.Framework.Scenes
2800 // Cache the user's name 2800 // Cache the user's name
2801 CacheUserName(sp, aCircuit); 2801 CacheUserName(sp, aCircuit);
2802 2802
2803 // Let's send the Suitcase folder for incoming HG agents
2804 if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0)
2805 {
2806 m_log.DebugFormat("[SCENE]: Sending root folder to viewer...");
2807 InventoryFolderBase suitcase = InventoryService.GetRootFolder(client.AgentId);
2808 client.SendBulkUpdateInventory(suitcase);
2809 }
2810
2811 EventManager.TriggerOnNewClient(client); 2803 EventManager.TriggerOnNewClient(client);
2812 if (vialogin) 2804 if (vialogin)
2813 { 2805 {
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index a23dc31..ee8a236 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -32,6 +32,7 @@ using System.Reflection;
32using System.Timers; 32using System.Timers;
33using OpenMetaverse; 33using OpenMetaverse;
34using log4net; 34using log4net;
35using Nini.Config;
35using OpenSim.Framework; 36using OpenSim.Framework;
36using OpenSim.Framework.Client; 37using OpenSim.Framework.Client;
37using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
@@ -1236,6 +1237,23 @@ namespace OpenSim.Region.Framework.Scenes
1236 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient); 1237 friendsModule.SendFriendsOnlineIfNeeded(ControllingClient);
1237 } 1238 }
1238 1239
1240 // HACK HACK -- just seeing how the viewer responds
1241 // Let's send the Suitcase or the real root folder folder for incoming HG agents
1242 // Visiting agents get their suitcase contents; incoming local users get their real root folder's content
1243 AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(UUID);
1244 if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0)
1245 {
1246 // HACK FOR NOW. JUST TESTING, SO KEEPING EVERYONE ELSE OUT OF THESE TESTS
1247 IConfig config = m_scene.Config.Configs["HGEntityTransferModule"];
1248 if (config != null && config.GetBoolean("RestrictInventoryAccessAbroad", false))
1249 {
1250 m_log.DebugFormat("[SCENE]: Sending root folder to viewer...");
1251 InventoryFolderBase root = m_scene.InventoryService.GetRootFolder(client.AgentId);
1252 //InventoryCollection rootContents = InventoryService.GetFolderContent(client.AgentId, root.ID);
1253 client.SendBulkUpdateInventory(root);
1254 }
1255 }
1256
1239// m_log.DebugFormat( 1257// m_log.DebugFormat(
1240// "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms", 1258// "[SCENE PRESENCE]: Completing movement of {0} into region {1} took {2}ms",
1241// client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds); 1259// client.Name, Scene.RegionInfo.RegionName, (DateTime.Now - startTime).Milliseconds);