From 23578635df0c98f883f7be9b6e08a4fc1a7c834c Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 5 Aug 2016 15:19:42 +0100 Subject: more changes relative to incorrect use of activegroupid --- .../Region/ClientStack/Linden/UDP/LLClientView.cs | 36 ++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'OpenSim/Region/ClientStack') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 088cd4c..e3b2fd1 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -5805,9 +5805,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP public ulong GetGroupPowers(UUID groupID) { - if (groupID == ActiveGroupId) - return ActiveGroupPowers; - lock(m_groupPowers) { if (m_groupPowers.ContainsKey(groupID)) @@ -6729,11 +6726,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP RezObject handlerRezObject = OnRezObject; if (handlerRezObject != null) { - handlerRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd, - rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, - rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, - rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, - rezPacket.RezData.FromTaskID); + UUID rezGroupID = rezPacket.AgentData.GroupID; + if(!IsGroupMember(rezGroupID)) + rezGroupID = UUID.Zero; + handlerRezObject(this, rezPacket.InventoryData.ItemID, rezGroupID, rezPacket.RezData.RayEnd, + rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, + rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, + rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, + rezPacket.RezData.FromTaskID); } return true; } @@ -7644,9 +7644,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP handlerObjectDuplicate = OnObjectDuplicate; if (handlerObjectDuplicate != null) { + UUID rezGroupID = dupe.AgentData.GroupID; + if(!IsGroupMember(rezGroupID)) + rezGroupID = UUID.Zero; handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, dupe.SharedData.DuplicateFlags, AgentId, - dupe.AgentData.GroupID); + rezGroupID); } } @@ -8266,10 +8269,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay; if (handlerObjectDuplicateOnRay != null) { - handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, - AgentId, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, - dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, - dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); + + UUID rezGroupID = dupeOnRay.AgentData.GroupID; + if(!IsGroupMember(rezGroupID)) + rezGroupID = UUID.Zero; + + handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, + dupeOnRay.AgentData.DuplicateFlags, AgentId, rezGroupID, + dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, + dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, + dupeOnRay.AgentData.RayEndIsIntersection, + dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); } } -- cgit v1.1