diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 48 |
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 | ||