From 180add745cea4a7e076afd1cfe1c922df1bf7e0b Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 16 Jan 2017 20:27:39 +0000 Subject: replace calls to SetOwnerId and SetRootPartOwner by a single new SetOwner() so owner is not changed twice on rootpart --- .../Region/Framework/Scenes/SceneObjectGroup.cs | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4d1e564..924b61f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2766,6 +2766,30 @@ namespace OpenSim.Region.Framework.Scenes part.ScheduleFullUpdate(); } + public void SetOwner(UUID cAgentID, UUID cGroupID) + { + SceneObjectPart rpart = RootPart; + UUID oldowner = rpart.OwnerID; + ForEachPart(delegate(SceneObjectPart part) + { + if(part.GroupID != part.OwnerID) + part.LastOwnerID = part.OwnerID; + part.OwnerID = cAgentID; + part.GroupID = cGroupID; + }); + + if (oldowner != cAgentID) + { + // Apply Next Owner Permissions if we're not bypassing permissions + if (!m_scene.Permissions.BypassPermissions()) + ApplyNextOwnerPermissions(); + } + + rpart.ScheduleFullUpdate(); + } + + + /// /// Make a copy of the given part. /// -- cgit v1.1