From bc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 21 Jun 2009 19:49:11 +0000 Subject: Correct the behaviro of group deeding and llGetOwner() within deeded objects --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 10 ++++++++-- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 1109e77..4514b1e 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -3295,7 +3295,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); objPropDB.RequestFlags = RequestFlags; objPropDB.ObjectID = ObjectUUID; - objPropDB.OwnerID = OwnerID; + if (OwnerID == GroupID) + objPropDB.OwnerID = UUID.Zero; + else + objPropDB.OwnerID = OwnerID; objPropDB.GroupID = GroupID; objPropDB.BaseMask = BaseMask; objPropDB.OwnerMask = OwnerMask; @@ -3340,7 +3343,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP // proper.ObjectData[0].LastOwnerID = UUID.Zero; proper.ObjectData[0].ObjectID = ObjectUUID; - proper.ObjectData[0].OwnerID = OwnerUUID; + if (OwnerUUID == GroupUUID) + proper.ObjectData[0].OwnerID = UUID.Zero; + else + proper.ObjectData[0].OwnerID = OwnerUUID; proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle); proper.ObjectData[0].TextureID = TextureID; proper.ObjectData[0].SitName = LLUtil.StringToPacketBytes(SitTitle); diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index c24ecf5..2fc3791 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes foreach (SceneObjectGroup sog in groups) { - if (ownerID != null) + if (ownerID != UUID.Zero) { sog.SetOwnerId(ownerID); sog.SetGroup(groupID, remoteClient); @@ -2727,6 +2727,12 @@ namespace OpenSim.Region.Framework.Scenes sog.ApplyNextOwnerPermissions(); } } + + foreach (uint localID in localIDs) + { + SceneObjectPart part = GetSceneObjectPart(localID); + part.GetProperties(remoteClient); + } } } } -- cgit v1.1