aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs48
1 files changed, 2 insertions, 46 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 29c4d91..22b11e6 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2756,51 +2756,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2756 public void SendGroupMembership(GroupMembershipData[] GroupMembership) 2756 public void SendGroupMembership(GroupMembershipData[] GroupMembership)
2757 { 2757 {
2758 2758
2759 // maybe removed in future, use SendAgentGroupDataUpdate instead ( but make sure to update groupPowers ) 2759 UpdateGroupMembership(GroupMembership);
2760 AgentGroupDataUpdatePacket Groupupdate = new AgentGroupDataUpdatePacket(); 2760 SendAgentGroupDataUpdate(AgentId,GroupMembership);
2761 AgentGroupDataUpdatePacket.GroupDataBlock[] Groups = new AgentGroupDataUpdatePacket.GroupDataBlock[GroupMembership.Length];
2762
2763 lock(m_groupPowers)
2764 {
2765 m_groupPowers.Clear();
2766
2767 for (int i = 0; i < GroupMembership.Length; i++)
2768 {
2769 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers;
2770
2771 AgentGroupDataUpdatePacket.GroupDataBlock Group = new AgentGroupDataUpdatePacket.GroupDataBlock();
2772 Group.AcceptNotices = GroupMembership[i].AcceptNotices;
2773 Group.Contribution = GroupMembership[i].Contribution;
2774 Group.GroupID = GroupMembership[i].GroupID;
2775 Group.GroupInsigniaID = GroupMembership[i].GroupPicture;
2776 Group.GroupName = Util.StringToBytes256(GroupMembership[i].GroupName);
2777 Group.GroupPowers = GroupMembership[i].GroupPowers;
2778 Groups[i] = Group;
2779 }
2780 }
2781
2782 Groupupdate.GroupData = Groups;
2783 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock();
2784 Groupupdate.AgentData.AgentID = AgentId;
2785
2786 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
2787 try
2788 {
2789 if (eq != null)
2790 {
2791 eq.GroupMembership(Groupupdate, this.AgentId);
2792 }
2793 }
2794 catch (Exception ex)
2795 {
2796 m_log.Error("Unable to send group membership data via eventqueue - exception: " + ex.ToString());
2797 m_log.Warn("sending group membership data via UDP");
2798 eq = null;
2799 }
2800
2801 if(eq == null) // udp if no eq
2802 OutPacket(Groupupdate, ThrottleOutPacketType.Task);
2803
2804 } 2761 }
2805 2762
2806 public void SendPartPhysicsProprieties(ISceneEntity entity) 2763 public void SendPartPhysicsProprieties(ISceneEntity entity)
@@ -11015,7 +10972,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11015 if (m_GroupsModule != null) 10972 if (m_GroupsModule != null)
11016 { 10973 {
11017 m_GroupsModule.ActivateGroup(this, activateGroupPacket.AgentData.GroupID); 10974 m_GroupsModule.ActivateGroup(this, activateGroupPacket.AgentData.GroupID);
11018 m_GroupsModule.SendAgentGroupDataUpdate(this);
11019 } 10975 }
11020 return true; 10976 return true;
11021 10977