replace calls to SetOwnerId and SetRootPartOwner by a single new SetOwner() so owner is not changed twice on rootpart
parent
6735d3496c
commit
180add745c
|
@ -136,8 +136,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
|
|||
return false;
|
||||
}
|
||||
|
||||
group.SetOwnerId(remoteClient.AgentId);
|
||||
group.SetRootPartOwner(part, remoteClient.AgentId, remoteClient.ActiveGroupId);
|
||||
group.SetOwner(remoteClient.AgentId, remoteClient.ActiveGroupId);
|
||||
|
||||
if (m_scene.Permissions.PropagatePermissions())
|
||||
{
|
||||
|
|
|
@ -2103,8 +2103,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (original.OwnerID != AgentID)
|
||||
{
|
||||
copy.SetOwnerId(AgentID);
|
||||
copy.SetRootPartOwner(copy.RootPart, AgentID, GroupID);
|
||||
copy.SetOwner(AgentID, GroupID);
|
||||
|
||||
SceneObjectPart[] partList = copy.Parts;
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Make a copy of the given part.
|
||||
/// </summary>
|
||||
|
|
|
@ -163,8 +163,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments
|
|||
if ((effectivePerms & (uint)PermissionMask.Transfer) == 0)
|
||||
return 0;
|
||||
|
||||
hostPart.ParentGroup.SetOwnerId(target.UUID);
|
||||
hostPart.ParentGroup.SetRootPartOwner(hostPart.ParentGroup.RootPart, target.UUID, target.ControllingClient.ActiveGroupId);
|
||||
hostPart.ParentGroup.SetOwner(target.UUID, target.ControllingClient.ActiveGroupId);
|
||||
|
||||
if (m_scene.Permissions.PropagatePermissions())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue