aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs61
1 files changed, 46 insertions, 15 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 26fc85e..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
5805 5805
5806 public ulong GetGroupPowers(UUID groupID) 5806 public ulong GetGroupPowers(UUID groupID)
5807 { 5807 {
5808 if (groupID == ActiveGroupId)
5809 return ActiveGroupPowers;
5810
5811 lock(m_groupPowers) 5808 lock(m_groupPowers)
5812 { 5809 {
5813 if (m_groupPowers.ContainsKey(groupID)) 5810 if (m_groupPowers.ContainsKey(groupID))
@@ -6729,11 +6726,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6729 RezObject handlerRezObject = OnRezObject; 6726 RezObject handlerRezObject = OnRezObject;
6730 if (handlerRezObject != null) 6727 if (handlerRezObject != null)
6731 { 6728 {
6732 handlerRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd, 6729 UUID rezGroupID = rezPacket.AgentData.GroupID;
6733 rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID, 6730 if(!IsGroupMember(rezGroupID))
6734 rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection, 6731 rezGroupID = UUID.Zero;
6735 rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem, 6732 handlerRezObject(this, rezPacket.InventoryData.ItemID, rezGroupID, rezPacket.RezData.RayEnd,
6736 rezPacket.RezData.FromTaskID); 6733 rezPacket.RezData.RayStart, rezPacket.RezData.RayTargetID,
6734 rezPacket.RezData.BypassRaycast, rezPacket.RezData.RayEndIsIntersection,
6735 rezPacket.RezData.RezSelected, rezPacket.RezData.RemoveItem,
6736 rezPacket.RezData.FromTaskID);
6737 } 6737 }
6738 return true; 6738 return true;
6739 } 6739 }
@@ -7544,7 +7544,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7544 7544
7545 AddNewPrim handlerAddPrim = OnAddPrim; 7545 AddNewPrim handlerAddPrim = OnAddPrim;
7546 if (handlerAddPrim != null) 7546 if (handlerAddPrim != null)
7547 handlerAddPrim(AgentId, ActiveGroupId, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape, addPacket.ObjectData.BypassRaycast, addPacket.ObjectData.RayStart, addPacket.ObjectData.RayTargetID, addPacket.ObjectData.RayEndIsIntersection); 7547 handlerAddPrim(AgentId, addPacket.AgentData.GroupID, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape, addPacket.ObjectData.BypassRaycast, addPacket.ObjectData.RayStart, addPacket.ObjectData.RayTargetID, addPacket.ObjectData.RayEndIsIntersection);
7548 } 7548 }
7549 return true; 7549 return true;
7550 } 7550 }
@@ -7644,9 +7644,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7644 handlerObjectDuplicate = OnObjectDuplicate; 7644 handlerObjectDuplicate = OnObjectDuplicate;
7645 if (handlerObjectDuplicate != null) 7645 if (handlerObjectDuplicate != null)
7646 { 7646 {
7647 UUID rezGroupID = dupe.AgentData.GroupID;
7648 if(!IsGroupMember(rezGroupID))
7649 rezGroupID = UUID.Zero;
7647 handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, 7650 handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset,
7648 dupe.SharedData.DuplicateFlags, AgentId, 7651 dupe.SharedData.DuplicateFlags, AgentId,
7649 ActiveGroupId); 7652 rezGroupID);
7650 } 7653 }
7651 } 7654 }
7652 7655
@@ -8266,10 +8269,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8266 handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay; 8269 handlerObjectDuplicateOnRay = OnObjectDuplicateOnRay;
8267 if (handlerObjectDuplicateOnRay != null) 8270 if (handlerObjectDuplicateOnRay != null)
8268 { 8271 {
8269 handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, 8272
8270 AgentId, ActiveGroupId, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, 8273 UUID rezGroupID = dupeOnRay.AgentData.GroupID;
8271 dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, 8274 if(!IsGroupMember(rezGroupID))
8272 dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); 8275 rezGroupID = UUID.Zero;
8276
8277 handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID,
8278 dupeOnRay.AgentData.DuplicateFlags, AgentId, rezGroupID,
8279 dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd,
8280 dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast,
8281 dupeOnRay.AgentData.RayEndIsIntersection,
8282 dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates);
8273 } 8283 }
8274 } 8284 }
8275 8285
@@ -13148,11 +13158,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
13148 { 13158 {
13149 lock(m_groupPowers) 13159 lock(m_groupPowers)
13150 { 13160 {
13161 GroupMembershipData activeMembership = null;
13151 if (m_GroupsModule != null) 13162 if (m_GroupsModule != null)
13152 { 13163 {
13153 GroupMembershipData[] GroupMembership = 13164 GroupMembershipData[] GroupMembership =
13154 m_GroupsModule.GetMembershipData(AgentId); 13165 m_GroupsModule.GetMembershipData(AgentId);
13155 13166
13156 m_groupPowers.Clear(); 13167 m_groupPowers.Clear();
13157 13168
13158 if (GroupMembership != null) 13169 if (GroupMembership != null)
@@ -13162,6 +13173,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
13162 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers; 13173 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers;
13163 } 13174 }
13164 } 13175 }
13176
13177 activeMembership = m_GroupsModule.GetActiveMembershipData(AgentId);
13178 if(activeMembership != null)
13179 {
13180 if(!m_groupPowers.ContainsKey(activeMembership.GroupID))
13181 activeMembership = null;
13182 else
13183 {
13184 m_activeGroupID = activeMembership.GroupID;
13185 m_activeGroupName = activeMembership.GroupName;
13186 m_activeGroupPowers = ActiveGroupPowers;
13187 }
13188 }
13189 }
13190
13191 if(activeMembership == null)
13192 {
13193 m_activeGroupID = UUID.Zero;
13194 m_activeGroupName = "";
13195 m_activeGroupPowers = 0;
13165 } 13196 }
13166 } 13197 }
13167 } 13198 }