private void OnEstateTeleportAllUsersHomeRequest(IClientAPI client, UUID invoice, UUID senderID) { if (!(client.Scene is Scene)) { return; } Scene scene = (Scene)client.Scene; uint estateID = scene.RegionInfo.EstateSettings.EstateID; if (!scene.Permissions.CanIssueEstateCommand(client.AgentId, false)) { return; } foreach (Scene s in Scenes) { if (s.RegionInfo.EstateSettings.EstateID != estateID) { continue; } scene.ForEachScenePresence(delegate(ScenePresence p) { if (p != null && !p.IsChildAgent) { p.ControllingClient.SendTeleportStart(16); scene.TeleportClientHome(p.ControllingClient.AgentId, p.ControllingClient); } }); } m_EstateConnector.SendTeleportHomeAllUsers(estateID); }
private void OnEstateTeleportAllUsersHomeRequest(IClientAPI client, UUID invoice, UUID senderID) { if (!(client.Scene is Scene)) { return; } Scene scene = (Scene)client.Scene; uint estateID = scene.RegionInfo.EstateSettings.EstateID; if (!scene.Permissions.CanIssueEstateCommand(client.AgentId, false)) { return; } foreach (Scene s in Scenes) { if (s.RegionInfo.EstateSettings.EstateID != estateID) { continue; } scene.ForEachScenePresence(delegate(ScenePresence p) { if (p != null && !p.IsChildAgent && !p.IsDeleted && !p.IsInTransit) { p.ControllingClient.SendTeleportStart(16); scene.TeleportClientHome(p.ControllingClient.AgentId, client); if (!s.TeleportClientHome(p.ControllingClient.AgentId, client)) { p.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); s.CloseAgent(p.UUID, false); } } }); } m_EstateConnector.SendTeleportHomeAllUsers(estateID); }