diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | 997 | ||||
-rw-r--r-- | OpenSim/Data/IRegionData.cs | 1 | ||||
-rw-r--r-- | OpenSim/Data/MSSQL/MSSQLRegionData.cs | 27 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLRegionData.cs | 23 | ||||
-rw-r--r-- | OpenSim/Data/Null/NullRegionData.cs | 25 | ||||
-rw-r--r-- | OpenSim/Services/GridService/GridService.cs | 2 | ||||
-rw-r--r-- | OpenSim/Services/GridService/HypergridLinker.cs | 47 |
7 files changed, 562 insertions, 560 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index 03b8e9f..026c6ed 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -58,12 +58,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
58 | { | 58 | { |
59 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 59 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
60 | 60 | ||
61 | private static bool daload = false; | 61 | private static bool m_defaultAvatarsLoaded = false; |
62 | private static Object rslock = new Object(); | 62 | private static Object m_requestLock = new Object(); |
63 | private static Object SOLock = new Object(); | 63 | private static Object m_saveOarLock = new Object(); |
64 | 64 | ||
65 | private OpenSimBase m_app; | 65 | private OpenSimBase m_application; |
66 | private IHttpServer m_httpd; | 66 | private IHttpServer m_httpServer; |
67 | private IConfig m_config; | 67 | private IConfig m_config; |
68 | private IConfigSource m_configSource; | 68 | private IConfigSource m_configSource; |
69 | private string m_requiredPassword = String.Empty; | 69 | private string m_requiredPassword = String.Empty; |
@@ -115,8 +115,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
115 | m_requiredPassword = m_config.GetString("access_password", String.Empty); | 115 | m_requiredPassword = m_config.GetString("access_password", String.Empty); |
116 | int port = m_config.GetInt("port", 0); | 116 | int port = m_config.GetInt("port", 0); |
117 | 117 | ||
118 | m_app = openSim; | 118 | m_application = openSim; |
119 | m_httpd = MainServer.GetHttpServer((uint)port); | 119 | m_httpServer = MainServer.GetHttpServer((uint)port); |
120 | 120 | ||
121 | Dictionary<string, XmlRpcMethod> availableMethods = new Dictionary<string, XmlRpcMethod>(); | 121 | Dictionary<string, XmlRpcMethod> availableMethods = new Dictionary<string, XmlRpcMethod>(); |
122 | availableMethods["admin_create_region"] = XmlRpcCreateRegionMethod; | 122 | availableMethods["admin_create_region"] = XmlRpcCreateRegionMethod; |
@@ -161,14 +161,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
161 | { | 161 | { |
162 | foreach (string method in availableMethods.Keys) | 162 | foreach (string method in availableMethods.Keys) |
163 | { | 163 | { |
164 | m_httpd.AddXmlRPCHandler(method, availableMethods[method], false); | 164 | m_httpServer.AddXmlRPCHandler(method, availableMethods[method], false); |
165 | } | 165 | } |
166 | } | 166 | } |
167 | else | 167 | else |
168 | { | 168 | { |
169 | foreach (string enabledMethod in enabledMethods.Split('|')) | 169 | foreach (string enabledMethod in enabledMethods.Split('|')) |
170 | { | 170 | { |
171 | m_httpd.AddXmlRPCHandler(enabledMethod, availableMethods[enabledMethod]); | 171 | m_httpServer.AddXmlRPCHandler(enabledMethod, availableMethods[enabledMethod]); |
172 | } | 172 | } |
173 | } | 173 | } |
174 | } | 174 | } |
@@ -181,7 +181,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
181 | 181 | ||
182 | public void PostInitialise() | 182 | public void PostInitialise() |
183 | { | 183 | { |
184 | if (!createDefaultAvatars()) | 184 | if (!CreateDefaultAvatars()) |
185 | { | 185 | { |
186 | m_log.Info("[RADMIN]: Default avatars not loaded"); | 186 | m_log.Info("[RADMIN]: Default avatars not loaded"); |
187 | } | 187 | } |
@@ -197,7 +197,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
197 | Hashtable requestData = (Hashtable) request.Params[0]; | 197 | Hashtable requestData = (Hashtable) request.Params[0]; |
198 | 198 | ||
199 | m_log.Info("[RADMIN]: Request to restart Region."); | 199 | m_log.Info("[RADMIN]: Request to restart Region."); |
200 | checkStringParameters(request, new string[] {"password", "regionID"}); | 200 | CheckStringParameters(request, new string[] {"password", "regionID"}); |
201 | 201 | ||
202 | if (m_requiredPassword != String.Empty && | 202 | if (m_requiredPassword != String.Empty && |
203 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) | 203 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) |
@@ -213,7 +213,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
213 | 213 | ||
214 | Scene rebootedScene; | 214 | Scene rebootedScene; |
215 | 215 | ||
216 | if (!m_app.SceneManager.TryGetScene(regionID, out rebootedScene)) | 216 | if (!m_application.SceneManager.TryGetScene(regionID, out rebootedScene)) |
217 | throw new Exception("region not found"); | 217 | throw new Exception("region not found"); |
218 | 218 | ||
219 | int timeout = 30000; | 219 | int timeout = 30000; |
@@ -243,7 +243,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
243 | if (requestData.ContainsKey("noticetype") | 243 | if (requestData.ContainsKey("noticetype") |
244 | && ((string)requestData["noticetype"] == "dialog")) | 244 | && ((string)requestData["noticetype"] == "dialog")) |
245 | { | 245 | { |
246 | m_app.SceneManager.ForEachScene( | 246 | m_application.SceneManager.ForEachScene( |
247 | delegate(Scene scene) | 247 | delegate(Scene scene) |
248 | { | 248 | { |
249 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 249 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -256,7 +256,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
256 | if (!requestData.ContainsKey("noticetype") | 256 | if (!requestData.ContainsKey("noticetype") |
257 | || ((string)requestData["noticetype"] != "none")) | 257 | || ((string)requestData["noticetype"] != "none")) |
258 | { | 258 | { |
259 | m_app.SceneManager.ForEachScene( | 259 | m_application.SceneManager.ForEachScene( |
260 | delegate(Scene scene) | 260 | delegate(Scene scene) |
261 | { | 261 | { |
262 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 262 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -296,7 +296,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
296 | { | 296 | { |
297 | Hashtable requestData = (Hashtable) request.Params[0]; | 297 | Hashtable requestData = (Hashtable) request.Params[0]; |
298 | 298 | ||
299 | checkStringParameters(request, new string[] {"password", "message"}); | 299 | CheckStringParameters(request, new string[] {"password", "message"}); |
300 | 300 | ||
301 | if (m_requiredPassword != String.Empty && | 301 | if (m_requiredPassword != String.Empty && |
302 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) | 302 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) |
@@ -309,7 +309,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
309 | responseData["success"] = true; | 309 | responseData["success"] = true; |
310 | response.Value = responseData; | 310 | response.Value = responseData; |
311 | 311 | ||
312 | m_app.SceneManager.ForEachScene( | 312 | m_application.SceneManager.ForEachScene( |
313 | delegate(Scene scene) | 313 | delegate(Scene scene) |
314 | { | 314 | { |
315 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 315 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -342,7 +342,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
342 | { | 342 | { |
343 | Hashtable requestData = (Hashtable)request.Params[0]; | 343 | Hashtable requestData = (Hashtable)request.Params[0]; |
344 | 344 | ||
345 | checkStringParameters(request, new string[] { "password", "from", "message" }); | 345 | CheckStringParameters(request, new string[] { "password", "from", "message" }); |
346 | 346 | ||
347 | if (m_requiredPassword != String.Empty && | 347 | if (m_requiredPassword != String.Empty && |
348 | (!requestData.Contains("password") || (string)requestData["password"] != m_requiredPassword)) | 348 | (!requestData.Contains("password") || (string)requestData["password"] != m_requiredPassword)) |
@@ -356,7 +356,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
356 | responseData["success"] = true; | 356 | responseData["success"] = true; |
357 | response.Value = responseData; | 357 | response.Value = responseData; |
358 | 358 | ||
359 | m_app.SceneManager.ForEachScene( | 359 | m_application.SceneManager.ForEachScene( |
360 | delegate(Scene scene) | 360 | delegate(Scene scene) |
361 | { | 361 | { |
362 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 362 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -397,7 +397,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
397 | // k, (string)requestData[k], ((string)requestData[k]).Length); | 397 | // k, (string)requestData[k], ((string)requestData[k]).Length); |
398 | // } | 398 | // } |
399 | 399 | ||
400 | checkStringParameters(request, new string[] {"password", "filename", "regionid"}); | 400 | CheckStringParameters(request, new string[] {"password", "filename", "regionid"}); |
401 | 401 | ||
402 | if (m_requiredPassword != String.Empty && | 402 | if (m_requiredPassword != String.Empty && |
403 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) | 403 | (!requestData.Contains("password") || (string) requestData["password"] != m_requiredPassword)) |
@@ -411,7 +411,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
411 | 411 | ||
412 | Scene region = null; | 412 | Scene region = null; |
413 | 413 | ||
414 | if (!m_app.SceneManager.TryGetScene(regionID, out region)) | 414 | if (!m_application.SceneManager.TryGetScene(regionID, out region)) |
415 | throw new Exception("1: unable to get a scene with that name"); | 415 | throw new Exception("1: unable to get a scene with that name"); |
416 | 416 | ||
417 | ITerrainModule terrainModule = region.RequestModuleInterface<ITerrainModule>(); | 417 | ITerrainModule terrainModule = region.RequestModuleInterface<ITerrainModule>(); |
@@ -488,7 +488,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
488 | if (requestData.ContainsKey("noticetype") | 488 | if (requestData.ContainsKey("noticetype") |
489 | && ((string) requestData["noticetype"] == "dialog")) | 489 | && ((string) requestData["noticetype"] == "dialog")) |
490 | { | 490 | { |
491 | m_app.SceneManager.ForEachScene( | 491 | m_application.SceneManager.ForEachScene( |
492 | delegate(Scene scene) | 492 | delegate(Scene scene) |
493 | { | 493 | { |
494 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 494 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -501,7 +501,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
501 | if (!requestData.ContainsKey("noticetype") | 501 | if (!requestData.ContainsKey("noticetype") |
502 | || ((string)requestData["noticetype"] != "none")) | 502 | || ((string)requestData["noticetype"] != "none")) |
503 | { | 503 | { |
504 | m_app.SceneManager.ForEachScene( | 504 | m_application.SceneManager.ForEachScene( |
505 | delegate(Scene scene) | 505 | delegate(Scene scene) |
506 | { | 506 | { |
507 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); | 507 | IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>(); |
@@ -540,7 +540,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
540 | 540 | ||
541 | private void shutdownTimer_Elapsed(object sender, ElapsedEventArgs e) | 541 | private void shutdownTimer_Elapsed(object sender, ElapsedEventArgs e) |
542 | { | 542 | { |
543 | m_app.Shutdown(); | 543 | m_application.Shutdown(); |
544 | } | 544 | } |
545 | 545 | ||
546 | /// <summary> | 546 | /// <summary> |
@@ -607,7 +607,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
607 | XmlRpcResponse response = new XmlRpcResponse(); | 607 | XmlRpcResponse response = new XmlRpcResponse(); |
608 | Hashtable responseData = new Hashtable(); | 608 | Hashtable responseData = new Hashtable(); |
609 | 609 | ||
610 | lock (rslock) | 610 | lock (m_requestLock) |
611 | { | 611 | { |
612 | int m_regionLimit = m_config.GetInt("region_limit", 0); | 612 | int m_regionLimit = m_config.GetInt("region_limit", 0); |
613 | bool m_enableVoiceForNewRegions = m_config.GetBoolean("create_region_enable_voice", false); | 613 | bool m_enableVoiceForNewRegions = m_config.GetBoolean("create_region_enable_voice", false); |
@@ -617,7 +617,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
617 | { | 617 | { |
618 | Hashtable requestData = (Hashtable) request.Params[0]; | 618 | Hashtable requestData = (Hashtable) request.Params[0]; |
619 | 619 | ||
620 | checkStringParameters(request, new string[] | 620 | CheckStringParameters(request, new string[] |
621 | { | 621 | { |
622 | "password", | 622 | "password", |
623 | "region_name", | 623 | "region_name", |
@@ -625,14 +625,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
625 | "region_master_password", | 625 | "region_master_password", |
626 | "listen_ip", "external_address" | 626 | "listen_ip", "external_address" |
627 | }); | 627 | }); |
628 | checkIntegerParams(request, new string[] {"region_x", "region_y", "listen_port"}); | 628 | CheckIntegerParams(request, new string[] {"region_x", "region_y", "listen_port"}); |
629 | 629 | ||
630 | // check password | 630 | // check password |
631 | if (!String.IsNullOrEmpty(m_requiredPassword) && | 631 | if (!String.IsNullOrEmpty(m_requiredPassword) && |
632 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); | 632 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); |
633 | 633 | ||
634 | // check whether we still have space left (iff we are using limits) | 634 | // check whether we still have space left (iff we are using limits) |
635 | if (m_regionLimit != 0 && m_app.SceneManager.Scenes.Count >= m_regionLimit) | 635 | if (m_regionLimit != 0 && m_application.SceneManager.Scenes.Count >= m_regionLimit) |
636 | throw new Exception(String.Format("cannot instantiate new region, server capacity {0} already reached; delete regions first", | 636 | throw new Exception(String.Format("cannot instantiate new region, server capacity {0} already reached; delete regions first", |
637 | m_regionLimit)); | 637 | m_regionLimit)); |
638 | // extract or generate region ID now | 638 | // extract or generate region ID now |
@@ -642,7 +642,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
642 | !String.IsNullOrEmpty((string) requestData["region_id"])) | 642 | !String.IsNullOrEmpty((string) requestData["region_id"])) |
643 | { | 643 | { |
644 | regionID = (UUID) (string) requestData["region_id"]; | 644 | regionID = (UUID) (string) requestData["region_id"]; |
645 | if (m_app.SceneManager.TryGetScene(regionID, out scene)) | 645 | if (m_application.SceneManager.TryGetScene(regionID, out scene)) |
646 | throw new Exception( | 646 | throw new Exception( |
647 | String.Format("region UUID already in use by region {0}, UUID {1}, <{2},{3}>", | 647 | String.Format("region UUID already in use by region {0}, UUID {1}, <{2},{3}>", |
648 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 648 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
@@ -665,13 +665,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
665 | 665 | ||
666 | // check for collisions: region name, region UUID, | 666 | // check for collisions: region name, region UUID, |
667 | // region location | 667 | // region location |
668 | if (m_app.SceneManager.TryGetScene(region.RegionName, out scene)) | 668 | if (m_application.SceneManager.TryGetScene(region.RegionName, out scene)) |
669 | throw new Exception( | 669 | throw new Exception( |
670 | String.Format("region name already in use by region {0}, UUID {1}, <{2},{3}>", | 670 | String.Format("region name already in use by region {0}, UUID {1}, <{2},{3}>", |
671 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 671 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
672 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); | 672 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); |
673 | 673 | ||
674 | if (m_app.SceneManager.TryGetScene(region.RegionLocX, region.RegionLocY, out scene)) | 674 | if (m_application.SceneManager.TryGetScene(region.RegionLocX, region.RegionLocY, out scene)) |
675 | throw new Exception( | 675 | throw new Exception( |
676 | String.Format("region location <{0},{1}> already in use by region {2}, UUID {3}, <{4},{5}>", | 676 | String.Format("region location <{0},{1}> already in use by region {2}, UUID {3}, <{4},{5}>", |
677 | region.RegionLocX, region.RegionLocY, | 677 | region.RegionLocX, region.RegionLocY, |
@@ -683,7 +683,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
683 | 683 | ||
684 | region.InternalEndPoint.Port = Convert.ToInt32(requestData["listen_port"]); | 684 | region.InternalEndPoint.Port = Convert.ToInt32(requestData["listen_port"]); |
685 | if (0 == region.InternalEndPoint.Port) throw new Exception("listen_port is 0"); | 685 | if (0 == region.InternalEndPoint.Port) throw new Exception("listen_port is 0"); |
686 | if (m_app.SceneManager.TryGetScene(region.InternalEndPoint, out scene)) | 686 | if (m_application.SceneManager.TryGetScene(region.InternalEndPoint, out scene)) |
687 | throw new Exception( | 687 | throw new Exception( |
688 | String.Format( | 688 | String.Format( |
689 | "region internal IP {0} and port {1} already in use by region {2}, UUID {3}, <{4},{5}>", | 689 | "region internal IP {0} and port {1} already in use by region {2}, UUID {3}, <{4},{5}>", |
@@ -743,28 +743,28 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
743 | 743 | ||
744 | // Create the region and perform any initial initialization | 744 | // Create the region and perform any initial initialization |
745 | 745 | ||
746 | IScene newscene; | 746 | IScene newScene; |
747 | m_app.CreateRegion(region, out newscene); | 747 | m_application.CreateRegion(region, out newScene); |
748 | 748 | ||
749 | // If an access specification was provided, use it. | 749 | // If an access specification was provided, use it. |
750 | // Otherwise accept the default. | 750 | // Otherwise accept the default. |
751 | newscene.RegionInfo.EstateSettings.PublicAccess = getBoolean(requestData, "public", m_publicAccess); | 751 | newScene.RegionInfo.EstateSettings.PublicAccess = GetBoolean(requestData, "public", m_publicAccess); |
752 | newscene.RegionInfo.EstateSettings.EstateOwner = userID; | 752 | newScene.RegionInfo.EstateSettings.EstateOwner = userID; |
753 | if (persist) | 753 | if (persist) |
754 | newscene.RegionInfo.EstateSettings.Save(); | 754 | newScene.RegionInfo.EstateSettings.Save(); |
755 | 755 | ||
756 | // enable voice on newly created region if | 756 | // enable voice on newly created region if |
757 | // requested by either the XmlRpc request or the | 757 | // requested by either the XmlRpc request or the |
758 | // configuration | 758 | // configuration |
759 | if (getBoolean(requestData, "enable_voice", m_enableVoiceForNewRegions)) | 759 | if (GetBoolean(requestData, "enable_voice", m_enableVoiceForNewRegions)) |
760 | { | 760 | { |
761 | List<ILandObject> parcels = ((Scene)newscene).LandChannel.AllParcels(); | 761 | List<ILandObject> parcels = ((Scene)newScene).LandChannel.AllParcels(); |
762 | 762 | ||
763 | foreach (ILandObject parcel in parcels) | 763 | foreach (ILandObject parcel in parcels) |
764 | { | 764 | { |
765 | parcel.LandData.Flags |= (uint) ParcelFlags.AllowVoiceChat; | 765 | parcel.LandData.Flags |= (uint) ParcelFlags.AllowVoiceChat; |
766 | parcel.LandData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan; | 766 | parcel.LandData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan; |
767 | ((Scene)newscene).LandChannel.UpdateLandObject(parcel.LandData.LocalID, parcel.LandData); | 767 | ((Scene)newScene).LandChannel.UpdateLandObject(parcel.LandData.LocalID, parcel.LandData); |
768 | } | 768 | } |
769 | } | 769 | } |
770 | 770 | ||
@@ -822,19 +822,19 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
822 | XmlRpcResponse response = new XmlRpcResponse(); | 822 | XmlRpcResponse response = new XmlRpcResponse(); |
823 | Hashtable responseData = new Hashtable(); | 823 | Hashtable responseData = new Hashtable(); |
824 | 824 | ||
825 | lock (rslock) | 825 | lock (m_requestLock) |
826 | { | 826 | { |
827 | try | 827 | try |
828 | { | 828 | { |
829 | Hashtable requestData = (Hashtable) request.Params[0]; | 829 | Hashtable requestData = (Hashtable) request.Params[0]; |
830 | checkStringParameters(request, new string[] {"password", "region_name"}); | 830 | CheckStringParameters(request, new string[] {"password", "region_name"}); |
831 | 831 | ||
832 | Scene scene = null; | 832 | Scene scene = null; |
833 | string regionName = (string) requestData["region_name"]; | 833 | string regionName = (string) requestData["region_name"]; |
834 | if (!m_app.SceneManager.TryGetScene(regionName, out scene)) | 834 | if (!m_application.SceneManager.TryGetScene(regionName, out scene)) |
835 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); | 835 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); |
836 | 836 | ||
837 | m_app.RemoveRegion(scene, true); | 837 | m_application.RemoveRegion(scene, true); |
838 | 838 | ||
839 | responseData["success"] = true; | 839 | responseData["success"] = true; |
840 | responseData["region_name"] = regionName; | 840 | responseData["region_name"] = regionName; |
@@ -892,22 +892,22 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
892 | Hashtable responseData = new Hashtable(); | 892 | Hashtable responseData = new Hashtable(); |
893 | Scene scene = null; | 893 | Scene scene = null; |
894 | 894 | ||
895 | lock (rslock) | 895 | lock (m_requestLock) |
896 | { | 896 | { |
897 | try | 897 | try |
898 | { | 898 | { |
899 | Hashtable requestData = (Hashtable) request.Params[0]; | 899 | Hashtable requestData = (Hashtable) request.Params[0]; |
900 | checkStringParameters(request, new string[] {"password"}); | 900 | CheckStringParameters(request, new string[] {"password"}); |
901 | 901 | ||
902 | if (requestData.ContainsKey("region_id") && | 902 | if (requestData.ContainsKey("region_id") && |
903 | !String.IsNullOrEmpty((string) requestData["region_id"])) | 903 | !String.IsNullOrEmpty((string) requestData["region_id"])) |
904 | { | 904 | { |
905 | // Region specified by UUID | 905 | // Region specified by UUID |
906 | UUID regionID = (UUID) (string) requestData["region_id"]; | 906 | UUID regionID = (UUID) (string) requestData["region_id"]; |
907 | if (!m_app.SceneManager.TryGetScene(regionID, out scene)) | 907 | if (!m_application.SceneManager.TryGetScene(regionID, out scene)) |
908 | throw new Exception(String.Format("region \"{0}\" does not exist", regionID)); | 908 | throw new Exception(String.Format("region \"{0}\" does not exist", regionID)); |
909 | 909 | ||
910 | m_app.CloseRegion(scene); | 910 | m_application.CloseRegion(scene); |
911 | 911 | ||
912 | responseData["success"] = true; | 912 | responseData["success"] = true; |
913 | responseData["region_id"] = regionID; | 913 | responseData["region_id"] = regionID; |
@@ -920,10 +920,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
920 | // Region specified by name | 920 | // Region specified by name |
921 | 921 | ||
922 | string regionName = (string) requestData["region_name"]; | 922 | string regionName = (string) requestData["region_name"]; |
923 | if (!m_app.SceneManager.TryGetScene(regionName, out scene)) | 923 | if (!m_application.SceneManager.TryGetScene(regionName, out scene)) |
924 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); | 924 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); |
925 | 925 | ||
926 | m_app.CloseRegion(scene); | 926 | m_application.CloseRegion(scene); |
927 | 927 | ||
928 | responseData["success"] = true; | 928 | responseData["success"] = true; |
929 | responseData["region_name"] = regionName; | 929 | responseData["region_name"] = regionName; |
@@ -987,27 +987,27 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
987 | XmlRpcResponse response = new XmlRpcResponse(); | 987 | XmlRpcResponse response = new XmlRpcResponse(); |
988 | Hashtable responseData = new Hashtable(); | 988 | Hashtable responseData = new Hashtable(); |
989 | 989 | ||
990 | lock (rslock) | 990 | lock (m_requestLock) |
991 | { | 991 | { |
992 | try | 992 | try |
993 | { | 993 | { |
994 | Hashtable requestData = (Hashtable) request.Params[0]; | 994 | Hashtable requestData = (Hashtable) request.Params[0]; |
995 | checkStringParameters(request, new string[] {"password", "region_name"}); | 995 | CheckStringParameters(request, new string[] {"password", "region_name"}); |
996 | 996 | ||
997 | Scene scene = null; | 997 | Scene scene = null; |
998 | string regionName = (string) requestData["region_name"]; | 998 | string regionName = (string) requestData["region_name"]; |
999 | if (!m_app.SceneManager.TryGetScene(regionName, out scene)) | 999 | if (!m_application.SceneManager.TryGetScene(regionName, out scene)) |
1000 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); | 1000 | throw new Exception(String.Format("region \"{0}\" does not exist", regionName)); |
1001 | 1001 | ||
1002 | // Modify access | 1002 | // Modify access |
1003 | scene.RegionInfo.EstateSettings.PublicAccess = | 1003 | scene.RegionInfo.EstateSettings.PublicAccess = |
1004 | getBoolean(requestData,"public", scene.RegionInfo.EstateSettings.PublicAccess); | 1004 | GetBoolean(requestData,"public", scene.RegionInfo.EstateSettings.PublicAccess); |
1005 | if (scene.RegionInfo.Persistent) | 1005 | if (scene.RegionInfo.Persistent) |
1006 | scene.RegionInfo.EstateSettings.Save(); | 1006 | scene.RegionInfo.EstateSettings.Save(); |
1007 | 1007 | ||
1008 | if (requestData.ContainsKey("enable_voice")) | 1008 | if (requestData.ContainsKey("enable_voice")) |
1009 | { | 1009 | { |
1010 | bool enableVoice = getBoolean(requestData, "enable_voice", true); | 1010 | bool enableVoice = GetBoolean(requestData, "enable_voice", true); |
1011 | List<ILandObject> parcels = ((Scene)scene).LandChannel.AllParcels(); | 1011 | List<ILandObject> parcels = ((Scene)scene).LandChannel.AllParcels(); |
1012 | 1012 | ||
1013 | foreach (ILandObject parcel in parcels) | 1013 | foreach (ILandObject parcel in parcels) |
@@ -1094,66 +1094,66 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1094 | XmlRpcResponse response = new XmlRpcResponse(); | 1094 | XmlRpcResponse response = new XmlRpcResponse(); |
1095 | Hashtable responseData = new Hashtable(); | 1095 | Hashtable responseData = new Hashtable(); |
1096 | 1096 | ||
1097 | lock (rslock) | 1097 | lock (m_requestLock) |
1098 | { | 1098 | { |
1099 | try | 1099 | try |
1100 | { | 1100 | { |
1101 | Hashtable requestData = (Hashtable) request.Params[0]; | 1101 | Hashtable requestData = (Hashtable) request.Params[0]; |
1102 | 1102 | ||
1103 | // check completeness | 1103 | // check completeness |
1104 | checkStringParameters(request, new string[] | 1104 | CheckStringParameters(request, new string[] |
1105 | { | 1105 | { |
1106 | "password", "user_firstname", | 1106 | "password", "user_firstname", |
1107 | "user_lastname", "user_password", | 1107 | "user_lastname", "user_password", |
1108 | }); | 1108 | }); |
1109 | checkIntegerParams(request, new string[] {"start_region_x", "start_region_y"}); | 1109 | CheckIntegerParams(request, new string[] {"start_region_x", "start_region_y"}); |
1110 | 1110 | ||
1111 | // check password | 1111 | // check password |
1112 | if (!String.IsNullOrEmpty(m_requiredPassword) && | 1112 | if (!String.IsNullOrEmpty(m_requiredPassword) && |
1113 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); | 1113 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); |
1114 | 1114 | ||
1115 | // do the job | 1115 | // do the job |
1116 | string firstname = (string) requestData["user_firstname"]; | 1116 | string firstName = (string) requestData["user_firstname"]; |
1117 | string lastname = (string) requestData["user_lastname"]; | 1117 | string lastName = (string) requestData["user_lastname"]; |
1118 | string passwd = (string) requestData["user_password"]; | 1118 | string password = (string) requestData["user_password"]; |
1119 | 1119 | ||
1120 | uint regX = Convert.ToUInt32((Int32) requestData["start_region_x"]); | 1120 | uint regionXLocation = Convert.ToUInt32((Int32) requestData["start_region_x"]); |
1121 | uint regY = Convert.ToUInt32((Int32) requestData["start_region_y"]); | 1121 | uint regionYLocation = Convert.ToUInt32((Int32) requestData["start_region_y"]); |
1122 | 1122 | ||
1123 | string email = ""; // empty string for email | 1123 | string email = ""; // empty string for email |
1124 | if (requestData.Contains("user_email")) | 1124 | if (requestData.Contains("user_email")) |
1125 | email = (string)requestData["user_email"]; | 1125 | email = (string)requestData["user_email"]; |
1126 | 1126 | ||
1127 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 1127 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
1128 | UUID scopeID = scene.RegionInfo.ScopeID; | 1128 | UUID scopeID = scene.RegionInfo.ScopeID; |
1129 | 1129 | ||
1130 | UserAccount account = CreateUser(scopeID, firstname, lastname, passwd, email); | 1130 | UserAccount account = CreateUser(scopeID, firstName, lastName, password, email); |
1131 | 1131 | ||
1132 | if (null == account) | 1132 | if (null == account) |
1133 | throw new Exception(String.Format("failed to create new user {0} {1}", | 1133 | throw new Exception(String.Format("failed to create new user {0} {1}", |
1134 | firstname, lastname)); | 1134 | firstName, lastName)); |
1135 | 1135 | ||
1136 | // Set home position | 1136 | // Set home position |
1137 | 1137 | ||
1138 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, | 1138 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, |
1139 | (int)(regX * Constants.RegionSize), (int)(regY * Constants.RegionSize)); | 1139 | (int)(regionXLocation * Constants.RegionSize), (int)(regionYLocation * Constants.RegionSize)); |
1140 | if (null == home) { | 1140 | if (null == home) { |
1141 | m_log.WarnFormat("[RADMIN]: Unable to set home region for newly created user account {0} {1}", firstname, lastname); | 1141 | m_log.WarnFormat("[RADMIN]: Unable to set home region for newly created user account {0} {1}", firstName, lastName); |
1142 | } else { | 1142 | } else { |
1143 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); | 1143 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); |
1144 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, firstname, lastname); | 1144 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, firstName, lastName); |
1145 | } | 1145 | } |
1146 | 1146 | ||
1147 | // Establish the avatar's initial appearance | 1147 | // Establish the avatar's initial appearance |
1148 | 1148 | ||
1149 | updateUserAppearance(responseData, requestData, account.PrincipalID); | 1149 | UpdateUserAppearance(responseData, requestData, account.PrincipalID); |
1150 | 1150 | ||
1151 | responseData["success"] = true; | 1151 | responseData["success"] = true; |
1152 | responseData["avatar_uuid"] = account.PrincipalID.ToString(); | 1152 | responseData["avatar_uuid"] = account.PrincipalID.ToString(); |
1153 | 1153 | ||
1154 | response.Value = responseData; | 1154 | response.Value = responseData; |
1155 | 1155 | ||
1156 | m_log.InfoFormat("[RADMIN]: CreateUser: User {0} {1} created, UUID {2}", firstname, lastname, account.PrincipalID); | 1156 | m_log.InfoFormat("[RADMIN]: CreateUser: User {0} {1} created, UUID {2}", firstName, lastName, account.PrincipalID); |
1157 | } | 1157 | } |
1158 | catch (Exception e) | 1158 | catch (Exception e) |
1159 | { | 1159 | { |
@@ -1217,17 +1217,17 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1217 | Hashtable requestData = (Hashtable) request.Params[0]; | 1217 | Hashtable requestData = (Hashtable) request.Params[0]; |
1218 | 1218 | ||
1219 | // check completeness | 1219 | // check completeness |
1220 | checkStringParameters(request, new string[] {"password", "user_firstname", "user_lastname"}); | 1220 | CheckStringParameters(request, new string[] {"password", "user_firstname", "user_lastname"}); |
1221 | 1221 | ||
1222 | string firstname = (string) requestData["user_firstname"]; | 1222 | string firstName = (string) requestData["user_firstname"]; |
1223 | string lastname = (string) requestData["user_lastname"]; | 1223 | string lastName = (string) requestData["user_lastname"]; |
1224 | 1224 | ||
1225 | responseData["user_firstname"] = firstname; | 1225 | responseData["user_firstname"] = firstName; |
1226 | responseData["user_lastname"] = lastname; | 1226 | responseData["user_lastname"] = lastName; |
1227 | 1227 | ||
1228 | UUID scopeID = m_app.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; | 1228 | UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; |
1229 | 1229 | ||
1230 | UserAccount account = m_app.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, firstname, lastname); | 1230 | UserAccount account = m_application.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, firstName, lastName); |
1231 | 1231 | ||
1232 | if (null == account) | 1232 | if (null == account) |
1233 | { | 1233 | { |
@@ -1236,9 +1236,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1236 | } | 1236 | } |
1237 | else | 1237 | else |
1238 | { | 1238 | { |
1239 | GridUserInfo guinfo = m_app.SceneManager.CurrentOrFirstScene.GridUserService.GetGridUserInfo(account.PrincipalID.ToString()); | 1239 | GridUserInfo userInfo = m_application.SceneManager.CurrentOrFirstScene.GridUserService.GetGridUserInfo(account.PrincipalID.ToString()); |
1240 | if (guinfo != null) | 1240 | if (userInfo != null) |
1241 | responseData["lastlogin"] = guinfo.Login; | 1241 | responseData["lastlogin"] = userInfo.Login; |
1242 | else | 1242 | else |
1243 | responseData["lastlogin"] = 0; | 1243 | responseData["lastlogin"] = 0; |
1244 | 1244 | ||
@@ -1315,14 +1315,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1315 | XmlRpcResponse response = new XmlRpcResponse(); | 1315 | XmlRpcResponse response = new XmlRpcResponse(); |
1316 | Hashtable responseData = new Hashtable(); | 1316 | Hashtable responseData = new Hashtable(); |
1317 | 1317 | ||
1318 | lock (rslock) | 1318 | lock (m_requestLock) |
1319 | { | 1319 | { |
1320 | try | 1320 | try |
1321 | { | 1321 | { |
1322 | Hashtable requestData = (Hashtable) request.Params[0]; | 1322 | Hashtable requestData = (Hashtable) request.Params[0]; |
1323 | 1323 | ||
1324 | // check completeness | 1324 | // check completeness |
1325 | checkStringParameters(request, new string[] { | 1325 | CheckStringParameters(request, new string[] { |
1326 | "password", "user_firstname", | 1326 | "password", "user_firstname", |
1327 | "user_lastname"}); | 1327 | "user_lastname"}); |
1328 | 1328 | ||
@@ -1331,12 +1331,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1331 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); | 1331 | (string) requestData["password"] != m_requiredPassword) throw new Exception("wrong password"); |
1332 | 1332 | ||
1333 | // do the job | 1333 | // do the job |
1334 | string firstname = (string) requestData["user_firstname"]; | 1334 | string firstName = (string) requestData["user_firstname"]; |
1335 | string lastname = (string) requestData["user_lastname"]; | 1335 | string lastName = (string) requestData["user_lastname"]; |
1336 | 1336 | ||
1337 | string passwd = String.Empty; | 1337 | string password = String.Empty; |
1338 | uint? regX = null; | 1338 | uint? regionXLocation = null; |
1339 | uint? regY = null; | 1339 | uint? regionYLocation = null; |
1340 | // uint? ulaX = null; | 1340 | // uint? ulaX = null; |
1341 | // uint? ulaY = null; | 1341 | // uint? ulaY = null; |
1342 | // uint? ulaZ = null; | 1342 | // uint? ulaZ = null; |
@@ -1346,11 +1346,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1346 | // string aboutFirstLive = String.Empty; | 1346 | // string aboutFirstLive = String.Empty; |
1347 | // string aboutAvatar = String.Empty; | 1347 | // string aboutAvatar = String.Empty; |
1348 | 1348 | ||
1349 | if (requestData.ContainsKey("user_password")) passwd = (string) requestData["user_password"]; | 1349 | if (requestData.ContainsKey("user_password")) password = (string) requestData["user_password"]; |
1350 | if (requestData.ContainsKey("start_region_x")) | 1350 | if (requestData.ContainsKey("start_region_x")) |
1351 | regX = Convert.ToUInt32((Int32) requestData["start_region_x"]); | 1351 | regionXLocation = Convert.ToUInt32((Int32) requestData["start_region_x"]); |
1352 | if (requestData.ContainsKey("start_region_y")) | 1352 | if (requestData.ContainsKey("start_region_y")) |
1353 | regY = Convert.ToUInt32((Int32) requestData["start_region_y"]); | 1353 | regionYLocation = Convert.ToUInt32((Int32) requestData["start_region_y"]); |
1354 | 1354 | ||
1355 | // if (requestData.ContainsKey("start_lookat_x")) | 1355 | // if (requestData.ContainsKey("start_lookat_x")) |
1356 | // ulaX = Convert.ToUInt32((Int32) requestData["start_lookat_x"]); | 1356 | // ulaX = Convert.ToUInt32((Int32) requestData["start_lookat_x"]); |
@@ -1370,17 +1370,17 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1370 | // if (requestData.ContainsKey("about_virtual_world")) | 1370 | // if (requestData.ContainsKey("about_virtual_world")) |
1371 | // aboutAvatar = (string)requestData["about_virtual_world"]; | 1371 | // aboutAvatar = (string)requestData["about_virtual_world"]; |
1372 | 1372 | ||
1373 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 1373 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
1374 | UUID scopeID = scene.RegionInfo.ScopeID; | 1374 | UUID scopeID = scene.RegionInfo.ScopeID; |
1375 | UserAccount account = scene.UserAccountService.GetUserAccount(scopeID, firstname, lastname); | 1375 | UserAccount account = scene.UserAccountService.GetUserAccount(scopeID, firstName, lastName); |
1376 | 1376 | ||
1377 | if (null == account) | 1377 | if (null == account) |
1378 | throw new Exception(String.Format("avatar {0} {1} does not exist", firstname, lastname)); | 1378 | throw new Exception(String.Format("avatar {0} {1} does not exist", firstName, lastName)); |
1379 | 1379 | ||
1380 | if (!String.IsNullOrEmpty(passwd)) | 1380 | if (!String.IsNullOrEmpty(password)) |
1381 | { | 1381 | { |
1382 | m_log.DebugFormat("[RADMIN]: UpdateUserAccount: updating password for avatar {0} {1}", firstname, lastname); | 1382 | m_log.DebugFormat("[RADMIN]: UpdateUserAccount: updating password for avatar {0} {1}", firstName, lastName); |
1383 | ChangeUserPassword(firstname, lastname, passwd); | 1383 | ChangeUserPassword(firstName, lastName, password); |
1384 | } | 1384 | } |
1385 | 1385 | ||
1386 | // if (null != usaX) userProfile.HomeLocationX = (uint) usaX; | 1386 | // if (null != usaX) userProfile.HomeLocationX = (uint) usaX; |
@@ -1396,21 +1396,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1396 | 1396 | ||
1397 | // Set home position | 1397 | // Set home position |
1398 | 1398 | ||
1399 | if ((null != regX) && (null != regY)) | 1399 | if ((null != regionXLocation) && (null != regionYLocation)) |
1400 | { | 1400 | { |
1401 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, | 1401 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, |
1402 | (int)(regX * Constants.RegionSize), (int)(regY * Constants.RegionSize)); | 1402 | (int)(regionXLocation * Constants.RegionSize), (int)(regionYLocation * Constants.RegionSize)); |
1403 | if (null == home) { | 1403 | if (null == home) { |
1404 | m_log.WarnFormat("[RADMIN]: Unable to set home region for updated user account {0} {1}", firstname, lastname); | 1404 | m_log.WarnFormat("[RADMIN]: Unable to set home region for updated user account {0} {1}", firstName, lastName); |
1405 | } else { | 1405 | } else { |
1406 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); | 1406 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); |
1407 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, firstname, lastname); | 1407 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, firstName, lastName); |
1408 | } | 1408 | } |
1409 | } | 1409 | } |
1410 | 1410 | ||
1411 | // User has been created. Now establish gender and appearance. | 1411 | // User has been created. Now establish gender and appearance. |
1412 | 1412 | ||
1413 | updateUserAppearance(responseData, requestData, account.PrincipalID); | 1413 | UpdateUserAppearance(responseData, requestData, account.PrincipalID); |
1414 | 1414 | ||
1415 | responseData["success"] = true; | 1415 | responseData["success"] = true; |
1416 | responseData["avatar_uuid"] = account.PrincipalID.ToString(); | 1416 | responseData["avatar_uuid"] = account.PrincipalID.ToString(); |
@@ -1418,7 +1418,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1418 | response.Value = responseData; | 1418 | response.Value = responseData; |
1419 | 1419 | ||
1420 | m_log.InfoFormat("[RADMIN]: UpdateUserAccount: account for user {0} {1} updated, UUID {2}", | 1420 | m_log.InfoFormat("[RADMIN]: UpdateUserAccount: account for user {0} {1} updated, UUID {2}", |
1421 | firstname, lastname, | 1421 | firstName, lastName, |
1422 | account.PrincipalID); | 1422 | account.PrincipalID); |
1423 | } | 1423 | } |
1424 | catch (Exception e) | 1424 | catch (Exception e) |
@@ -1446,13 +1446,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1446 | /// This should probably get moved into somewhere more core eventually. | 1446 | /// This should probably get moved into somewhere more core eventually. |
1447 | /// </summary> | 1447 | /// </summary> |
1448 | 1448 | ||
1449 | private void updateUserAppearance(Hashtable responseData, Hashtable requestData, UUID userid) | 1449 | private void UpdateUserAppearance(Hashtable responseData, Hashtable requestData, UUID userid) |
1450 | { | 1450 | { |
1451 | m_log.DebugFormat("[RADMIN] updateUserAppearance"); | 1451 | m_log.DebugFormat("[RADMIN] updateUserAppearance"); |
1452 | 1452 | ||
1453 | string dmale = m_config.GetString("default_male", "Default Male"); | 1453 | string defaultMale = m_config.GetString("default_male", "Default Male"); |
1454 | string dfemale = m_config.GetString("default_female", "Default Female"); | 1454 | string defaultFemale = m_config.GetString("default_female", "Default Female"); |
1455 | string dneut = m_config.GetString("default_female", "Default Default"); | 1455 | string defaultNeutral = m_config.GetString("default_female", "Default Default"); |
1456 | string model = String.Empty; | 1456 | string model = String.Empty; |
1457 | 1457 | ||
1458 | // Has a gender preference been supplied? | 1458 | // Has a gender preference been supplied? |
@@ -1463,16 +1463,16 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1463 | { | 1463 | { |
1464 | case "m" : | 1464 | case "m" : |
1465 | case "male" : | 1465 | case "male" : |
1466 | model = dmale; | 1466 | model = defaultMale; |
1467 | break; | 1467 | break; |
1468 | case "f" : | 1468 | case "f" : |
1469 | case "female" : | 1469 | case "female" : |
1470 | model = dfemale; | 1470 | model = defaultFemale; |
1471 | break; | 1471 | break; |
1472 | case "n" : | 1472 | case "n" : |
1473 | case "neutral" : | 1473 | case "neutral" : |
1474 | default : | 1474 | default : |
1475 | model = dneut; | 1475 | model = defaultNeutral; |
1476 | break; | 1476 | break; |
1477 | } | 1477 | } |
1478 | } | 1478 | } |
@@ -1494,19 +1494,19 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1494 | 1494 | ||
1495 | m_log.DebugFormat("[RADMIN] Setting appearance for avatar {0}, using model <{1}>", userid, model); | 1495 | m_log.DebugFormat("[RADMIN] Setting appearance for avatar {0}, using model <{1}>", userid, model); |
1496 | 1496 | ||
1497 | string[] nomens = model.Split(); | 1497 | string[] modelSpecifiers = model.Split(); |
1498 | if (nomens.Length != 2) | 1498 | if (modelSpecifiers.Length != 2) |
1499 | { | 1499 | { |
1500 | m_log.WarnFormat("[RADMIN] User appearance not set for {0}. Invalid model name : <{1}>", userid, model); | 1500 | m_log.WarnFormat("[RADMIN] User appearance not set for {0}. Invalid model name : <{1}>", userid, model); |
1501 | // nomens = dmodel.Split(); | 1501 | // modelSpecifiers = dmodel.Split(); |
1502 | return; | 1502 | return; |
1503 | } | 1503 | } |
1504 | 1504 | ||
1505 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 1505 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
1506 | UUID scopeID = scene.RegionInfo.ScopeID; | 1506 | UUID scopeID = scene.RegionInfo.ScopeID; |
1507 | UserAccount mprof = scene.UserAccountService.GetUserAccount(scopeID, nomens[0], nomens[1]); | 1507 | UserAccount modelProfile = scene.UserAccountService.GetUserAccount(scopeID, modelSpecifiers[0], modelSpecifiers[1]); |
1508 | 1508 | ||
1509 | if (mprof == null) | 1509 | if (modelProfile == null) |
1510 | { | 1510 | { |
1511 | m_log.WarnFormat("[RADMIN] Requested model ({0}) not found. Appearance unchanged", model); | 1511 | m_log.WarnFormat("[RADMIN] Requested model ({0}) not found. Appearance unchanged", model); |
1512 | return; | 1512 | return; |
@@ -1516,7 +1516,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1516 | // actual asset ids, however to complete the magic we need to populate the inventory with the | 1516 | // actual asset ids, however to complete the magic we need to populate the inventory with the |
1517 | // assets in question. | 1517 | // assets in question. |
1518 | 1518 | ||
1519 | establishAppearance(userid, mprof.PrincipalID); | 1519 | EstablishAppearance(userid, modelProfile.PrincipalID); |
1520 | 1520 | ||
1521 | m_log.DebugFormat("[RADMIN] Finished setting appearance for avatar {0}, using model {1}", | 1521 | m_log.DebugFormat("[RADMIN] Finished setting appearance for avatar {0}, using model {1}", |
1522 | userid, model); | 1522 | userid, model); |
@@ -1528,17 +1528,17 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1528 | /// is known to exist, as is the target avatar. | 1528 | /// is known to exist, as is the target avatar. |
1529 | /// </summary> | 1529 | /// </summary> |
1530 | 1530 | ||
1531 | private void establishAppearance(UUID dest, UUID srca) | 1531 | private void EstablishAppearance(UUID destination, UUID source) |
1532 | { | 1532 | { |
1533 | m_log.DebugFormat("[RADMIN] Initializing inventory for {0} from {1}", dest, srca); | 1533 | m_log.DebugFormat("[RADMIN] Initializing inventory for {0} from {1}", destination, source); |
1534 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 1534 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
1535 | AvatarAppearance ava = null; | 1535 | AvatarAppearance avatarAppearance = null; |
1536 | AvatarData avatar = scene.AvatarService.GetAvatar(srca); | 1536 | AvatarData avatar = scene.AvatarService.GetAvatar(source); |
1537 | if (avatar != null) | 1537 | if (avatar != null) |
1538 | ava = avatar.ToAvatarAppearance(srca); | 1538 | avatarAppearance = avatar.ToAvatarAppearance(source); |
1539 | 1539 | ||
1540 | // If the model has no associated appearance we're done. | 1540 | // If the model has no associated appearance we're done. |
1541 | if (ava == null) | 1541 | if (avatarAppearance == null) |
1542 | return; | 1542 | return; |
1543 | 1543 | ||
1544 | // Simple appearance copy or copy Clothing and Bodyparts folders? | 1544 | // Simple appearance copy or copy Clothing and Bodyparts folders? |
@@ -1549,15 +1549,15 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1549 | // Simple copy of wearables and appearance update | 1549 | // Simple copy of wearables and appearance update |
1550 | try | 1550 | try |
1551 | { | 1551 | { |
1552 | copyWearablesAndAttachments(dest, srca, ava); | 1552 | CopyWearablesAndAttachments(destination, source, avatarAppearance); |
1553 | 1553 | ||
1554 | AvatarData adata = new AvatarData(ava); | 1554 | AvatarData avatarData = new AvatarData(avatarAppearance); |
1555 | scene.AvatarService.SetAvatar(dest, adata); | 1555 | scene.AvatarService.SetAvatar(destination, avatarData); |
1556 | } | 1556 | } |
1557 | catch (Exception e) | 1557 | catch (Exception e) |
1558 | { | 1558 | { |
1559 | m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}", | 1559 | m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}", |
1560 | dest, e.Message); | 1560 | destination, e.Message); |
1561 | } | 1561 | } |
1562 | 1562 | ||
1563 | return; | 1563 | return; |
@@ -1566,30 +1566,30 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1566 | // Copy Clothing and Bodypart folders and appearance update | 1566 | // Copy Clothing and Bodypart folders and appearance update |
1567 | try | 1567 | try |
1568 | { | 1568 | { |
1569 | Dictionary<UUID,UUID> imap = new Dictionary<UUID,UUID>(); | 1569 | Dictionary<UUID,UUID> inventoryMap = new Dictionary<UUID,UUID>(); |
1570 | copyInventoryFolders(dest, srca, AssetType.Clothing, imap, ava); | 1570 | CopyInventoryFolders(destination, source, AssetType.Clothing, inventoryMap, avatarAppearance); |
1571 | copyInventoryFolders(dest, srca, AssetType.Bodypart, imap, ava); | 1571 | CopyInventoryFolders(destination, source, AssetType.Bodypart, inventoryMap, avatarAppearance); |
1572 | 1572 | ||
1573 | AvatarWearable[] wearables = ava.Wearables; | 1573 | AvatarWearable[] wearables = avatarAppearance.Wearables; |
1574 | 1574 | ||
1575 | for (int i=0; i<wearables.Length; i++) | 1575 | for (int i=0; i<wearables.Length; i++) |
1576 | { | 1576 | { |
1577 | if (imap.ContainsKey(wearables[i].ItemID)) | 1577 | if (inventoryMap.ContainsKey(wearables[i].ItemID)) |
1578 | { | 1578 | { |
1579 | AvatarWearable dw = new AvatarWearable(); | 1579 | AvatarWearable wearable = new AvatarWearable(); |
1580 | dw.AssetID = wearables[i].AssetID; | 1580 | wearable.AssetID = wearables[i].AssetID; |
1581 | dw.ItemID = imap[wearables[i].ItemID]; | 1581 | wearable.ItemID = inventoryMap[wearables[i].ItemID]; |
1582 | ava.SetWearable(i, dw); | 1582 | avatarAppearance.SetWearable(i, wearable); |
1583 | } | 1583 | } |
1584 | } | 1584 | } |
1585 | 1585 | ||
1586 | AvatarData adata = new AvatarData(ava); | 1586 | AvatarData avatarData = new AvatarData(avatarAppearance); |
1587 | scene.AvatarService.SetAvatar(dest, adata); | 1587 | scene.AvatarService.SetAvatar(destination, avatarData); |
1588 | } | 1588 | } |
1589 | catch (Exception e) | 1589 | catch (Exception e) |
1590 | { | 1590 | { |
1591 | m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}", | 1591 | m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}", |
1592 | dest, e.Message); | 1592 | destination, e.Message); |
1593 | } | 1593 | } |
1594 | 1594 | ||
1595 | return; | 1595 | return; |
@@ -1601,32 +1601,33 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1601 | /// In parallel the avatar wearables and attachments are updated. | 1601 | /// In parallel the avatar wearables and attachments are updated. |
1602 | /// </summary> | 1602 | /// </summary> |
1603 | 1603 | ||
1604 | private void copyWearablesAndAttachments(UUID dest, UUID srca, AvatarAppearance ava) | 1604 | private void CopyWearablesAndAttachments(UUID destination, UUID source, AvatarAppearance avatarAppearance) |
1605 | { | 1605 | { |
1606 | IInventoryService iserv = m_app.SceneManager.CurrentOrFirstScene.InventoryService; | 1606 | IInventoryService inventoryService = m_application.SceneManager.CurrentOrFirstScene.InventoryService; |
1607 | 1607 | ||
1608 | // Get Clothing folder of receiver | 1608 | // Get Clothing folder of receiver |
1609 | InventoryFolderBase dstf = iserv.GetFolderForType(dest, AssetType.Clothing); | 1609 | InventoryFolderBase destinationFolder = inventoryService.GetFolderForType(destination, AssetType.Clothing); |
1610 | 1610 | ||
1611 | if (dstf == null) | 1611 | if (destinationFolder == null) |
1612 | throw new Exception("Cannot locate folder(s)"); | 1612 | throw new Exception("Cannot locate folder(s)"); |
1613 | 1613 | ||
1614 | // Missing destination folder? This should *never* be the case | 1614 | // Missing destination folder? This should *never* be the case |
1615 | if (dstf.Type != (short)AssetType.Clothing) | 1615 | if (destinationFolder.Type != (short)AssetType.Clothing) |
1616 | { | 1616 | { |
1617 | dstf = new InventoryFolderBase(); | 1617 | destinationFolder = new InventoryFolderBase(); |
1618 | dstf.ID = UUID.Random(); | 1618 | |
1619 | dstf.Name = "Clothing"; | 1619 | destinationFolder.ID = UUID.Random(); |
1620 | dstf.Owner = dest; | 1620 | destinationFolder.Name = "Clothing"; |
1621 | dstf.Type = (short)AssetType.Clothing; | 1621 | destinationFolder.Owner = destination; |
1622 | dstf.ParentID = iserv.GetRootFolder(dest).ID; | 1622 | destinationFolder.Type = (short)AssetType.Clothing; |
1623 | dstf.Version = 1; | 1623 | destinationFolder.ParentID = inventoryService.GetRootFolder(destination).ID; |
1624 | iserv.AddFolder(dstf); // store base record | 1624 | destinationFolder.Version = 1; |
1625 | m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", srca); | 1625 | inventoryService.AddFolder(destinationFolder); // store base record |
1626 | m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", source); | ||
1626 | } | 1627 | } |
1627 | 1628 | ||
1628 | // Wearables | 1629 | // Wearables |
1629 | AvatarWearable[] wearables = ava.Wearables; | 1630 | AvatarWearable[] wearables = avatarAppearance.Wearables; |
1630 | AvatarWearable wearable; | 1631 | AvatarWearable wearable; |
1631 | 1632 | ||
1632 | for (int i=0; i<wearables.Length; i++) | 1633 | for (int i=0; i<wearables.Length; i++) |
@@ -1635,95 +1636,95 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1635 | if (wearable.ItemID != UUID.Zero) | 1636 | if (wearable.ItemID != UUID.Zero) |
1636 | { | 1637 | { |
1637 | // Get inventory item and copy it | 1638 | // Get inventory item and copy it |
1638 | InventoryItemBase item = new InventoryItemBase(wearable.ItemID, srca); | 1639 | InventoryItemBase item = new InventoryItemBase(wearable.ItemID, source); |
1639 | item = iserv.GetItem(item); | 1640 | item = inventoryService.GetItem(item); |
1640 | 1641 | ||
1641 | if (item != null) | 1642 | if (item != null) |
1642 | { | 1643 | { |
1643 | InventoryItemBase dsti = new InventoryItemBase(UUID.Random(), dest); | 1644 | InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination); |
1644 | dsti.Name = item.Name; | 1645 | destinationItem.Name = item.Name; |
1645 | dsti.Description = item.Description; | 1646 | destinationItem.Description = item.Description; |
1646 | dsti.InvType = item.InvType; | 1647 | destinationItem.InvType = item.InvType; |
1647 | dsti.CreatorId = item.CreatorId; | 1648 | destinationItem.CreatorId = item.CreatorId; |
1648 | dsti.CreatorIdAsUuid = item.CreatorIdAsUuid; | 1649 | destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid; |
1649 | dsti.NextPermissions = item.NextPermissions; | 1650 | destinationItem.NextPermissions = item.NextPermissions; |
1650 | dsti.CurrentPermissions = item.CurrentPermissions; | 1651 | destinationItem.CurrentPermissions = item.CurrentPermissions; |
1651 | dsti.BasePermissions = item.BasePermissions; | 1652 | destinationItem.BasePermissions = item.BasePermissions; |
1652 | dsti.EveryOnePermissions = item.EveryOnePermissions; | 1653 | destinationItem.EveryOnePermissions = item.EveryOnePermissions; |
1653 | dsti.GroupPermissions = item.GroupPermissions; | 1654 | destinationItem.GroupPermissions = item.GroupPermissions; |
1654 | dsti.AssetType = item.AssetType; | 1655 | destinationItem.AssetType = item.AssetType; |
1655 | dsti.AssetID = item.AssetID; | 1656 | destinationItem.AssetID = item.AssetID; |
1656 | dsti.GroupID = item.GroupID; | 1657 | destinationItem.GroupID = item.GroupID; |
1657 | dsti.GroupOwned = item.GroupOwned; | 1658 | destinationItem.GroupOwned = item.GroupOwned; |
1658 | dsti.SalePrice = item.SalePrice; | 1659 | destinationItem.SalePrice = item.SalePrice; |
1659 | dsti.SaleType = item.SaleType; | 1660 | destinationItem.SaleType = item.SaleType; |
1660 | dsti.Flags = item.Flags; | 1661 | destinationItem.Flags = item.Flags; |
1661 | dsti.CreationDate = item.CreationDate; | 1662 | destinationItem.CreationDate = item.CreationDate; |
1662 | dsti.Folder = dstf.ID; | 1663 | destinationItem.Folder = destinationFolder.ID; |
1663 | 1664 | ||
1664 | iserv.AddItem(dsti); | 1665 | inventoryService.AddItem(destinationItem); |
1665 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", dsti.ID, dstf.ID); | 1666 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", destinationItem.ID, destinationFolder.ID); |
1666 | 1667 | ||
1667 | // Wear item | 1668 | // Wear item |
1668 | AvatarWearable dw = new AvatarWearable(); | 1669 | AvatarWearable newWearable = new AvatarWearable(); |
1669 | dw.AssetID = wearable.AssetID; | 1670 | newWearable.AssetID = wearable.AssetID; |
1670 | dw.ItemID = dsti.ID; | 1671 | newWearable.ItemID = destinationItem.ID; |
1671 | ava.SetWearable(i, dw); | 1672 | avatarAppearance.SetWearable(i, newWearable); |
1672 | } | 1673 | } |
1673 | else | 1674 | else |
1674 | { | 1675 | { |
1675 | m_log.WarnFormat("[RADMIN] Error transferring {0} to folder {1}", wearable.ItemID, dstf.ID); | 1676 | m_log.WarnFormat("[RADMIN] Error transferring {0} to folder {1}", wearable.ItemID, destinationFolder.ID); |
1676 | } | 1677 | } |
1677 | } | 1678 | } |
1678 | } | 1679 | } |
1679 | 1680 | ||
1680 | // Attachments | 1681 | // Attachments |
1681 | Dictionary<int, UUID[]> attachments = ava.GetAttachmentDictionary(); | 1682 | Dictionary<int, UUID[]> attachments = avatarAppearance.GetAttachmentDictionary(); |
1682 | 1683 | ||
1683 | foreach (KeyValuePair<int, UUID[]> kvp in attachments) | 1684 | foreach (KeyValuePair<int, UUID[]> attachment in attachments) |
1684 | { | 1685 | { |
1685 | int attachpoint = kvp.Key; | 1686 | int attachpoint = attachment.Key; |
1686 | UUID itemID = kvp.Value[0]; | 1687 | UUID itemID = attachment.Value[0]; |
1687 | 1688 | ||
1688 | if (itemID != UUID.Zero) | 1689 | if (itemID != UUID.Zero) |
1689 | { | 1690 | { |
1690 | // Get inventory item and copy it | 1691 | // Get inventory item and copy it |
1691 | InventoryItemBase item = new InventoryItemBase(itemID, srca); | 1692 | InventoryItemBase item = new InventoryItemBase(itemID, source); |
1692 | item = iserv.GetItem(item); | 1693 | item = inventoryService.GetItem(item); |
1693 | 1694 | ||
1694 | if (item != null) | 1695 | if (item != null) |
1695 | { | 1696 | { |
1696 | InventoryItemBase dsti = new InventoryItemBase(UUID.Random(), dest); | 1697 | InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination); |
1697 | dsti.Name = item.Name; | 1698 | destinationItem.Name = item.Name; |
1698 | dsti.Description = item.Description; | 1699 | destinationItem.Description = item.Description; |
1699 | dsti.InvType = item.InvType; | 1700 | destinationItem.InvType = item.InvType; |
1700 | dsti.CreatorId = item.CreatorId; | 1701 | destinationItem.CreatorId = item.CreatorId; |
1701 | dsti.CreatorIdAsUuid = item.CreatorIdAsUuid; | 1702 | destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid; |
1702 | dsti.NextPermissions = item.NextPermissions; | 1703 | destinationItem.NextPermissions = item.NextPermissions; |
1703 | dsti.CurrentPermissions = item.CurrentPermissions; | 1704 | destinationItem.CurrentPermissions = item.CurrentPermissions; |
1704 | dsti.BasePermissions = item.BasePermissions; | 1705 | destinationItem.BasePermissions = item.BasePermissions; |
1705 | dsti.EveryOnePermissions = item.EveryOnePermissions; | 1706 | destinationItem.EveryOnePermissions = item.EveryOnePermissions; |
1706 | dsti.GroupPermissions = item.GroupPermissions; | 1707 | destinationItem.GroupPermissions = item.GroupPermissions; |
1707 | dsti.AssetType = item.AssetType; | 1708 | destinationItem.AssetType = item.AssetType; |
1708 | dsti.AssetID = item.AssetID; | 1709 | destinationItem.AssetID = item.AssetID; |
1709 | dsti.GroupID = item.GroupID; | 1710 | destinationItem.GroupID = item.GroupID; |
1710 | dsti.GroupOwned = item.GroupOwned; | 1711 | destinationItem.GroupOwned = item.GroupOwned; |
1711 | dsti.SalePrice = item.SalePrice; | 1712 | destinationItem.SalePrice = item.SalePrice; |
1712 | dsti.SaleType = item.SaleType; | 1713 | destinationItem.SaleType = item.SaleType; |
1713 | dsti.Flags = item.Flags; | 1714 | destinationItem.Flags = item.Flags; |
1714 | dsti.CreationDate = item.CreationDate; | 1715 | destinationItem.CreationDate = item.CreationDate; |
1715 | dsti.Folder = dstf.ID; | 1716 | destinationItem.Folder = destinationFolder.ID; |
1716 | 1717 | ||
1717 | iserv.AddItem(dsti); | 1718 | inventoryService.AddItem(destinationItem); |
1718 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", dsti.ID, dstf.ID); | 1719 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", destinationItem.ID, destinationFolder.ID); |
1719 | 1720 | ||
1720 | // Attach item | 1721 | // Attach item |
1721 | ava.SetAttachment(attachpoint, dsti.ID, dsti.AssetID); | 1722 | avatarAppearance.SetAttachment(attachpoint, destinationItem.ID, destinationItem.AssetID); |
1722 | m_log.DebugFormat("[RADMIN] Attached {0}", dsti.ID); | 1723 | m_log.DebugFormat("[RADMIN] Attached {0}", destinationItem.ID); |
1723 | } | 1724 | } |
1724 | else | 1725 | else |
1725 | { | 1726 | { |
1726 | m_log.WarnFormat("[RADMIN] Error transferring {0} to folder {1}", itemID, dstf.ID); | 1727 | m_log.WarnFormat("[RADMIN] Error transferring {0} to folder {1}", itemID, destinationFolder.ID); |
1727 | } | 1728 | } |
1728 | } | 1729 | } |
1729 | } | 1730 | } |
@@ -1736,101 +1737,101 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1736 | /// copies of Clothing and Bodyparts inventory folders and attaches worn attachments | 1737 | /// copies of Clothing and Bodyparts inventory folders and attaches worn attachments |
1737 | /// </summary> | 1738 | /// </summary> |
1738 | 1739 | ||
1739 | private void copyInventoryFolders(UUID dest, UUID srca, AssetType assettype, Dictionary<UUID,UUID> imap, | 1740 | private void CopyInventoryFolders(UUID destination, UUID source, AssetType assetType, Dictionary<UUID,UUID> inventoryMap, |
1740 | AvatarAppearance ava) | 1741 | AvatarAppearance avatarAppearance) |
1741 | { | 1742 | { |
1742 | IInventoryService iserv = m_app.SceneManager.CurrentOrFirstScene.InventoryService; | 1743 | IInventoryService inventoryService = m_application.SceneManager.CurrentOrFirstScene.InventoryService; |
1743 | 1744 | ||
1744 | InventoryFolderBase srcf = iserv.GetFolderForType(srca, assettype); | 1745 | InventoryFolderBase sourceFolder = inventoryService.GetFolderForType(source, assetType); |
1745 | InventoryFolderBase dstf = iserv.GetFolderForType(dest, assettype); | 1746 | InventoryFolderBase destinationFolder = inventoryService.GetFolderForType(destination, assetType); |
1746 | 1747 | ||
1747 | if (srcf == null || dstf == null) | 1748 | if (sourceFolder == null || destinationFolder == null) |
1748 | throw new Exception("Cannot locate folder(s)"); | 1749 | throw new Exception("Cannot locate folder(s)"); |
1749 | 1750 | ||
1750 | // Missing source folder? This should *never* be the case | 1751 | // Missing source folder? This should *never* be the case |
1751 | if (srcf.Type != (short)assettype) | 1752 | if (sourceFolder.Type != (short)assetType) |
1752 | { | 1753 | { |
1753 | srcf = new InventoryFolderBase(); | 1754 | sourceFolder = new InventoryFolderBase(); |
1754 | srcf.ID = UUID.Random(); | 1755 | sourceFolder.ID = UUID.Random(); |
1755 | if (assettype == AssetType.Clothing) { | 1756 | if (assetType == AssetType.Clothing) { |
1756 | srcf.Name = "Clothing"; | 1757 | sourceFolder.Name = "Clothing"; |
1757 | } else { | 1758 | } else { |
1758 | srcf.Name = "Body Parts"; | 1759 | sourceFolder.Name = "Body Parts"; |
1759 | } | 1760 | } |
1760 | srcf.Owner = srca; | 1761 | sourceFolder.Owner = source; |
1761 | srcf.Type = (short)assettype; | 1762 | sourceFolder.Type = (short)assetType; |
1762 | srcf.ParentID = iserv.GetRootFolder(srca).ID; | 1763 | sourceFolder.ParentID = inventoryService.GetRootFolder(source).ID; |
1763 | srcf.Version = 1; | 1764 | sourceFolder.Version = 1; |
1764 | iserv.AddFolder(srcf); // store base record | 1765 | inventoryService.AddFolder(sourceFolder); // store base record |
1765 | m_log.ErrorFormat("[RADMIN] Created folder for source {0}", srca); | 1766 | m_log.ErrorFormat("[RADMIN] Created folder for source {0}", source); |
1766 | } | 1767 | } |
1767 | 1768 | ||
1768 | // Missing destination folder? This should *never* be the case | 1769 | // Missing destination folder? This should *never* be the case |
1769 | if (dstf.Type != (short)assettype) | 1770 | if (destinationFolder.Type != (short)assetType) |
1770 | { | 1771 | { |
1771 | dstf = new InventoryFolderBase(); | 1772 | destinationFolder = new InventoryFolderBase(); |
1772 | dstf.ID = UUID.Random(); | 1773 | destinationFolder.ID = UUID.Random(); |
1773 | dstf.Name = assettype.ToString(); | 1774 | destinationFolder.Name = assetType.ToString(); |
1774 | dstf.Owner = dest; | 1775 | destinationFolder.Owner = destination; |
1775 | dstf.Type = (short)assettype; | 1776 | destinationFolder.Type = (short)assetType; |
1776 | dstf.ParentID = iserv.GetRootFolder(dest).ID; | 1777 | destinationFolder.ParentID = inventoryService.GetRootFolder(destination).ID; |
1777 | dstf.Version = 1; | 1778 | destinationFolder.Version = 1; |
1778 | iserv.AddFolder(dstf); // store base record | 1779 | inventoryService.AddFolder(destinationFolder); // store base record |
1779 | m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", srca); | 1780 | m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", source); |
1780 | } | 1781 | } |
1781 | 1782 | ||
1782 | InventoryFolderBase efolder; | 1783 | InventoryFolderBase extraFolder; |
1783 | List<InventoryFolderBase> folders = iserv.GetFolderContent(srca, srcf.ID).Folders; | 1784 | List<InventoryFolderBase> folders = inventoryService.GetFolderContent(source, sourceFolder.ID).Folders; |
1784 | 1785 | ||
1785 | foreach (InventoryFolderBase folder in folders) | 1786 | foreach (InventoryFolderBase folder in folders) |
1786 | { | 1787 | { |
1787 | 1788 | ||
1788 | efolder = new InventoryFolderBase(); | 1789 | extraFolder = new InventoryFolderBase(); |
1789 | efolder.ID = UUID.Random(); | 1790 | extraFolder.ID = UUID.Random(); |
1790 | efolder.Name = folder.Name; | 1791 | extraFolder.Name = folder.Name; |
1791 | efolder.Owner = dest; | 1792 | extraFolder.Owner = destination; |
1792 | efolder.Type = folder.Type; | 1793 | extraFolder.Type = folder.Type; |
1793 | efolder.Version = folder.Version; | 1794 | extraFolder.Version = folder.Version; |
1794 | efolder.ParentID = dstf.ID; | 1795 | extraFolder.ParentID = destinationFolder.ID; |
1795 | iserv.AddFolder(efolder); | 1796 | inventoryService.AddFolder(extraFolder); |
1796 | 1797 | ||
1797 | m_log.DebugFormat("[RADMIN] Added folder {0} to folder {1}", efolder.ID, srcf.ID); | 1798 | m_log.DebugFormat("[RADMIN] Added folder {0} to folder {1}", extraFolder.ID, sourceFolder.ID); |
1798 | 1799 | ||
1799 | List<InventoryItemBase> items = iserv.GetFolderContent(srca, folder.ID).Items; | 1800 | List<InventoryItemBase> items = inventoryService.GetFolderContent(source, folder.ID).Items; |
1800 | 1801 | ||
1801 | foreach (InventoryItemBase item in items) | 1802 | foreach (InventoryItemBase item in items) |
1802 | { | 1803 | { |
1803 | InventoryItemBase dsti = new InventoryItemBase(UUID.Random(), dest); | 1804 | InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination); |
1804 | dsti.Name = item.Name; | 1805 | destinationItem.Name = item.Name; |
1805 | dsti.Description = item.Description; | 1806 | destinationItem.Description = item.Description; |
1806 | dsti.InvType = item.InvType; | 1807 | destinationItem.InvType = item.InvType; |
1807 | dsti.CreatorId = item.CreatorId; | 1808 | destinationItem.CreatorId = item.CreatorId; |
1808 | dsti.CreatorIdAsUuid = item.CreatorIdAsUuid; | 1809 | destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid; |
1809 | dsti.NextPermissions = item.NextPermissions; | 1810 | destinationItem.NextPermissions = item.NextPermissions; |
1810 | dsti.CurrentPermissions = item.CurrentPermissions; | 1811 | destinationItem.CurrentPermissions = item.CurrentPermissions; |
1811 | dsti.BasePermissions = item.BasePermissions; | 1812 | destinationItem.BasePermissions = item.BasePermissions; |
1812 | dsti.EveryOnePermissions = item.EveryOnePermissions; | 1813 | destinationItem.EveryOnePermissions = item.EveryOnePermissions; |
1813 | dsti.GroupPermissions = item.GroupPermissions; | 1814 | destinationItem.GroupPermissions = item.GroupPermissions; |
1814 | dsti.AssetType = item.AssetType; | 1815 | destinationItem.AssetType = item.AssetType; |
1815 | dsti.AssetID = item.AssetID; | 1816 | destinationItem.AssetID = item.AssetID; |
1816 | dsti.GroupID = item.GroupID; | 1817 | destinationItem.GroupID = item.GroupID; |
1817 | dsti.GroupOwned = item.GroupOwned; | 1818 | destinationItem.GroupOwned = item.GroupOwned; |
1818 | dsti.SalePrice = item.SalePrice; | 1819 | destinationItem.SalePrice = item.SalePrice; |
1819 | dsti.SaleType = item.SaleType; | 1820 | destinationItem.SaleType = item.SaleType; |
1820 | dsti.Flags = item.Flags; | 1821 | destinationItem.Flags = item.Flags; |
1821 | dsti.CreationDate = item.CreationDate; | 1822 | destinationItem.CreationDate = item.CreationDate; |
1822 | dsti.Folder = efolder.ID; | 1823 | destinationItem.Folder = extraFolder.ID; |
1823 | 1824 | ||
1824 | iserv.AddItem(dsti); | 1825 | inventoryService.AddItem(destinationItem); |
1825 | imap.Add(item.ID, dsti.ID); | 1826 | inventoryMap.Add(item.ID, destinationItem.ID); |
1826 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", dsti.ID, efolder.ID); | 1827 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", destinationItem.ID, extraFolder.ID); |
1827 | 1828 | ||
1828 | // Attach item, if original is attached | 1829 | // Attach item, if original is attached |
1829 | int attachpoint = ava.GetAttachpoint(item.ID); | 1830 | int attachpoint = avatarAppearance.GetAttachpoint(item.ID); |
1830 | if (attachpoint != 0) | 1831 | if (attachpoint != 0) |
1831 | { | 1832 | { |
1832 | ava.SetAttachment(attachpoint, dsti.ID, dsti.AssetID); | 1833 | avatarAppearance.SetAttachment(attachpoint, destinationItem.ID, destinationItem.AssetID); |
1833 | m_log.DebugFormat("[RADMIN] Attached {0}", dsti.ID); | 1834 | m_log.DebugFormat("[RADMIN] Attached {0}", destinationItem.ID); |
1834 | } | 1835 | } |
1835 | } | 1836 | } |
1836 | } | 1837 | } |
@@ -1846,63 +1847,63 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1846 | /// other outfits are provided to allow "real" avatars a way to easily change their outfits. | 1847 | /// other outfits are provided to allow "real" avatars a way to easily change their outfits. |
1847 | /// </summary> | 1848 | /// </summary> |
1848 | 1849 | ||
1849 | private bool createDefaultAvatars() | 1850 | private bool CreateDefaultAvatars() |
1850 | { | 1851 | { |
1851 | // Only load once | 1852 | // Only load once |
1852 | 1853 | ||
1853 | if (daload) | 1854 | if (m_defaultAvatarsLoaded) |
1854 | { | 1855 | { |
1855 | return false; | 1856 | return false; |
1856 | } | 1857 | } |
1857 | 1858 | ||
1858 | m_log.DebugFormat("[RADMIN] Creating default avatar entries"); | 1859 | m_log.DebugFormat("[RADMIN] Creating default avatar entries"); |
1859 | 1860 | ||
1860 | daload = true; | 1861 | m_defaultAvatarsLoaded = true; |
1861 | 1862 | ||
1862 | // Load processing starts here... | 1863 | // Load processing starts here... |
1863 | 1864 | ||
1864 | try | 1865 | try |
1865 | { | 1866 | { |
1866 | string dafn = null; | 1867 | string defaultAppearanceFileName = null; |
1867 | 1868 | ||
1868 | //m_config may be null if RemoteAdmin configuration secition is missing or disabled in OpenSim.ini | 1869 | //m_config may be null if RemoteAdmin configuration secition is missing or disabled in OpenSim.ini |
1869 | if (m_config != null) | 1870 | if (m_config != null) |
1870 | { | 1871 | { |
1871 | dafn = m_config.GetString("default_appearance", "default_appearance.xml"); | 1872 | defaultAppearanceFileName = m_config.GetString("default_appearance", "default_appearance.xml"); |
1872 | } | 1873 | } |
1873 | 1874 | ||
1874 | if (File.Exists(dafn)) | 1875 | if (File.Exists(defaultAppearanceFileName)) |
1875 | { | 1876 | { |
1876 | XmlDocument doc = new XmlDocument(); | 1877 | XmlDocument doc = new XmlDocument(); |
1877 | string name = "*unknown*"; | 1878 | string name = "*unknown*"; |
1878 | string email = "anon@anon"; | 1879 | string email = "anon@anon"; |
1879 | uint regX = 1000; | 1880 | uint regionXLocation = 1000; |
1880 | uint regY = 1000; | 1881 | uint regionYLocation = 1000; |
1881 | string passwd = UUID.Random().ToString(); // No requirement to sign-in. | 1882 | string password = UUID.Random().ToString(); // No requirement to sign-in. |
1882 | UUID ID = UUID.Zero; | 1883 | UUID ID = UUID.Zero; |
1883 | AvatarAppearance mava; | 1884 | AvatarAppearance avatarAppearance; |
1884 | XmlNodeList avatars; | 1885 | XmlNodeList avatars; |
1885 | XmlNodeList assets; | 1886 | XmlNodeList assets; |
1886 | XmlNode perms = null; | 1887 | XmlNode perms = null; |
1887 | bool include = false; | 1888 | bool include = false; |
1888 | bool select = false; | 1889 | bool select = false; |
1889 | 1890 | ||
1890 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 1891 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
1891 | IInventoryService iserv = scene.InventoryService; | 1892 | IInventoryService inventoryService = scene.InventoryService; |
1892 | IAssetService aserv = scene.AssetService; | 1893 | IAssetService assetService = scene.AssetService; |
1893 | 1894 | ||
1894 | doc.LoadXml(File.ReadAllText(dafn)); | 1895 | doc.LoadXml(File.ReadAllText(defaultAppearanceFileName)); |
1895 | 1896 | ||
1896 | // Load up any included assets. Duplicates will be ignored | 1897 | // Load up any included assets. Duplicates will be ignored |
1897 | assets = doc.GetElementsByTagName("RequiredAsset"); | 1898 | assets = doc.GetElementsByTagName("RequiredAsset"); |
1898 | foreach (XmlNode asset in assets) | 1899 | foreach (XmlNode assetNode in assets) |
1899 | { | 1900 | { |
1900 | AssetBase rass = new AssetBase(UUID.Random(), GetStringAttribute(asset, "name", ""), SByte.Parse(GetStringAttribute(asset, "type", "")), UUID.Zero.ToString()); | 1901 | AssetBase asset = new AssetBase(UUID.Random(), GetStringAttribute(assetNode, "name", ""), SByte.Parse(GetStringAttribute(assetNode, "type", "")), UUID.Zero.ToString()); |
1901 | rass.Description = GetStringAttribute(asset,"desc",""); | 1902 | asset.Description = GetStringAttribute(assetNode,"desc",""); |
1902 | rass.Local = Boolean.Parse(GetStringAttribute(asset,"local","")); | 1903 | asset.Local = Boolean.Parse(GetStringAttribute(assetNode,"local","")); |
1903 | rass.Temporary = Boolean.Parse(GetStringAttribute(asset,"temporary","")); | 1904 | asset.Temporary = Boolean.Parse(GetStringAttribute(assetNode,"temporary","")); |
1904 | rass.Data = Convert.FromBase64String(asset.InnerText); | 1905 | asset.Data = Convert.FromBase64String(assetNode.InnerText); |
1905 | aserv.Store(rass); | 1906 | assetService.Store(asset); |
1906 | } | 1907 | } |
1907 | 1908 | ||
1908 | avatars = doc.GetElementsByTagName("Avatar"); | 1909 | avatars = doc.GetElementsByTagName("Avatar"); |
@@ -1921,19 +1922,19 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1921 | // Only the name value is mandatory | 1922 | // Only the name value is mandatory |
1922 | name = GetStringAttribute(avatar,"name",name); | 1923 | name = GetStringAttribute(avatar,"name",name); |
1923 | email = GetStringAttribute(avatar,"email",email); | 1924 | email = GetStringAttribute(avatar,"email",email); |
1924 | regX = GetUnsignedAttribute(avatar,"regx",regX); | 1925 | regionXLocation = GetUnsignedAttribute(avatar,"regx",regionXLocation); |
1925 | regY = GetUnsignedAttribute(avatar,"regy",regY); | 1926 | regionYLocation = GetUnsignedAttribute(avatar,"regy",regionYLocation); |
1926 | passwd = GetStringAttribute(avatar,"password",passwd); | 1927 | password = GetStringAttribute(avatar,"password",password); |
1927 | 1928 | ||
1928 | string[] nomens = name.Split(); | 1929 | string[] names = name.Split(); |
1929 | UUID scopeID = scene.RegionInfo.ScopeID; | 1930 | UUID scopeID = scene.RegionInfo.ScopeID; |
1930 | UserAccount account = scene.UserAccountService.GetUserAccount(scopeID, nomens[0], nomens[1]); | 1931 | UserAccount account = scene.UserAccountService.GetUserAccount(scopeID, names[0], names[1]); |
1931 | if (null == account) | 1932 | if (null == account) |
1932 | { | 1933 | { |
1933 | account = CreateUser(scopeID, nomens[0], nomens[1], passwd, email); | 1934 | account = CreateUser(scopeID, names[0], names[1], password, email); |
1934 | if (null == account) | 1935 | if (null == account) |
1935 | { | 1936 | { |
1936 | m_log.ErrorFormat("[RADMIN] Avatar {0} {1} was not created", nomens[0], nomens[1]); | 1937 | m_log.ErrorFormat("[RADMIN] Avatar {0} {1} was not created", names[0], names[1]); |
1937 | return false; | 1938 | return false; |
1938 | } | 1939 | } |
1939 | } | 1940 | } |
@@ -1941,12 +1942,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1941 | // Set home position | 1942 | // Set home position |
1942 | 1943 | ||
1943 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, | 1944 | GridRegion home = scene.GridService.GetRegionByPosition(scopeID, |
1944 | (int)(regX * Constants.RegionSize), (int)(regY * Constants.RegionSize)); | 1945 | (int)(regionXLocation * Constants.RegionSize), (int)(regionYLocation * Constants.RegionSize)); |
1945 | if (null == home) { | 1946 | if (null == home) { |
1946 | m_log.WarnFormat("[RADMIN]: Unable to set home region for newly created user account {0} {1}", nomens[0], nomens[1]); | 1947 | m_log.WarnFormat("[RADMIN]: Unable to set home region for newly created user account {0} {1}", names[0], names[1]); |
1947 | } else { | 1948 | } else { |
1948 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); | 1949 | scene.GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); |
1949 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, nomens[0], nomens[1]); | 1950 | m_log.DebugFormat("[RADMIN]: Set home region {0} for updated user account {1} {2}", home.RegionID, names[0], names[1]); |
1950 | } | 1951 | } |
1951 | 1952 | ||
1952 | ID = account.PrincipalID; | 1953 | ID = account.PrincipalID; |
@@ -1968,13 +1969,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1968 | if (include) | 1969 | if (include) |
1969 | { | 1970 | { |
1970 | // Setup for appearance processing | 1971 | // Setup for appearance processing |
1971 | AvatarData adata = scene.AvatarService.GetAvatar(ID); | 1972 | AvatarData avatarData = scene.AvatarService.GetAvatar(ID); |
1972 | if (adata != null) | 1973 | if (avatarData != null) |
1973 | mava = adata.ToAvatarAppearance(ID); | 1974 | avatarAppearance = avatarData.ToAvatarAppearance(ID); |
1974 | else | 1975 | else |
1975 | mava = new AvatarAppearance(); | 1976 | avatarAppearance = new AvatarAppearance(); |
1976 | 1977 | ||
1977 | AvatarWearable[] wearables = mava.Wearables; | 1978 | AvatarWearable[] wearables = avatarAppearance.Wearables; |
1978 | for (int i=0; i<wearables.Length; i++) | 1979 | for (int i=0; i<wearables.Length; i++) |
1979 | { | 1980 | { |
1980 | wearables[i] = new AvatarWearable(); | 1981 | wearables[i] = new AvatarWearable(); |
@@ -1985,19 +1986,19 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1985 | // m_log.DebugFormat("[RADMIN] {0} folders, {1} items in inventory", | 1986 | // m_log.DebugFormat("[RADMIN] {0} folders, {1} items in inventory", |
1986 | // uic.folders.Count, uic.items.Count); | 1987 | // uic.folders.Count, uic.items.Count); |
1987 | 1988 | ||
1988 | InventoryFolderBase cfolder = iserv.GetFolderForType(ID, AssetType.Clothing); | 1989 | InventoryFolderBase clothingFolder = inventoryService.GetFolderForType(ID, AssetType.Clothing); |
1989 | 1990 | ||
1990 | // This should *never* be the case | 1991 | // This should *never* be the case |
1991 | if (cfolder == null || cfolder.Type != (short)AssetType.Clothing) | 1992 | if (clothingFolder == null || clothingFolder.Type != (short)AssetType.Clothing) |
1992 | { | 1993 | { |
1993 | cfolder = new InventoryFolderBase(); | 1994 | clothingFolder = new InventoryFolderBase(); |
1994 | cfolder.ID = UUID.Random(); | 1995 | clothingFolder.ID = UUID.Random(); |
1995 | cfolder.Name = "Clothing"; | 1996 | clothingFolder.Name = "Clothing"; |
1996 | cfolder.Owner = ID; | 1997 | clothingFolder.Owner = ID; |
1997 | cfolder.Type = (short)AssetType.Clothing; | 1998 | clothingFolder.Type = (short)AssetType.Clothing; |
1998 | cfolder.ParentID = iserv.GetRootFolder(ID).ID; | 1999 | clothingFolder.ParentID = inventoryService.GetRootFolder(ID).ID; |
1999 | cfolder.Version = 1; | 2000 | clothingFolder.Version = 1; |
2000 | iserv.AddFolder(cfolder); // store base record | 2001 | inventoryService.AddFolder(clothingFolder); // store base record |
2001 | m_log.ErrorFormat("[RADMIN] Created clothing folder for {0}/{1}", name, ID); | 2002 | m_log.ErrorFormat("[RADMIN] Created clothing folder for {0}/{1}", name, ID); |
2002 | } | 2003 | } |
2003 | 2004 | ||
@@ -2005,8 +2006,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2005 | // default appearance XMl file. | 2006 | // default appearance XMl file. |
2006 | 2007 | ||
2007 | XmlNodeList outfits = avatar.GetElementsByTagName("Ensemble"); | 2008 | XmlNodeList outfits = avatar.GetElementsByTagName("Ensemble"); |
2008 | InventoryFolderBase efolder; | 2009 | InventoryFolderBase extraFolder; |
2009 | string oname; | 2010 | string outfitName; |
2010 | UUID assetid; | 2011 | UUID assetid; |
2011 | 2012 | ||
2012 | foreach (XmlElement outfit in outfits) | 2013 | foreach (XmlElement outfit in outfits) |
@@ -2014,37 +2015,37 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2014 | m_log.DebugFormat("[RADMIN] Loading outfit {0} for {1}", | 2015 | m_log.DebugFormat("[RADMIN] Loading outfit {0} for {1}", |
2015 | GetStringAttribute(outfit,"name","?"), GetStringAttribute(avatar,"name","?")); | 2016 | GetStringAttribute(outfit,"name","?"), GetStringAttribute(avatar,"name","?")); |
2016 | 2017 | ||
2017 | oname = GetStringAttribute(outfit,"name",""); | 2018 | outfitName = GetStringAttribute(outfit,"name",""); |
2018 | select = (GetStringAttribute(outfit,"default","no") == "yes"); | 2019 | select = (GetStringAttribute(outfit,"default","no") == "yes"); |
2019 | 2020 | ||
2020 | // If the folder already exists, re-use it. The defaults may | 2021 | // If the folder already exists, re-use it. The defaults may |
2021 | // change over time. Augment only. | 2022 | // change over time. Augment only. |
2022 | 2023 | ||
2023 | List<InventoryFolderBase> folders = iserv.GetFolderContent(ID, cfolder.ID).Folders; | 2024 | List<InventoryFolderBase> folders = inventoryService.GetFolderContent(ID, clothingFolder.ID).Folders; |
2024 | efolder = null; | 2025 | extraFolder = null; |
2025 | 2026 | ||
2026 | foreach (InventoryFolderBase folder in folders) | 2027 | foreach (InventoryFolderBase folder in folders) |
2027 | { | 2028 | { |
2028 | if (folder.Name == oname) | 2029 | if (folder.Name == outfitName) |
2029 | { | 2030 | { |
2030 | efolder = folder; | 2031 | extraFolder = folder; |
2031 | break; | 2032 | break; |
2032 | } | 2033 | } |
2033 | } | 2034 | } |
2034 | 2035 | ||
2035 | // Otherwise, we must create the folder. | 2036 | // Otherwise, we must create the folder. |
2036 | if (efolder == null) | 2037 | if (extraFolder == null) |
2037 | { | 2038 | { |
2038 | m_log.DebugFormat("[RADMIN] Creating outfit folder {0} for {1}", oname, name); | 2039 | m_log.DebugFormat("[RADMIN] Creating outfit folder {0} for {1}", outfitName, name); |
2039 | efolder = new InventoryFolderBase(); | 2040 | extraFolder = new InventoryFolderBase(); |
2040 | efolder.ID = UUID.Random(); | 2041 | extraFolder.ID = UUID.Random(); |
2041 | efolder.Name = oname; | 2042 | extraFolder.Name = outfitName; |
2042 | efolder.Owner = ID; | 2043 | extraFolder.Owner = ID; |
2043 | efolder.Type = (short)AssetType.Clothing; | 2044 | extraFolder.Type = (short)AssetType.Clothing; |
2044 | efolder.Version = 1; | 2045 | extraFolder.Version = 1; |
2045 | efolder.ParentID = cfolder.ID; | 2046 | extraFolder.ParentID = clothingFolder.ID; |
2046 | iserv.AddFolder(efolder); | 2047 | inventoryService.AddFolder(extraFolder); |
2047 | m_log.DebugFormat("[RADMIN] Adding outfile folder {0} to folder {1}", efolder.ID, cfolder.ID); | 2048 | m_log.DebugFormat("[RADMIN] Adding outfile folder {0} to folder {1}", extraFolder.ID, clothingFolder.ID); |
2048 | } | 2049 | } |
2049 | 2050 | ||
2050 | // Now get the pieces that make up the outfit | 2051 | // Now get the pieces that make up the outfit |
@@ -2068,55 +2069,55 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2068 | } | 2069 | } |
2069 | } | 2070 | } |
2070 | 2071 | ||
2071 | InventoryItemBase iitem = null; | 2072 | InventoryItemBase inventoryItem = null; |
2072 | 2073 | ||
2073 | // Check if asset is in inventory already | 2074 | // Check if asset is in inventory already |
2074 | iitem = null; | 2075 | inventoryItem = null; |
2075 | List<InventoryItemBase> iitems = iserv.GetFolderContent(ID, efolder.ID).Items; | 2076 | List<InventoryItemBase> inventoryItems = inventoryService.GetFolderContent(ID, extraFolder.ID).Items; |
2076 | 2077 | ||
2077 | foreach (InventoryItemBase litem in iitems) | 2078 | foreach (InventoryItemBase listItem in inventoryItems) |
2078 | { | 2079 | { |
2079 | if (litem.AssetID == assetid) | 2080 | if (listItem.AssetID == assetid) |
2080 | { | 2081 | { |
2081 | iitem = litem; | 2082 | inventoryItem = listItem; |
2082 | break; | 2083 | break; |
2083 | } | 2084 | } |
2084 | } | 2085 | } |
2085 | 2086 | ||
2086 | // Create inventory item | 2087 | // Create inventory item |
2087 | if (iitem == null) | 2088 | if (inventoryItem == null) |
2088 | { | 2089 | { |
2089 | iitem = new InventoryItemBase(UUID.Random(), ID); | 2090 | inventoryItem = new InventoryItemBase(UUID.Random(), ID); |
2090 | iitem.Name = GetStringAttribute(item,"name",""); | 2091 | inventoryItem.Name = GetStringAttribute(item,"name",""); |
2091 | iitem.Description = GetStringAttribute(item,"desc",""); | 2092 | inventoryItem.Description = GetStringAttribute(item,"desc",""); |
2092 | iitem.InvType = GetIntegerAttribute(item,"invtype",-1); | 2093 | inventoryItem.InvType = GetIntegerAttribute(item,"invtype",-1); |
2093 | iitem.CreatorId = GetStringAttribute(item,"creatorid",""); | 2094 | inventoryItem.CreatorId = GetStringAttribute(item,"creatorid",""); |
2094 | iitem.CreatorIdAsUuid = (UUID)GetStringAttribute(item,"creatoruuid",""); | 2095 | inventoryItem.CreatorIdAsUuid = (UUID)GetStringAttribute(item,"creatoruuid",""); |
2095 | iitem.NextPermissions = GetUnsignedAttribute(perms,"next",0x7fffffff); | 2096 | inventoryItem.NextPermissions = GetUnsignedAttribute(perms,"next",0x7fffffff); |
2096 | iitem.CurrentPermissions = GetUnsignedAttribute(perms,"current",0x7fffffff); | 2097 | inventoryItem.CurrentPermissions = GetUnsignedAttribute(perms,"current",0x7fffffff); |
2097 | iitem.BasePermissions = GetUnsignedAttribute(perms,"base",0x7fffffff); | 2098 | inventoryItem.BasePermissions = GetUnsignedAttribute(perms,"base",0x7fffffff); |
2098 | iitem.EveryOnePermissions = GetUnsignedAttribute(perms,"everyone",0x7fffffff); | 2099 | inventoryItem.EveryOnePermissions = GetUnsignedAttribute(perms,"everyone",0x7fffffff); |
2099 | iitem.GroupPermissions = GetUnsignedAttribute(perms,"group",0x7fffffff); | 2100 | inventoryItem.GroupPermissions = GetUnsignedAttribute(perms,"group",0x7fffffff); |
2100 | iitem.AssetType = GetIntegerAttribute(item,"assettype",-1); | 2101 | inventoryItem.AssetType = GetIntegerAttribute(item,"assettype",-1); |
2101 | iitem.AssetID = assetid; // associated asset | 2102 | inventoryItem.AssetID = assetid; // associated asset |
2102 | iitem.GroupID = (UUID)GetStringAttribute(item,"groupid",""); | 2103 | inventoryItem.GroupID = (UUID)GetStringAttribute(item,"groupid",""); |
2103 | iitem.GroupOwned = (GetStringAttribute(item,"groupowned","false") == "true"); | 2104 | inventoryItem.GroupOwned = (GetStringAttribute(item,"groupowned","false") == "true"); |
2104 | iitem.SalePrice = GetIntegerAttribute(item,"saleprice",0); | 2105 | inventoryItem.SalePrice = GetIntegerAttribute(item,"saleprice",0); |
2105 | iitem.SaleType = (byte)GetIntegerAttribute(item,"saletype",0); | 2106 | inventoryItem.SaleType = (byte)GetIntegerAttribute(item,"saletype",0); |
2106 | iitem.Flags = GetUnsignedAttribute(item,"flags",0); | 2107 | inventoryItem.Flags = GetUnsignedAttribute(item,"flags",0); |
2107 | iitem.CreationDate = GetIntegerAttribute(item,"creationdate",Util.UnixTimeSinceEpoch()); | 2108 | inventoryItem.CreationDate = GetIntegerAttribute(item,"creationdate",Util.UnixTimeSinceEpoch()); |
2108 | iitem.Folder = efolder.ID; // Parent folder | 2109 | inventoryItem.Folder = extraFolder.ID; // Parent folder |
2109 | 2110 | ||
2110 | iserv.AddItem(iitem); | 2111 | inventoryService.AddItem(inventoryItem); |
2111 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", iitem.ID, efolder.ID); | 2112 | m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", inventoryItem.ID, extraFolder.ID); |
2112 | } | 2113 | } |
2113 | 2114 | ||
2114 | // Attach item, if attachpoint is specified | 2115 | // Attach item, if attachpoint is specified |
2115 | int attachpoint = GetIntegerAttribute(item,"attachpoint",0); | 2116 | int attachpoint = GetIntegerAttribute(item,"attachpoint",0); |
2116 | if (attachpoint != 0) | 2117 | if (attachpoint != 0) |
2117 | { | 2118 | { |
2118 | mava.SetAttachment(attachpoint, iitem.ID, iitem.AssetID); | 2119 | avatarAppearance.SetAttachment(attachpoint, inventoryItem.ID, inventoryItem.AssetID); |
2119 | m_log.DebugFormat("[RADMIN] Attached {0}", iitem.ID); | 2120 | m_log.DebugFormat("[RADMIN] Attached {0}", inventoryItem.ID); |
2120 | } | 2121 | } |
2121 | 2122 | ||
2122 | // Record whether or not the item is to be initially worn | 2123 | // Record whether or not the item is to be initially worn |
@@ -2124,20 +2125,20 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2124 | { | 2125 | { |
2125 | if (select && (GetStringAttribute(item, "wear", "false") == "true")) | 2126 | if (select && (GetStringAttribute(item, "wear", "false") == "true")) |
2126 | { | 2127 | { |
2127 | mava.Wearables[iitem.Flags].ItemID = iitem.ID; | 2128 | avatarAppearance.Wearables[inventoryItem.Flags].ItemID = inventoryItem.ID; |
2128 | mava.Wearables[iitem.Flags].AssetID = iitem.AssetID; | 2129 | avatarAppearance.Wearables[inventoryItem.Flags].AssetID = inventoryItem.AssetID; |
2129 | } | 2130 | } |
2130 | } | 2131 | } |
2131 | catch (Exception e) | 2132 | catch (Exception e) |
2132 | { | 2133 | { |
2133 | m_log.WarnFormat("[RADMIN] Error wearing item {0} : {1}", iitem.ID, e.Message); | 2134 | m_log.WarnFormat("[RADMIN] Error wearing item {0} : {1}", inventoryItem.ID, e.Message); |
2134 | } | 2135 | } |
2135 | } // foreach item in outfit | 2136 | } // foreach item in outfit |
2136 | m_log.DebugFormat("[RADMIN] Outfit {0} load completed", oname); | 2137 | m_log.DebugFormat("[RADMIN] Outfit {0} load completed", outfitName); |
2137 | } // foreach outfit | 2138 | } // foreach outfit |
2138 | m_log.DebugFormat("[RADMIN] Inventory update complete for {0}", name); | 2139 | m_log.DebugFormat("[RADMIN] Inventory update complete for {0}", name); |
2139 | AvatarData adata2 = new AvatarData(mava); | 2140 | AvatarData avatarData2 = new AvatarData(avatarAppearance); |
2140 | scene.AvatarService.SetAvatar(ID, adata2); | 2141 | scene.AvatarService.SetAvatar(ID, avatarData2); |
2141 | } | 2142 | } |
2142 | catch (Exception e) | 2143 | catch (Exception e) |
2143 | { | 2144 | { |
@@ -2204,19 +2205,19 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2204 | XmlRpcResponse response = new XmlRpcResponse(); | 2205 | XmlRpcResponse response = new XmlRpcResponse(); |
2205 | Hashtable responseData = new Hashtable(); | 2206 | Hashtable responseData = new Hashtable(); |
2206 | 2207 | ||
2207 | lock (rslock) | 2208 | lock (m_requestLock) |
2208 | { | 2209 | { |
2209 | try | 2210 | try |
2210 | { | 2211 | { |
2211 | Hashtable requestData = (Hashtable) request.Params[0]; | 2212 | Hashtable requestData = (Hashtable) request.Params[0]; |
2212 | 2213 | ||
2213 | // check completeness | 2214 | // check completeness |
2214 | foreach (string p in new string[] {"password", "filename"}) | 2215 | foreach (string parameter in new string[] {"password", "filename"}) |
2215 | { | 2216 | { |
2216 | if (!requestData.Contains(p)) | 2217 | if (!requestData.Contains(parameter)) |
2217 | throw new Exception(String.Format("missing parameter {0}", p)); | 2218 | throw new Exception(String.Format("missing parameter {0}", parameter)); |
2218 | if (String.IsNullOrEmpty((string) requestData[p])) | 2219 | if (String.IsNullOrEmpty((string) requestData[parameter])) |
2219 | throw new Exception(String.Format("parameter {0} is empty")); | 2220 | throw new Exception(String.Format("parameter {0} is empty", parameter)); |
2220 | } | 2221 | } |
2221 | 2222 | ||
2222 | // check password | 2223 | // check password |
@@ -2228,13 +2229,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2228 | if (requestData.Contains("region_uuid")) | 2229 | if (requestData.Contains("region_uuid")) |
2229 | { | 2230 | { |
2230 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2231 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2231 | if (!m_app.SceneManager.TryGetScene(region_uuid, out scene)) | 2232 | if (!m_application.SceneManager.TryGetScene(region_uuid, out scene)) |
2232 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2233 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2233 | } | 2234 | } |
2234 | else if (requestData.Contains("region_name")) | 2235 | else if (requestData.Contains("region_name")) |
2235 | { | 2236 | { |
2236 | string region_name = (string) requestData["region_name"]; | 2237 | string region_name = (string) requestData["region_name"]; |
2237 | if (!m_app.SceneManager.TryGetScene(region_name, out scene)) | 2238 | if (!m_application.SceneManager.TryGetScene(region_name, out scene)) |
2238 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2239 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2239 | } | 2240 | } |
2240 | else throw new Exception("neither region_name nor region_uuid given"); | 2241 | else throw new Exception("neither region_name nor region_uuid given"); |
@@ -2328,13 +2329,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2328 | if (requestData.Contains("region_uuid")) | 2329 | if (requestData.Contains("region_uuid")) |
2329 | { | 2330 | { |
2330 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2331 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2331 | if (!m_app.SceneManager.TryGetScene(region_uuid, out scene)) | 2332 | if (!m_application.SceneManager.TryGetScene(region_uuid, out scene)) |
2332 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2333 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2333 | } | 2334 | } |
2334 | else if (requestData.Contains("region_name")) | 2335 | else if (requestData.Contains("region_name")) |
2335 | { | 2336 | { |
2336 | string region_name = (string) requestData["region_name"]; | 2337 | string region_name = (string) requestData["region_name"]; |
2337 | if (!m_app.SceneManager.TryGetScene(region_name, out scene)) | 2338 | if (!m_application.SceneManager.TryGetScene(region_name, out scene)) |
2338 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2339 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2339 | } | 2340 | } |
2340 | else throw new Exception("neither region_name nor region_uuid given"); | 2341 | else throw new Exception("neither region_name nor region_uuid given"); |
@@ -2345,7 +2346,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2345 | { | 2346 | { |
2346 | scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted; | 2347 | scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted; |
2347 | archiver.ArchiveRegion(filename); | 2348 | archiver.ArchiveRegion(filename); |
2348 | lock (SOLock) Monitor.Wait(SOLock,5000); | 2349 | lock (m_saveOarLock) Monitor.Wait(m_saveOarLock,5000); |
2349 | scene.EventManager.OnOarFileSaved -= RemoteAdminOarSaveCompleted; | 2350 | scene.EventManager.OnOarFileSaved -= RemoteAdminOarSaveCompleted; |
2350 | } | 2351 | } |
2351 | else | 2352 | else |
@@ -2373,7 +2374,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2373 | private void RemoteAdminOarSaveCompleted(Guid uuid, string name) | 2374 | private void RemoteAdminOarSaveCompleted(Guid uuid, string name) |
2374 | { | 2375 | { |
2375 | m_log.DebugFormat("[RADMIN] File processing complete for {0}", name); | 2376 | m_log.DebugFormat("[RADMIN] File processing complete for {0}", name); |
2376 | lock (SOLock) Monitor.Pulse(SOLock); | 2377 | lock (m_saveOarLock) Monitor.Pulse(m_saveOarLock); |
2377 | } | 2378 | } |
2378 | 2379 | ||
2379 | public XmlRpcResponse XmlRpcLoadXMLMethod(XmlRpcRequest request, IPEndPoint remoteClient) | 2380 | public XmlRpcResponse XmlRpcLoadXMLMethod(XmlRpcRequest request, IPEndPoint remoteClient) |
@@ -2385,7 +2386,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2385 | XmlRpcResponse response = new XmlRpcResponse(); | 2386 | XmlRpcResponse response = new XmlRpcResponse(); |
2386 | Hashtable responseData = new Hashtable(); | 2387 | Hashtable responseData = new Hashtable(); |
2387 | 2388 | ||
2388 | lock (rslock) | 2389 | lock (m_requestLock) |
2389 | { | 2390 | { |
2390 | try | 2391 | try |
2391 | { | 2392 | { |
@@ -2408,14 +2409,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2408 | if (requestData.Contains("region_uuid")) | 2409 | if (requestData.Contains("region_uuid")) |
2409 | { | 2410 | { |
2410 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2411 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2411 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2412 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2412 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2413 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2413 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2414 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2414 | } | 2415 | } |
2415 | else if (requestData.Contains("region_name")) | 2416 | else if (requestData.Contains("region_name")) |
2416 | { | 2417 | { |
2417 | string region_name = (string) requestData["region_name"]; | 2418 | string region_name = (string) requestData["region_name"]; |
2418 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2419 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2419 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2420 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2420 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2421 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2421 | } | 2422 | } |
@@ -2432,11 +2433,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2432 | switch (xml_version) | 2433 | switch (xml_version) |
2433 | { | 2434 | { |
2434 | case "1": | 2435 | case "1": |
2435 | m_app.SceneManager.LoadCurrentSceneFromXml(filename, true, new Vector3(0, 0, 0)); | 2436 | m_application.SceneManager.LoadCurrentSceneFromXml(filename, true, new Vector3(0, 0, 0)); |
2436 | break; | 2437 | break; |
2437 | 2438 | ||
2438 | case "2": | 2439 | case "2": |
2439 | m_app.SceneManager.LoadCurrentSceneFromXml2(filename); | 2440 | m_application.SceneManager.LoadCurrentSceneFromXml2(filename); |
2440 | break; | 2441 | break; |
2441 | 2442 | ||
2442 | default: | 2443 | default: |
@@ -2493,14 +2494,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2493 | if (requestData.Contains("region_uuid")) | 2494 | if (requestData.Contains("region_uuid")) |
2494 | { | 2495 | { |
2495 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2496 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2496 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2497 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2497 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2498 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2498 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2499 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2499 | } | 2500 | } |
2500 | else if (requestData.Contains("region_name")) | 2501 | else if (requestData.Contains("region_name")) |
2501 | { | 2502 | { |
2502 | string region_name = (string) requestData["region_name"]; | 2503 | string region_name = (string) requestData["region_name"]; |
2503 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2504 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2504 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2505 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2505 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2506 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2506 | } | 2507 | } |
@@ -2517,11 +2518,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2517 | switch (xml_version) | 2518 | switch (xml_version) |
2518 | { | 2519 | { |
2519 | case "1": | 2520 | case "1": |
2520 | m_app.SceneManager.SaveCurrentSceneToXml(filename); | 2521 | m_application.SceneManager.SaveCurrentSceneToXml(filename); |
2521 | break; | 2522 | break; |
2522 | 2523 | ||
2523 | case "2": | 2524 | case "2": |
2524 | m_app.SceneManager.SaveCurrentSceneToXml2(filename); | 2525 | m_application.SceneManager.SaveCurrentSceneToXml2(filename); |
2525 | break; | 2526 | break; |
2526 | 2527 | ||
2527 | default: | 2528 | default: |
@@ -2572,21 +2573,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2572 | if (requestData.Contains("region_uuid")) | 2573 | if (requestData.Contains("region_uuid")) |
2573 | { | 2574 | { |
2574 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2575 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2575 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2576 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2576 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2577 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2577 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2578 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2578 | } | 2579 | } |
2579 | else if (requestData.Contains("region_name")) | 2580 | else if (requestData.Contains("region_name")) |
2580 | { | 2581 | { |
2581 | string region_name = (string) requestData["region_name"]; | 2582 | string region_name = (string) requestData["region_name"]; |
2582 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2583 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2583 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2584 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2584 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2585 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2585 | } | 2586 | } |
2586 | else throw new Exception("neither region_name nor region_uuid given"); | 2587 | else throw new Exception("neither region_name nor region_uuid given"); |
2587 | 2588 | ||
2588 | Scene s = m_app.SceneManager.CurrentScene; | 2589 | Scene scene = m_application.SceneManager.CurrentScene; |
2589 | int health = s.GetHealth(); | 2590 | int health = scene.GetHealth(); |
2590 | responseData["health"] = health; | 2591 | responseData["health"] = health; |
2591 | 2592 | ||
2592 | response.Value = responseData; | 2593 | response.Value = responseData; |
@@ -2669,23 +2670,23 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2669 | if (requestData.Contains("region_uuid")) | 2670 | if (requestData.Contains("region_uuid")) |
2670 | { | 2671 | { |
2671 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2672 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2672 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2673 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2673 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2674 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2674 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2675 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2675 | } | 2676 | } |
2676 | else if (requestData.Contains("region_name")) | 2677 | else if (requestData.Contains("region_name")) |
2677 | { | 2678 | { |
2678 | string region_name = (string) requestData["region_name"]; | 2679 | string region_name = (string) requestData["region_name"]; |
2679 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2680 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2680 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2681 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2681 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2682 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2682 | } | 2683 | } |
2683 | else throw new Exception("neither region_name nor region_uuid given"); | 2684 | else throw new Exception("neither region_name nor region_uuid given"); |
2684 | 2685 | ||
2685 | Scene s = m_app.SceneManager.CurrentScene; | 2686 | Scene scene = m_application.SceneManager.CurrentScene; |
2686 | s.RegionInfo.EstateSettings.EstateAccess = new UUID[]{}; | 2687 | scene.RegionInfo.EstateSettings.EstateAccess = new UUID[]{}; |
2687 | if (s.RegionInfo.Persistent) | 2688 | if (scene.RegionInfo.Persistent) |
2688 | s.RegionInfo.EstateSettings.Save(); | 2689 | scene.RegionInfo.EstateSettings.Save(); |
2689 | } | 2690 | } |
2690 | catch (Exception e) | 2691 | catch (Exception e) |
2691 | { | 2692 | { |
@@ -2726,26 +2727,26 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2726 | if (requestData.Contains("region_uuid")) | 2727 | if (requestData.Contains("region_uuid")) |
2727 | { | 2728 | { |
2728 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2729 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2729 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2730 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2730 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2731 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2731 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2732 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2732 | } | 2733 | } |
2733 | else if (requestData.Contains("region_name")) | 2734 | else if (requestData.Contains("region_name")) |
2734 | { | 2735 | { |
2735 | string region_name = (string) requestData["region_name"]; | 2736 | string region_name = (string) requestData["region_name"]; |
2736 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2737 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2737 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2738 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2738 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2739 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2739 | } | 2740 | } |
2740 | else throw new Exception("neither region_name nor region_uuid given"); | 2741 | else throw new Exception("neither region_name nor region_uuid given"); |
2741 | 2742 | ||
2742 | int addk = 0; | 2743 | int addedUsers = 0; |
2743 | 2744 | ||
2744 | if (requestData.Contains("users")) | 2745 | if (requestData.Contains("users")) |
2745 | { | 2746 | { |
2746 | UUID scopeID = m_app.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; | 2747 | UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; |
2747 | IUserAccountService userService = m_app.SceneManager.CurrentOrFirstScene.UserAccountService; | 2748 | IUserAccountService userService = m_application.SceneManager.CurrentOrFirstScene.UserAccountService; |
2748 | Scene s = m_app.SceneManager.CurrentScene; | 2749 | Scene scene = m_application.SceneManager.CurrentScene; |
2749 | Hashtable users = (Hashtable) requestData["users"]; | 2750 | Hashtable users = (Hashtable) requestData["users"]; |
2750 | List<UUID> uuids = new List<UUID>(); | 2751 | List<UUID> uuids = new List<UUID>(); |
2751 | foreach (string name in users.Values) | 2752 | foreach (string name in users.Values) |
@@ -2755,24 +2756,24 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2755 | if (account != null) | 2756 | if (account != null) |
2756 | { | 2757 | { |
2757 | uuids.Add(account.PrincipalID); | 2758 | uuids.Add(account.PrincipalID); |
2758 | m_log.DebugFormat("[RADMIN] adding \"{0}\" to ACL for \"{1}\"", name, s.RegionInfo.RegionName); | 2759 | m_log.DebugFormat("[RADMIN] adding \"{0}\" to ACL for \"{1}\"", name, scene.RegionInfo.RegionName); |
2759 | } | 2760 | } |
2760 | } | 2761 | } |
2761 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); | 2762 | List<UUID> accessControlList = new List<UUID>(scene.RegionInfo.EstateSettings.EstateAccess); |
2762 | foreach (UUID uuid in uuids) | 2763 | foreach (UUID uuid in uuids) |
2763 | { | 2764 | { |
2764 | if (!acl.Contains(uuid)) | 2765 | if (!accessControlList.Contains(uuid)) |
2765 | { | 2766 | { |
2766 | acl.Add(uuid); | 2767 | accessControlList.Add(uuid); |
2767 | addk++; | 2768 | addedUsers++; |
2768 | } | 2769 | } |
2769 | } | 2770 | } |
2770 | s.RegionInfo.EstateSettings.EstateAccess = acl.ToArray(); | 2771 | scene.RegionInfo.EstateSettings.EstateAccess = accessControlList.ToArray(); |
2771 | if (s.RegionInfo.Persistent) | 2772 | if (scene.RegionInfo.Persistent) |
2772 | s.RegionInfo.EstateSettings.Save(); | 2773 | scene.RegionInfo.EstateSettings.Save(); |
2773 | } | 2774 | } |
2774 | 2775 | ||
2775 | responseData["added"] = addk; | 2776 | responseData["added"] = addedUsers; |
2776 | } | 2777 | } |
2777 | catch (Exception e) | 2778 | catch (Exception e) |
2778 | { | 2779 | { |
@@ -2813,27 +2814,27 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2813 | if (requestData.Contains("region_uuid")) | 2814 | if (requestData.Contains("region_uuid")) |
2814 | { | 2815 | { |
2815 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2816 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2816 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2817 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2817 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2818 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2818 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2819 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2819 | } | 2820 | } |
2820 | else if (requestData.Contains("region_name")) | 2821 | else if (requestData.Contains("region_name")) |
2821 | { | 2822 | { |
2822 | string region_name = (string) requestData["region_name"]; | 2823 | string region_name = (string) requestData["region_name"]; |
2823 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2824 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2824 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2825 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2825 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2826 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2826 | } | 2827 | } |
2827 | else throw new Exception("neither region_name nor region_uuid given"); | 2828 | else throw new Exception("neither region_name nor region_uuid given"); |
2828 | 2829 | ||
2829 | int remk = 0; | 2830 | int removedUsers = 0; |
2830 | 2831 | ||
2831 | if (requestData.Contains("users")) | 2832 | if (requestData.Contains("users")) |
2832 | { | 2833 | { |
2833 | UUID scopeID = m_app.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; | 2834 | UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; |
2834 | IUserAccountService userService = m_app.SceneManager.CurrentOrFirstScene.UserAccountService; | 2835 | IUserAccountService userService = m_application.SceneManager.CurrentOrFirstScene.UserAccountService; |
2835 | //UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService; | 2836 | //UserProfileCacheService ups = m_application.CommunicationsManager.UserProfileCacheService; |
2836 | Scene s = m_app.SceneManager.CurrentScene; | 2837 | Scene scene = m_application.SceneManager.CurrentScene; |
2837 | Hashtable users = (Hashtable) requestData["users"]; | 2838 | Hashtable users = (Hashtable) requestData["users"]; |
2838 | List<UUID> uuids = new List<UUID>(); | 2839 | List<UUID> uuids = new List<UUID>(); |
2839 | foreach (string name in users.Values) | 2840 | foreach (string name in users.Values) |
@@ -2845,21 +2846,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2845 | uuids.Add(account.PrincipalID); | 2846 | uuids.Add(account.PrincipalID); |
2846 | } | 2847 | } |
2847 | } | 2848 | } |
2848 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); | 2849 | List<UUID> accessControlList = new List<UUID>(scene.RegionInfo.EstateSettings.EstateAccess); |
2849 | foreach (UUID uuid in uuids) | 2850 | foreach (UUID uuid in uuids) |
2850 | { | 2851 | { |
2851 | if (acl.Contains(uuid)) | 2852 | if (accessControlList.Contains(uuid)) |
2852 | { | 2853 | { |
2853 | acl.Remove(uuid); | 2854 | accessControlList.Remove(uuid); |
2854 | remk++; | 2855 | removedUsers++; |
2855 | } | 2856 | } |
2856 | } | 2857 | } |
2857 | s.RegionInfo.EstateSettings.EstateAccess = acl.ToArray(); | 2858 | scene.RegionInfo.EstateSettings.EstateAccess = accessControlList.ToArray(); |
2858 | if (s.RegionInfo.Persistent) | 2859 | if (scene.RegionInfo.Persistent) |
2859 | s.RegionInfo.EstateSettings.Save(); | 2860 | scene.RegionInfo.EstateSettings.Save(); |
2860 | } | 2861 | } |
2861 | 2862 | ||
2862 | responseData["removed"] = remk; | 2863 | responseData["removed"] = removedUsers; |
2863 | } | 2864 | } |
2864 | catch (Exception e) | 2865 | catch (Exception e) |
2865 | { | 2866 | { |
@@ -2900,27 +2901,27 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2900 | if (requestData.Contains("region_uuid")) | 2901 | if (requestData.Contains("region_uuid")) |
2901 | { | 2902 | { |
2902 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; | 2903 | UUID region_uuid = (UUID) (string) requestData["region_uuid"]; |
2903 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 2904 | if (!m_application.SceneManager.TrySetCurrentScene(region_uuid)) |
2904 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 2905 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); |
2905 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 2906 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
2906 | } | 2907 | } |
2907 | else if (requestData.Contains("region_name")) | 2908 | else if (requestData.Contains("region_name")) |
2908 | { | 2909 | { |
2909 | string region_name = (string) requestData["region_name"]; | 2910 | string region_name = (string) requestData["region_name"]; |
2910 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 2911 | if (!m_application.SceneManager.TrySetCurrentScene(region_name)) |
2911 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 2912 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
2912 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 2913 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
2913 | } | 2914 | } |
2914 | else throw new Exception("neither region_name nor region_uuid given"); | 2915 | else throw new Exception("neither region_name nor region_uuid given"); |
2915 | 2916 | ||
2916 | Scene s = m_app.SceneManager.CurrentScene; | 2917 | Scene scene = m_application.SceneManager.CurrentScene; |
2917 | UUID[] acl = s.RegionInfo.EstateSettings.EstateAccess; | 2918 | UUID[] accessControlList = scene.RegionInfo.EstateSettings.EstateAccess; |
2918 | Hashtable users = new Hashtable(); | 2919 | Hashtable users = new Hashtable(); |
2919 | 2920 | ||
2920 | foreach (UUID user in acl) | 2921 | foreach (UUID user in accessControlList) |
2921 | { | 2922 | { |
2922 | UUID scopeID = m_app.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; | 2923 | UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID; |
2923 | UserAccount account = m_app.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, user); | 2924 | UserAccount account = m_application.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, user); |
2924 | if (account != null) | 2925 | if (account != null) |
2925 | { | 2926 | { |
2926 | users[user.ToString()] = account.FirstName + " " + account.LastName; | 2927 | users[user.ToString()] = account.FirstName + " " + account.LastName; |
@@ -2945,29 +2946,29 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2945 | return response; | 2946 | return response; |
2946 | } | 2947 | } |
2947 | 2948 | ||
2948 | private static void checkStringParameters(XmlRpcRequest request, string[] param) | 2949 | private static void CheckStringParameters(XmlRpcRequest request, string[] param) |
2949 | { | 2950 | { |
2950 | Hashtable requestData = (Hashtable) request.Params[0]; | 2951 | Hashtable requestData = (Hashtable) request.Params[0]; |
2951 | foreach (string p in param) | 2952 | foreach (string parameter in param) |
2952 | { | 2953 | { |
2953 | if (!requestData.Contains(p)) | 2954 | if (!requestData.Contains(parameter)) |
2954 | throw new Exception(String.Format("missing string parameter {0}", p)); | 2955 | throw new Exception(String.Format("missing string parameter {0}", parameter)); |
2955 | if (String.IsNullOrEmpty((string) requestData[p])) | 2956 | if (String.IsNullOrEmpty((string) requestData[parameter])) |
2956 | throw new Exception(String.Format("parameter {0} is empty", p)); | 2957 | throw new Exception(String.Format("parameter {0} is empty", parameter)); |
2957 | } | 2958 | } |
2958 | } | 2959 | } |
2959 | 2960 | ||
2960 | private static void checkIntegerParams(XmlRpcRequest request, string[] param) | 2961 | private static void CheckIntegerParams(XmlRpcRequest request, string[] param) |
2961 | { | 2962 | { |
2962 | Hashtable requestData = (Hashtable) request.Params[0]; | 2963 | Hashtable requestData = (Hashtable) request.Params[0]; |
2963 | foreach (string p in param) | 2964 | foreach (string parameter in param) |
2964 | { | 2965 | { |
2965 | if (!requestData.Contains(p)) | 2966 | if (!requestData.Contains(parameter)) |
2966 | throw new Exception(String.Format("missing integer parameter {0}", p)); | 2967 | throw new Exception(String.Format("missing integer parameter {0}", parameter)); |
2967 | } | 2968 | } |
2968 | } | 2969 | } |
2969 | 2970 | ||
2970 | private bool getBoolean(Hashtable requestData, string tag, bool defv) | 2971 | private bool GetBoolean(Hashtable requestData, string tag, bool defaultValue) |
2971 | { | 2972 | { |
2972 | // If an access value has been provided, apply it. | 2973 | // If an access value has been provided, apply it. |
2973 | if (requestData.Contains(tag)) | 2974 | if (requestData.Contains(tag)) |
@@ -2983,29 +2984,29 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
2983 | case "0" : | 2984 | case "0" : |
2984 | return false; | 2985 | return false; |
2985 | default : | 2986 | default : |
2986 | return defv; | 2987 | return defaultValue; |
2987 | } | 2988 | } |
2988 | } | 2989 | } |
2989 | else | 2990 | else |
2990 | return defv; | 2991 | return defaultValue; |
2991 | } | 2992 | } |
2992 | 2993 | ||
2993 | private int GetIntegerAttribute(XmlNode node, string attr, int dv) | 2994 | private int GetIntegerAttribute(XmlNode node, string attribute, int defaultValue) |
2994 | { | 2995 | { |
2995 | try { return Convert.ToInt32(node.Attributes[attr].Value); } catch{} | 2996 | try { return Convert.ToInt32(node.Attributes[attribute].Value); } catch{} |
2996 | return dv; | 2997 | return defaultValue; |
2997 | } | 2998 | } |
2998 | 2999 | ||
2999 | private uint GetUnsignedAttribute(XmlNode node, string attr, uint dv) | 3000 | private uint GetUnsignedAttribute(XmlNode node, string attribute, uint defaultValue) |
3000 | { | 3001 | { |
3001 | try { return Convert.ToUInt32(node.Attributes[attr].Value); } catch{} | 3002 | try { return Convert.ToUInt32(node.Attributes[attribute].Value); } catch{} |
3002 | return dv; | 3003 | return defaultValue; |
3003 | } | 3004 | } |
3004 | 3005 | ||
3005 | private string GetStringAttribute(XmlNode node, string attr, string dv) | 3006 | private string GetStringAttribute(XmlNode node, string attribute, string defaultValue) |
3006 | { | 3007 | { |
3007 | try { return node.Attributes[attr].Value; } catch{} | 3008 | try { return node.Attributes[attribute].Value; } catch{} |
3008 | return dv; | 3009 | return defaultValue; |
3009 | } | 3010 | } |
3010 | 3011 | ||
3011 | public void Dispose() | 3012 | public void Dispose() |
@@ -3022,14 +3023,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
3022 | /// <param name="email"></param> | 3023 | /// <param name="email"></param> |
3023 | private UserAccount CreateUser(UUID scopeID, string firstName, string lastName, string password, string email) | 3024 | private UserAccount CreateUser(UUID scopeID, string firstName, string lastName, string password, string email) |
3024 | { | 3025 | { |
3025 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 3026 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
3026 | IUserAccountService m_UserAccountService = scene.UserAccountService; | 3027 | IUserAccountService userAccountService = scene.UserAccountService; |
3027 | IGridService m_GridService = scene.GridService; | 3028 | IGridService gridService = scene.GridService; |
3028 | IAuthenticationService m_AuthenticationService = scene.AuthenticationService; | 3029 | IAuthenticationService authenticationService = scene.AuthenticationService; |
3029 | IGridUserService m_GridUserService = scene.GridUserService; | 3030 | IGridUserService gridUserService = scene.GridUserService; |
3030 | IInventoryService m_InventoryService = scene.InventoryService; | 3031 | IInventoryService inventoryService = scene.InventoryService; |
3031 | 3032 | ||
3032 | UserAccount account = m_UserAccountService.GetUserAccount(scopeID, firstName, lastName); | 3033 | UserAccount account = userAccountService.GetUserAccount(scopeID, firstName, lastName); |
3033 | if (null == account) | 3034 | if (null == account) |
3034 | { | 3035 | { |
3035 | account = new UserAccount(scopeID, firstName, lastName, email); | 3036 | account = new UserAccount(scopeID, firstName, lastName, email); |
@@ -3042,26 +3043,26 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
3042 | account.ServiceURLs["AssetServerURI"] = string.Empty; | 3043 | account.ServiceURLs["AssetServerURI"] = string.Empty; |
3043 | } | 3044 | } |
3044 | 3045 | ||
3045 | if (m_UserAccountService.StoreUserAccount(account)) | 3046 | if (userAccountService.StoreUserAccount(account)) |
3046 | { | 3047 | { |
3047 | bool success; | 3048 | bool success; |
3048 | if (m_AuthenticationService != null) | 3049 | if (authenticationService != null) |
3049 | { | 3050 | { |
3050 | success = m_AuthenticationService.SetPassword(account.PrincipalID, password); | 3051 | success = authenticationService.SetPassword(account.PrincipalID, password); |
3051 | if (!success) | 3052 | if (!success) |
3052 | m_log.WarnFormat("[RADMIN]: Unable to set password for account {0} {1}.", | 3053 | m_log.WarnFormat("[RADMIN]: Unable to set password for account {0} {1}.", |
3053 | firstName, lastName); | 3054 | firstName, lastName); |
3054 | } | 3055 | } |
3055 | 3056 | ||
3056 | GridRegion home = null; | 3057 | GridRegion home = null; |
3057 | if (m_GridService != null) | 3058 | if (gridService != null) |
3058 | { | 3059 | { |
3059 | List<GridRegion> defaultRegions = m_GridService.GetDefaultRegions(UUID.Zero); | 3060 | List<GridRegion> defaultRegions = gridService.GetDefaultRegions(UUID.Zero); |
3060 | if (defaultRegions != null && defaultRegions.Count >= 1) | 3061 | if (defaultRegions != null && defaultRegions.Count >= 1) |
3061 | home = defaultRegions[0]; | 3062 | home = defaultRegions[0]; |
3062 | 3063 | ||
3063 | if (m_GridUserService != null && home != null) | 3064 | if (gridUserService != null && home != null) |
3064 | m_GridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); | 3065 | gridUserService.SetHome(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); |
3065 | else | 3066 | else |
3066 | m_log.WarnFormat("[RADMIN]: Unable to set home for account {0} {1}.", | 3067 | m_log.WarnFormat("[RADMIN]: Unable to set home for account {0} {1}.", |
3067 | firstName, lastName); | 3068 | firstName, lastName); |
@@ -3070,9 +3071,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
3070 | m_log.WarnFormat("[RADMIN]: Unable to retrieve home region for account {0} {1}.", | 3071 | m_log.WarnFormat("[RADMIN]: Unable to retrieve home region for account {0} {1}.", |
3071 | firstName, lastName); | 3072 | firstName, lastName); |
3072 | 3073 | ||
3073 | if (m_InventoryService != null) | 3074 | if (inventoryService != null) |
3074 | { | 3075 | { |
3075 | success = m_InventoryService.CreateUserInventory(account.PrincipalID); | 3076 | success = inventoryService.CreateUserInventory(account.PrincipalID); |
3076 | if (!success) | 3077 | if (!success) |
3077 | m_log.WarnFormat("[RADMIN]: Unable to create inventory for account {0} {1}.", | 3078 | m_log.WarnFormat("[RADMIN]: Unable to create inventory for account {0} {1}.", |
3078 | firstName, lastName); | 3079 | firstName, lastName); |
@@ -3099,16 +3100,16 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
3099 | /// <param name="password"></param> | 3100 | /// <param name="password"></param> |
3100 | private bool ChangeUserPassword(string firstName, string lastName, string password) | 3101 | private bool ChangeUserPassword(string firstName, string lastName, string password) |
3101 | { | 3102 | { |
3102 | Scene scene = m_app.SceneManager.CurrentOrFirstScene; | 3103 | Scene scene = m_application.SceneManager.CurrentOrFirstScene; |
3103 | IUserAccountService m_UserAccountService = scene.UserAccountService; | 3104 | IUserAccountService userAccountService = scene.UserAccountService; |
3104 | IAuthenticationService m_AuthenticationService = scene.AuthenticationService; | 3105 | IAuthenticationService authenticationService = scene.AuthenticationService; |
3105 | 3106 | ||
3106 | UserAccount account = m_UserAccountService.GetUserAccount(UUID.Zero, firstName, lastName); | 3107 | UserAccount account = userAccountService.GetUserAccount(UUID.Zero, firstName, lastName); |
3107 | if (null != account) | 3108 | if (null != account) |
3108 | { | 3109 | { |
3109 | bool success = false; | 3110 | bool success = false; |
3110 | if (m_AuthenticationService != null) | 3111 | if (authenticationService != null) |
3111 | success = m_AuthenticationService.SetPassword(account.PrincipalID, password); | 3112 | success = authenticationService.SetPassword(account.PrincipalID, password); |
3112 | if (!success) { | 3113 | if (!success) { |
3113 | m_log.WarnFormat("[RADMIN]: Unable to set password for account {0} {1}.", | 3114 | m_log.WarnFormat("[RADMIN]: Unable to set password for account {0} {1}.", |
3114 | firstName, lastName); | 3115 | firstName, lastName); |
diff --git a/OpenSim/Data/IRegionData.cs b/OpenSim/Data/IRegionData.cs index 8259f9b..42533c6 100644 --- a/OpenSim/Data/IRegionData.cs +++ b/OpenSim/Data/IRegionData.cs | |||
@@ -62,6 +62,7 @@ namespace OpenSim.Data | |||
62 | 62 | ||
63 | List<RegionData> GetDefaultRegions(UUID scopeID); | 63 | List<RegionData> GetDefaultRegions(UUID scopeID); |
64 | List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y); | 64 | List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y); |
65 | List<RegionData> GetHyperlinks(UUID scopeID); | ||
65 | } | 66 | } |
66 | 67 | ||
67 | [Flags] | 68 | [Flags] |
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs index 66c3f81..9656be1 100644 --- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs +++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs | |||
@@ -310,23 +310,23 @@ namespace OpenSim.Data.MSSQL | |||
310 | 310 | ||
311 | public List<RegionData> GetDefaultRegions(UUID scopeID) | 311 | public List<RegionData> GetDefaultRegions(UUID scopeID) |
312 | { | 312 | { |
313 | string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 1) <> 0"; | 313 | return Get((int)RegionFlags.DefaultRegion, scopeID); |
314 | if (scopeID != UUID.Zero) | ||
315 | sql += " AND ScopeID = @scopeID"; | ||
316 | |||
317 | using (SqlConnection conn = new SqlConnection(m_ConnectionString)) | ||
318 | using (SqlCommand cmd = new SqlCommand(sql, conn)) | ||
319 | { | ||
320 | cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); | ||
321 | conn.Open(); | ||
322 | return RunCommand(cmd); | ||
323 | } | ||
324 | |||
325 | } | 314 | } |
326 | 315 | ||
327 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) | 316 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) |
328 | { | 317 | { |
329 | string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & 2) <> 0"; | 318 | // TODO: distance-sort results |
319 | return Get((int)RegionFlags.FallbackRegion, scopeID); | ||
320 | } | ||
321 | |||
322 | public List<RegionData> GetHyperlinks(UUID scopeID) | ||
323 | { | ||
324 | return Get((int)RegionFlags.Hyperlink, scopeID); | ||
325 | } | ||
326 | |||
327 | private List<RegionData> Get(int regionFlags, UUID scopeID) | ||
328 | { | ||
329 | string sql = "SELECT * FROM [" + m_Realm + "] WHERE (flags & " + regionFlags.ToString() + ") <> 0"; | ||
330 | if (scopeID != UUID.Zero) | 330 | if (scopeID != UUID.Zero) |
331 | sql += " AND ScopeID = @scopeID"; | 331 | sql += " AND ScopeID = @scopeID"; |
332 | 332 | ||
@@ -335,7 +335,6 @@ namespace OpenSim.Data.MSSQL | |||
335 | { | 335 | { |
336 | cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); | 336 | cmd.Parameters.Add(m_database.CreateParameter("@scopeID", scopeID)); |
337 | conn.Open(); | 337 | conn.Open(); |
338 | // TODO: distance-sort results | ||
339 | return RunCommand(cmd); | 338 | return RunCommand(cmd); |
340 | } | 339 | } |
341 | } | 340 | } |
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index c7bddac..aec37e2 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs | |||
@@ -281,22 +281,26 @@ namespace OpenSim.Data.MySQL | |||
281 | 281 | ||
282 | return false; | 282 | return false; |
283 | } | 283 | } |
284 | |||
284 | public List<RegionData> GetDefaultRegions(UUID scopeID) | 285 | public List<RegionData> GetDefaultRegions(UUID scopeID) |
285 | { | 286 | { |
286 | string command = "select * from `"+m_Realm+"` where (flags & 1) <> 0"; | 287 | return Get((int)RegionFlags.DefaultRegion, scopeID); |
287 | if (scopeID != UUID.Zero) | 288 | } |
288 | command += " and ScopeID = ?scopeID"; | ||
289 | |||
290 | MySqlCommand cmd = new MySqlCommand(command); | ||
291 | 289 | ||
292 | cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); | 290 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) |
291 | { | ||
292 | // TODO: distance-sort results | ||
293 | return Get((int)RegionFlags.FallbackRegion, scopeID); | ||
294 | } | ||
293 | 295 | ||
294 | return RunCommand(cmd); | 296 | public List<RegionData> GetHyperlinks(UUID scopeID) |
297 | { | ||
298 | return Get((int)RegionFlags.Hyperlink, scopeID); | ||
295 | } | 299 | } |
296 | 300 | ||
297 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) | 301 | private List<RegionData> Get(int regionFlags, UUID scopeID) |
298 | { | 302 | { |
299 | string command = "select * from `"+m_Realm+"` where (flags & 2) <> 0"; | 303 | string command = "select * from `" + m_Realm + "` where (flags & " + regionFlags.ToString() + ") <> 0"; |
300 | if (scopeID != UUID.Zero) | 304 | if (scopeID != UUID.Zero) |
301 | command += " and ScopeID = ?scopeID"; | 305 | command += " and ScopeID = ?scopeID"; |
302 | 306 | ||
@@ -304,7 +308,6 @@ namespace OpenSim.Data.MySQL | |||
304 | 308 | ||
305 | cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); | 309 | cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); |
306 | 310 | ||
307 | // TODO: distance-sort results | ||
308 | return RunCommand(cmd); | 311 | return RunCommand(cmd); |
309 | } | 312 | } |
310 | } | 313 | } |
diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs index d596698..f276d10 100644 --- a/OpenSim/Data/Null/NullRegionData.cs +++ b/OpenSim/Data/Null/NullRegionData.cs | |||
@@ -164,30 +164,29 @@ namespace OpenSim.Data.Null | |||
164 | 164 | ||
165 | public List<RegionData> GetDefaultRegions(UUID scopeID) | 165 | public List<RegionData> GetDefaultRegions(UUID scopeID) |
166 | { | 166 | { |
167 | if (Instance != this) | 167 | return Get((int)RegionFlags.DefaultRegion, scopeID); |
168 | return Instance.GetDefaultRegions(scopeID); | 168 | } |
169 | |||
170 | List<RegionData> ret = new List<RegionData>(); | ||
171 | 169 | ||
172 | foreach (RegionData r in m_regionData.Values) | 170 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) |
173 | { | 171 | { |
174 | if ((Convert.ToInt32(r.Data["flags"]) & 1) != 0) | 172 | return Get((int)RegionFlags.FallbackRegion, scopeID); |
175 | ret.Add(r); | 173 | } |
176 | } | ||
177 | 174 | ||
178 | return ret; | 175 | public List<RegionData> GetHyperlinks(UUID scopeID) |
176 | { | ||
177 | return Get((int)RegionFlags.Hyperlink, scopeID); | ||
179 | } | 178 | } |
180 | 179 | ||
181 | public List<RegionData> GetFallbackRegions(UUID scopeID, int x, int y) | 180 | private List<RegionData> Get(int regionFlags, UUID scopeID) |
182 | { | 181 | { |
183 | if (Instance != this) | 182 | if (Instance != this) |
184 | return Instance.GetFallbackRegions(scopeID, x, y); | 183 | return Instance.Get(regionFlags, scopeID); |
185 | 184 | ||
186 | List<RegionData> ret = new List<RegionData>(); | 185 | List<RegionData> ret = new List<RegionData>(); |
187 | 186 | ||
188 | foreach (RegionData r in m_regionData.Values) | 187 | foreach (RegionData r in m_regionData.Values) |
189 | { | 188 | { |
190 | if ((Convert.ToInt32(r.Data["flags"]) & 2) != 0) | 189 | if ((Convert.ToInt32(r.Data["flags"]) & regionFlags) != 0) |
191 | ret.Add(r); | 190 | ret.Add(r); |
192 | } | 191 | } |
193 | 192 | ||
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs index 46d72dc..f49d86d 100644 --- a/OpenSim/Services/GridService/GridService.cs +++ b/OpenSim/Services/GridService/GridService.cs | |||
@@ -50,7 +50,7 @@ namespace OpenSim.Services.GridService | |||
50 | private bool m_DeleteOnUnregister = true; | 50 | private bool m_DeleteOnUnregister = true; |
51 | private static GridService m_RootInstance = null; | 51 | private static GridService m_RootInstance = null; |
52 | protected IConfigSource m_config; | 52 | protected IConfigSource m_config; |
53 | protected HypergridLinker m_HypergridLinker; | 53 | protected static HypergridLinker m_HypergridLinker; |
54 | 54 | ||
55 | protected IAuthenticationService m_AuthenticationService = null; | 55 | protected IAuthenticationService m_AuthenticationService = null; |
56 | protected bool m_AllowDuplicateNames = false; | 56 | protected bool m_AllowDuplicateNames = false; |
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index ae80a8c..1f53007 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs | |||
@@ -378,32 +378,31 @@ namespace OpenSim.Services.GridService | |||
378 | 378 | ||
379 | public void HandleShow(string module, string[] cmd) | 379 | public void HandleShow(string module, string[] cmd) |
380 | { | 380 | { |
381 | MainConsole.Instance.Output("Not Implemented Yet"); | 381 | if (cmd.Length != 2) |
382 | //if (cmd.Length != 2) | 382 | { |
383 | //{ | 383 | MainConsole.Instance.Output("Syntax: show hyperlinks"); |
384 | // MainConsole.Instance.Output("Syntax: show hyperlinks"); | 384 | return; |
385 | // return; | 385 | } |
386 | //} | 386 | List<RegionData> regions = m_Database.GetHyperlinks(UUID.Zero); |
387 | //List<GridRegion> regions = new List<GridRegion>(m_HypergridService.m_HyperlinkRegions.Values); | 387 | if (regions == null || regions.Count < 1) |
388 | //if (regions == null || regions.Count < 1) | 388 | { |
389 | //{ | 389 | MainConsole.Instance.Output("No hyperlinks"); |
390 | // MainConsole.Instance.Output("No hyperlinks"); | 390 | return; |
391 | // return; | 391 | } |
392 | //} | ||
393 | 392 | ||
394 | //MainConsole.Instance.Output("Region Name Region UUID"); | 393 | MainConsole.Instance.Output("Region Name Region UUID"); |
395 | //MainConsole.Instance.Output("Location URI"); | 394 | MainConsole.Instance.Output("Location URI"); |
396 | //MainConsole.Instance.Output("Owner ID "); | 395 | MainConsole.Instance.Output("-------------------------------------------------------------------------------"); |
397 | //MainConsole.Instance.Output("-------------------------------------------------------------------------------"); | 396 | foreach (RegionData r in regions) |
398 | //foreach (GridRegion r in regions) | 397 | { |
399 | //{ | 398 | MainConsole.Instance.Output(String.Format("{0,-39} {1}\n{2,-39} {3}\n", |
400 | // MainConsole.Instance.Output(String.Format("{0,-20} {1}\n{2,-20} {3}\n{4,-39} \n\n", | 399 | r.RegionName, r.RegionID, |
401 | // r.RegionName, r.RegionID, | 400 | String.Format("{0},{1} ({2},{3})", r.posX, r.posY, r.posX / 256, r.posY / 256), |
402 | // String.Format("{0},{1}", r.RegionLocX, r.RegionLocY), "http://" + r.ExternalHostName + ":" + r.HttpPort.ToString(), | 401 | "http://" + r.Data["serverIP"].ToString() + ":" + r.Data["serverHttpPort"].ToString())); |
403 | // r.EstateOwner.ToString())); | 402 | } |
404 | //} | 403 | return; |
405 | //return; | ||
406 | } | 404 | } |
405 | |||
407 | public void RunCommand(string module, string[] cmdparams) | 406 | public void RunCommand(string module, string[] cmdparams) |
408 | { | 407 | { |
409 | List<string> args = new List<string>(cmdparams); | 408 | List<string> args = new List<string>(cmdparams); |