From 3c90d834eac382af5edf091e83aea1ffcce91792 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 10 Jan 2010 22:41:42 +0000
Subject: Remove all references to master avatar, replacing with estate owner
 where appropriate. This changes the behavior of the REST plugins and
 RemoteAdmin's region creation process.

---
 .../RemoteController/RemoteAdminPlugin.cs          | 40 +--------
 .../Rest/Regions/GETRegionInfoHandler.cs           |  8 --
 .../Rest/Regions/RegionDetails.cs                  |  9 +-
 OpenSim/Client/MXP/ClientStack/MXPClientView.cs    |  2 +-
 .../Framework/Communications/Clients/GridClient.cs |  5 +-
 OpenSim/Framework/RegionInfo.cs                    | 96 ----------------------
 OpenSim/Region/Application/OpenSimBase.cs          | 29 -------
 .../Region/ClientStack/LindenUDP/LLClientView.cs   |  7 +-
 .../World/Archiver/ArchiveReadRequest.cs           | 16 ++--
 .../World/Estate/EstateManagementModule.cs         | 18 +---
 .../CoreModules/World/Land/LandManagementModule.cs | 15 +---
 .../World/Permissions/PermissionsModule.cs         |  6 --
 OpenSim/Region/DataSnapshot/EstateSnapshot.cs      |  4 +-
 OpenSim/Region/Framework/Scenes/Scene.Inventory.cs |  6 --
 .../OptionalModules/Avatar/Chat/RegionState.cs     |  4 -
 .../Scripting/Minimodule/MRMModule.cs              |  6 +-
 .../World/TreePopulator/TreePopulatorModule.cs     |  4 -
 OpenSim/Services/Interfaces/IGridService.cs        |  6 --
 bin/RegionConfig.ini.example                       | 11 ---
 19 files changed, 21 insertions(+), 271 deletions(-)

diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index a82d25a..0a7b990 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -584,45 +584,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
                     {
                         // ok, client wants us to use an explicit UUID
                         // regardless of what the avatar name provided
-                        userID = new UUID((string) requestData["region_master_uuid"]);
+                        userID = new UUID((string) requestData["estate_owner_uuid"]);
                     }
-                    else
-                    {
-                        if (masterFirst != String.Empty && masterLast != String.Empty) // User requests a master avatar
-                        {
-                            // no client supplied UUID: look it up...
-                            UUID scopeID = m_app.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID;
-                            UserAccount account = m_app.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, masterFirst, masterLast);
-                            if (null == account)
-                            {
-                                m_log.InfoFormat("master avatar does not exist, creating it");
-                                // ...or create new user
-
-                                account = new UserAccount(scopeID, masterFirst, masterLast, "");
-                                bool success = m_app.SceneManager.CurrentOrFirstScene.UserAccountService.StoreUserAccount(account);
-                                if (success)
-                                {
-                                    GridRegion home = m_app.SceneManager.CurrentOrFirstScene.GridService.GetRegionByPosition(scopeID,
-                                        (int)(region.RegionLocX * Constants.RegionSize), (int)(region.RegionLocY * Constants.RegionSize));
-
-                                    m_app.SceneManager.CurrentOrFirstScene.PresenceService.SetHomeLocation(account.PrincipalID.ToString(), home.RegionID, new Vector3(128, 128, 0), new Vector3(0, 1, 0));
-                                }
-                                else
-                                    throw new Exception(String.Format("failed to create new user {0} {1}",
-                                                                      masterFirst, masterLast));
-                                
-                            }
-                            else
-                            {
-                                userID = account.PrincipalID;
-                            }
-                        }
-                    }
-
-                    region.MasterAvatarFirstName = masterFirst;
-                    region.MasterAvatarLastName = masterLast;
-                    region.MasterAvatarSandboxPassword = masterPassword;
-                    region.MasterAvatarAssignedUUID = userID;
 
                     bool persist = Convert.ToBoolean((string) requestData["persist"]);
                     if (persist)
@@ -667,6 +630,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
                     // If an access specification was provided, use it.
                     // Otherwise accept the default.
                     newscene.RegionInfo.EstateSettings.PublicAccess = getBoolean(requestData, "public", m_publicAccess);
+                    newscene.RegionInfo.EstateSettings.EstateOwner = userID;
                     if (persist)
                         newscene.RegionInfo.EstateSettings.Save();
 
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs
index 5798286..734b668 100644
--- a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs
@@ -113,14 +113,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
                     rxw.WriteString(s.RegionInfo.ExternalHostName);
                     rxw.WriteEndAttribute();
                     
-                    rxw.WriteStartAttribute(String.Empty, "master_name", String.Empty);
-                    rxw.WriteString(String.Format("{0} {1}", s.RegionInfo.MasterAvatarFirstName, s.RegionInfo.MasterAvatarLastName));
-                    rxw.WriteEndAttribute();
-                    
-                    rxw.WriteStartAttribute(String.Empty, "master_uuid", String.Empty);
-                    rxw.WriteString(s.RegionInfo.MasterAvatarAssignedUUID.ToString());
-                    rxw.WriteEndAttribute();
-                    
                     rxw.WriteStartAttribute(String.Empty, "ip", String.Empty);
                     rxw.WriteString(s.RegionInfo.InternalEndPoint.ToString());
                     rxw.WriteEndAttribute();
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/RegionDetails.cs b/OpenSim/ApplicationPlugins/Rest/Regions/RegionDetails.cs
index 746d08d..5e76009 100644
--- a/OpenSim/ApplicationPlugins/Rest/Regions/RegionDetails.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Regions/RegionDetails.cs
@@ -56,20 +56,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
             region_id = regInfo.RegionID.ToString();
             region_x = regInfo.RegionLocX;
             region_y = regInfo.RegionLocY;
-            if (regInfo.EstateSettings.EstateOwner != UUID.Zero)
-                region_owner_id = regInfo.EstateSettings.EstateOwner.ToString();
-            else
-                region_owner_id = regInfo.MasterAvatarAssignedUUID.ToString();
+            region_owner_id = regInfo.EstateSettings.EstateOwner.ToString();
             region_http_port = regInfo.HttpPort;
             region_server_uri = regInfo.ServerURI;
             region_external_hostname = regInfo.ExternalHostName;
 
             Uri uri = new Uri(region_server_uri);
             region_port = (uint)uri.Port;
-
-            if (!String.IsNullOrEmpty(regInfo.MasterAvatarFirstName))
-                region_owner = String.Format("{0} {1}", regInfo.MasterAvatarFirstName,
-                                             regInfo.MasterAvatarLastName);
         }
 
         public string this[string idx]
diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
index dbb9611..948a17a 100644
--- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
+++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
@@ -427,7 +427,7 @@ namespace OpenSim.Client.MXP.ClientStack
             pe.ObjectFragment.ObjectIndex = (uint)(m_scene.RegionInfo.RegionSettings.RegionUUID.GetHashCode() + ((long)int.MaxValue) / 2);
             pe.ObjectFragment.ParentObjectId = UUID.Zero.Guid;
             pe.ObjectFragment.ObjectName = "Terrain of " + m_scene.RegionInfo.RegionName;
-            pe.ObjectFragment.OwnerId = m_scene.RegionInfo.MasterAvatarAssignedUUID.Guid;
+            pe.ObjectFragment.OwnerId = m_scene.RegionInfo.EstateSettings.EstateOwner;
             pe.ObjectFragment.TypeId = Guid.Empty;
             pe.ObjectFragment.TypeName = "Terrain";
             pe.ObjectFragment.Acceleration = new MsdVector3f();
diff --git a/OpenSim/Framework/Communications/Clients/GridClient.cs b/OpenSim/Framework/Communications/Clients/GridClient.cs
index 4836556..0198d75 100644
--- a/OpenSim/Framework/Communications/Clients/GridClient.cs
+++ b/OpenSim/Framework/Communications/Clients/GridClient.cs
@@ -68,10 +68,7 @@ namespace OpenSim.Framework.Communications.Clients
             GridParams["region_secret"] = regionInfo.regionSecret;
             GridParams["major_interface_version"] = VersionInfo.MajorInterfaceVersion.ToString();
 
-            if (regionInfo.MasterAvatarAssignedUUID != UUID.Zero)
-                GridParams["master_avatar_uuid"] = regionInfo.MasterAvatarAssignedUUID.ToString();
-            else
-                GridParams["master_avatar_uuid"] = regionInfo.EstateSettings.EstateOwner.ToString();
+            GridParams["master_avatar_uuid"] = regionInfo.EstateSettings.EstateOwner.ToString();
 
             // Package into an XMLRPC Request
             ArrayList SendParams = new ArrayList();
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 88b62e0..0a826a6 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -54,10 +54,6 @@ namespace OpenSim.Framework
         private RegionSettings m_regionSettings;
         // private IConfigSource m_configSource = null;
 
-        public UUID MasterAvatarAssignedUUID = UUID.Zero;
-        public string MasterAvatarFirstName = String.Empty;
-        public string MasterAvatarLastName = String.Empty;
-        public string MasterAvatarSandboxPassword = String.Empty;
         public UUID originRegionID = UUID.Zero;
         public string proxyUrl = "";
         public int ProxyOffset = 0;
@@ -488,40 +484,6 @@ namespace OpenSim.Framework
                 m_externalHostName = externalName;
 
 
-            // Master avatar cruft
-            //
-            string masterAvatarUUID;
-            if (!creatingNew)
-            {
-                masterAvatarUUID = config.GetString("MasterAvatarUUID", UUID.Zero.ToString());
-                MasterAvatarFirstName = config.GetString("MasterAvatarFirstName", String.Empty);
-                MasterAvatarLastName = config.GetString("MasterAvatarLastName", String.Empty);
-                MasterAvatarSandboxPassword = config.GetString("MasterAvatarSandboxPassword", String.Empty);
-            }
-            else
-            {
-                masterAvatarUUID = MainConsole.Instance.CmdPrompt("Master Avatar UUID", UUID.Zero.ToString());
-                if (masterAvatarUUID != UUID.Zero.ToString())
-                {
-                    config.Set("MasterAvatarUUID", masterAvatarUUID);
-                }
-                else
-                {
-                    MasterAvatarFirstName = MainConsole.Instance.CmdPrompt("Master Avatar first name (enter for no master avatar)", String.Empty);
-                    if (MasterAvatarFirstName != String.Empty)
-                    {
-                        MasterAvatarLastName = MainConsole.Instance.CmdPrompt("Master Avatar last name", String.Empty);
-                        MasterAvatarSandboxPassword = MainConsole.Instance.CmdPrompt("Master Avatar sandbox password", String.Empty);
-                        
-                        config.Set("MasterAvatarFirstName", MasterAvatarFirstName);
-                        config.Set("MasterAvatarLastName", MasterAvatarLastName);
-                        config.Set("MasterAvatarSandboxPassword", MasterAvatarSandboxPassword);
-                    }
-                }
-            }
-
-            MasterAvatarAssignedUUID = new UUID(masterAvatarUUID);
-
             m_regionType = config.GetString("RegionType", String.Empty);
 
             // Prim stuff
@@ -564,20 +526,6 @@ namespace OpenSim.Framework
 
             config.Set("ExternalHostName", m_externalHostName);
 
-            if (MasterAvatarAssignedUUID != UUID.Zero)
-            {
-                config.Set("MasterAvatarUUID", MasterAvatarAssignedUUID.ToString());
-            }
-            else if (MasterAvatarFirstName != String.Empty && MasterAvatarLastName != String.Empty)
-            {
-                config.Set("MasterAvatarFirstName", MasterAvatarFirstName);
-                config.Set("MasterAvatarLastName", MasterAvatarLastName);
-            }
-            if (MasterAvatarSandboxPassword != String.Empty)
-            {
-                config.Set("MasterAvatarSandboxPassword", MasterAvatarSandboxPassword);
-            }
-
             if (m_nonphysPrimMax != 0)
                 config.Set("NonphysicalPrimMax", m_nonphysPrimMax);
             if (m_physPrimMax != 0)
@@ -651,17 +599,6 @@ namespace OpenSim.Framework
             configMember.addConfigurationOption("external_host_name",
                                                 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
                                                 "External Host Name", m_externalHostName, true);
-            configMember.addConfigurationOption("master_avatar_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
-                                                "Master Avatar UUID", MasterAvatarAssignedUUID.ToString(), true);
-            configMember.addConfigurationOption("master_avatar_first",
-                                                ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
-                                                "First Name of Master Avatar", MasterAvatarFirstName, true);
-            configMember.addConfigurationOption("master_avatar_last",
-                                                ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
-                                                "Last Name of Master Avatar", MasterAvatarLastName, true);
-            configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
-                                                "(Sandbox Mode Only)Password for Master Avatar account",
-                                                MasterAvatarSandboxPassword, true);
             configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
                                                 "Last Map UUID", lastMapUUID.ToString(), true);
             configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
@@ -711,22 +648,6 @@ namespace OpenSim.Framework
             configMember.addConfigurationOption("external_host_name",
                                                 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
                                                 "External Host Name", "127.0.0.1", false);
-            configMember.addConfigurationOption("master_avatar_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
-                                                "Master Avatar UUID", UUID.Zero.ToString(), true);
-            configMember.addConfigurationOption("master_avatar_first",
-                                                ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
-                                                "First Name of Master Avatar", "Test", false,
-                                                (ConfigurationOption.ConfigurationOptionShouldBeAsked)
-                                                shouldMasterAvatarDetailsBeAsked);
-            configMember.addConfigurationOption("master_avatar_last",
-                                                ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
-                                                "Last Name of Master Avatar", "User", false,
-                                                (ConfigurationOption.ConfigurationOptionShouldBeAsked)
-                                                shouldMasterAvatarDetailsBeAsked);
-            configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
-                                                "(Sandbox Mode Only)Password for Master Avatar account", "test", false,
-                                                (ConfigurationOption.ConfigurationOptionShouldBeAsked)
-                                                shouldMasterAvatarDetailsBeAsked);
             configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
                                     "Last Map UUID", lastMapUUID.ToString(), true);
 
@@ -752,11 +673,6 @@ namespace OpenSim.Framework
                                                 "Region Type", String.Empty, true);
         }
 
-        public bool shouldMasterAvatarDetailsBeAsked(string configuration_key)
-        {
-            return MasterAvatarAssignedUUID == UUID.Zero;
-        }
-
         public bool handleIncomingConfiguration(string configuration_key, object configuration_result)
         {
             switch (configuration_key)
@@ -797,18 +713,6 @@ namespace OpenSim.Framework
                         m_externalHostName = Util.GetLocalHost().ToString();
                     }
                     break;
-                case "master_avatar_uuid":
-                    MasterAvatarAssignedUUID = (UUID) configuration_result;
-                    break;
-                case "master_avatar_first":
-                    MasterAvatarFirstName = (string) configuration_result;
-                    break;
-                case "master_avatar_last":
-                    MasterAvatarLastName = (string) configuration_result;
-                    break;
-                case "master_avatar_pass":
-                    MasterAvatarSandboxPassword = (string)configuration_result;
-                    break;
                 case "lastmap_uuid":
                     lastMapUUID = (UUID)configuration_result;
                     break;
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 391856b..2db17b1 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -586,35 +586,6 @@ namespace OpenSim
             scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
             scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight);
 
-            // TODO: Remove this cruft once MasterAvatar is fully deprecated
-            //Master Avatar Setup
-            UserProfileData masterAvatar;
-            if (scene.RegionInfo.MasterAvatarAssignedUUID == UUID.Zero)
-            {
-                masterAvatar =
-                    m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarFirstName,
-                                                               scene.RegionInfo.MasterAvatarLastName,
-                                                               scene.RegionInfo.MasterAvatarSandboxPassword);
-            }
-            else
-            {
-                masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarAssignedUUID);
-                scene.RegionInfo.MasterAvatarFirstName = masterAvatar.FirstName;
-                scene.RegionInfo.MasterAvatarLastName = masterAvatar.SurName;
-            }
-
-            if (masterAvatar == null)
-            {
-                m_log.Info("[PARCEL]: No master avatar found, using null.");
-                scene.RegionInfo.MasterAvatarAssignedUUID = UUID.Zero;
-            }
-            else
-            {
-                m_log.InfoFormat("[PARCEL]: Found master avatar {0} {1} [" + masterAvatar.ID.ToString() + "]",
-                                 scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName);
-                scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.ID;
-            }
-
             return scene;
         }
 
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 3a802df..81fd86e 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -4030,10 +4030,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
             edata.CovenantID = covenant;
             edata.CovenantTimestamp = 0;
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                edata.EstateOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
-            else
-                edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+            edata.EstateOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
             edata.EstateName = Utils.StringToBytes(m_scene.RegionInfo.EstateSettings.EstateName);
             einfopack.Data = edata;
             OutPacket(einfopack, ThrottleOutPacketType.Task);
@@ -4054,8 +4051,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
             //Sending Estate Settings
             returnblock[0].Parameter = Utils.StringToBytes(estateName);
-            // TODO: remove this cruft once MasterAvatar is fully deprecated
-            //
             returnblock[1].Parameter = Utils.StringToBytes(estateOwner.ToString());
             returnblock[2].Parameter = Utils.StringToBytes(estateID.ToString());
 
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 4c43389..cc5dfa1 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -182,10 +182,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
 
             // Try to retain the original creator/owner/lastowner if their uuid is present on this grid
             // otherwise, use the master avatar uuid instead
-            UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID;
-
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
             // Reload serialized parcels
             m_log.InfoFormat("[ARCHIVER]: Loading {0} parcels.  Please wait.", serialisedParcels.Count);
@@ -194,7 +190,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             {
                 LandData parcel = LandDataSerializer.Deserialize(serialisedParcel);
                 if (!ResolveUserUuid(parcel.OwnerID))
-                    parcel.OwnerID = masterAvatarId;
+                    parcel.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                 landData.Add(parcel);
             }
             m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
@@ -233,13 +229,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                 foreach (SceneObjectPart part in sceneObject.Children.Values)
                 {
                     if (!ResolveUserUuid(part.CreatorID))
-                        part.CreatorID = masterAvatarId;
+                        part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
                     if (!ResolveUserUuid(part.OwnerID))
-                        part.OwnerID = masterAvatarId;
+                        part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
                     if (!ResolveUserUuid(part.LastOwnerID))
-                        part.LastOwnerID = masterAvatarId;
+                        part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
                     // And zap any troublesome sit target information
                     part.SitTargetOrientation = new Quaternion(0, 0, 0, 1);
@@ -255,11 +251,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                         {
                             if (!ResolveUserUuid(kvp.Value.OwnerID))
                             {
-                                kvp.Value.OwnerID = masterAvatarId;
+                                kvp.Value.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                             }
                             if (!ResolveUserUuid(kvp.Value.CreatorID))
                             {
-                                kvp.Value.CreatorID = masterAvatarId;
+                                kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                             }
                         }
                     }
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 5b82d4c..2109336 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -57,10 +57,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
             if (!m_scene.RegionInfo.EstateSettings.UseGlobalTime)
                 sun=(uint)(m_scene.RegionInfo.EstateSettings.SunPosition*1024.0) + 0x1800;
             UUID estateOwner;
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                estateOwner = m_scene.RegionInfo.EstateSettings.EstateOwner;
-            else
-                estateOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+            estateOwner = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
             if (m_scene.Permissions.IsGod(remote_client.AgentId))
                 estateOwner = remote_client.AgentId;
@@ -230,8 +227,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
 
             if (user == m_scene.RegionInfo.EstateSettings.EstateOwner)
                 return; // never process EO
-            if (user == m_scene.RegionInfo.MasterAvatarAssignedUUID)
-                return; // never process owner
 
             switch (estateAccessType)
             {
@@ -741,14 +736,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
             args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
             args.regionFlags = GetRegionFlags();
             args.regionName = m_scene.RegionInfo.RegionName;
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                args.SimOwner = m_scene.RegionInfo.EstateSettings.EstateOwner;
-            else
-                args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID;
-
-            // Fudge estate owner
-            //if (m_scene.Permissions.IsGod(remoteClient.AgentId))
-            //    args.SimOwner = remoteClient.AgentId;
+            args.SimOwner = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
             args.terrainBase0 = UUID.Zero;
             args.terrainBase1 = UUID.Zero;
@@ -1127,8 +1115,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
 
         public bool IsManager(UUID avatarID)
         {
-            if (avatarID == m_scene.RegionInfo.MasterAvatarAssignedUUID)
-                return true;
             if (avatarID == m_scene.RegionInfo.EstateSettings.EstateOwner)
                 return true;
 
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 9b39b09..f0c87f4 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -227,10 +227,7 @@ namespace OpenSim.Region.CoreModules.World.Land
             ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
 
             fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize));
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
-            else
-                fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+            fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
             fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
             AddLandObject(fullSimParcel);
         }
@@ -1090,10 +1087,7 @@ namespace OpenSim.Region.CoreModules.World.Land
             {
                 if (m_scene.Permissions.CanAbandonParcel(remote_client.AgentId, land))
                 {
-                    if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                        land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
-                    else
-                        land.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+                    land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                     land.LandData.GroupID = UUID.Zero;
                     land.LandData.IsGroupOwned = false;
                     m_scene.ForEachClient(SendParcelOverlay);
@@ -1114,10 +1108,7 @@ namespace OpenSim.Region.CoreModules.World.Land
             {
                 if (m_scene.Permissions.CanReclaimParcel(remote_client.AgentId, land))
                 {
-                    if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                        land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
-                    else
-                        land.LandData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+                    land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                     land.LandData.ClaimDate = Util.UnixTimeSinceEpoch();
                     land.LandData.GroupID = UUID.Zero;
                     land.LandData.IsGroupOwned = false;
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index aaebd00..ee76440 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -477,12 +477,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
         {
             if (user == UUID.Zero) return false;
         
-            if (m_scene.RegionInfo.MasterAvatarAssignedUUID != UUID.Zero)
-            {
-                if (m_RegionOwnerIsGod && (m_scene.RegionInfo.MasterAvatarAssignedUUID == user))
-                    return true;
-            }
-            
             if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
             {
                 if (m_scene.RegionInfo.EstateSettings.EstateOwner == user)
diff --git a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
index 9206a6d..27c82cd 100644
--- a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
+++ b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
@@ -56,9 +56,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
             //Now in DataSnapshotProvider module form!
             XmlNode estatedata = factory.CreateNode(XmlNodeType.Element, "estate", "");
 
-            UUID ownerid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
-            if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero)
-                ownerid = m_scene.RegionInfo.EstateSettings.EstateOwner;
+            ownerid = m_scene.RegionInfo.EstateSettings.EstateOwner;
 
             UserAccount userInfo = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, ownerid);
             //TODO: Change to query userserver about the master avatar UUID ?
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 476873a..e0da51b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -101,12 +101,6 @@ namespace OpenSim.Region.Framework.Scenes
                 {
                     userlevel = 1;
                 }
-                // TODO: remove this cruft once MasterAvatar is fully deprecated
-                //
-                if (m_regInfo.MasterAvatarAssignedUUID == AgentID)
-                {
-                    userlevel = 2;
-                }
                 EventManager.TriggerOnNewInventoryItemUploadComplete(AgentID, item.AssetID, item.Name, userlevel);
             }
             else
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
index 773507c..53b103e 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
@@ -57,8 +57,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
         internal string Host                 = String.Empty;
         internal string LocX                 = String.Empty;
         internal string LocY                 = String.Empty;
-        internal string MA1                  = String.Empty;
-        internal string MA2                  = String.Empty;
         internal string IDK                  = String.Empty;
 
         // System values - used only be the IRC classes themselves
@@ -85,8 +83,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
             Host   = scene.RegionInfo.ExternalHostName;
             LocX   = Convert.ToString(scene.RegionInfo.RegionLocX);
             LocY   = Convert.ToString(scene.RegionInfo.RegionLocY);
-            MA1    = scene.RegionInfo.MasterAvatarFirstName;
-            MA2    = scene.RegionInfo.MasterAvatarLastName;
             IDK    = Convert.ToString(_idk_++);
 
             // OpenChannel conditionally establishes a connection to the
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
index 4521f8e..19f9a82 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
@@ -212,8 +212,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
             if (script.StartsWith("//MRM:C#"))
             {
                 if (m_config.GetBoolean("OwnerOnly", true))
-                    if (m_scene.GetSceneObjectPart(localID).OwnerID != m_scene.RegionInfo.MasterAvatarAssignedUUID
-                        || m_scene.GetSceneObjectPart(localID).CreatorID != m_scene.RegionInfo.MasterAvatarAssignedUUID)
+                    if (m_scene.GetSceneObjectPart(localID).OwnerID != m_scene.RegionInfo.EstateSettings.EstateOwner)
+                        || m_scene.GetSceneObjectPart(localID).CreatorID != m_scene.RegionInfo.EstateSettings.EstateOwner)
                         return;
 
                 script = ConvertMRMKeywords(script);
@@ -280,7 +280,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
         public void GetGlobalEnvironment(uint localID, out IWorld world, out IHost host)
         {
             // UUID should be changed to object owner.
-            UUID owner = m_scene.RegionInfo.MasterAvatarAssignedUUID;
+            UUID owner = m_scene.RegionInfo.EstateSettings.EstateOwner)
             SEUser securityUser = new SEUser(owner, "Name Unassigned");
             SecurityCredential creds = new SecurityCredential(securityUser, m_scene);
 
diff --git a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
index e3fbb6e..92a205b 100644
--- a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
+++ b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
@@ -306,8 +306,6 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
 
             m_log.InfoFormat("[TREES]: New tree planting for copse {0}", copsename);
             UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner;
-            if (uuid == UUID.Zero)
-                uuid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
 
             foreach (Copse copse in m_copse)
             {
@@ -760,8 +758,6 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
                 Util.GetDistanceTo(position, copse.m_seed_point) <= copse.m_range)
             {
                 UUID uuid = m_scene.RegionInfo.EstateSettings.EstateOwner;
-                if (uuid == UUID.Zero)
-                    uuid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
 
                 CreateTree(uuid, copse, position);
             }
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs
index 5ea136f..cd27145 100644
--- a/OpenSim/Services/Interfaces/IGridService.cs
+++ b/OpenSim/Services/Interfaces/IGridService.cs
@@ -204,12 +204,6 @@ namespace OpenSim.Services.Interfaces
             Maturity = ConvertFrom.RegionSettings.Maturity;
             RegionSecret = ConvertFrom.regionSecret;
             EstateOwner = ConvertFrom.EstateSettings.EstateOwner;
-            if (EstateOwner == UUID.Zero)
-            {
-                EstateOwner = ConvertFrom.MasterAvatarAssignedUUID;
-                ConvertFrom.EstateSettings.EstateOwner = EstateOwner;
-                ConvertFrom.EstateSettings.Save();
-            }
         }
 
         public GridRegion(GridRegion ConvertFrom)
diff --git a/bin/RegionConfig.ini.example b/bin/RegionConfig.ini.example
index 8d833df..d45fe9d 100644
--- a/bin/RegionConfig.ini.example
+++ b/bin/RegionConfig.ini.example
@@ -20,17 +20,6 @@ AllowAlternatePorts = False
 ExternalHostName = "SYSTEMIP"
 
 ; *
-; * Master avatar stuff. Set either a UUID (from OSGrid or your server)
-; * OR a first and last name. Password is only needed for sandbox mode
-; * The default assigns no master avatar
-; *
-
-MasterAvatarUUID = "00000000-0000-0000-0000-000000000000"
-; MasterAvatarFirstName = ""
-; MasterAvatarLastName = ""
-; MasterAvatarSandboxPassword = ""
-
-; *
 ; * Prim data
 ; * This allows limiting the sizes of prims and the region prim count
 ; *
-- 
cgit v1.1