aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs89
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs16
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs12
3 files changed, 93 insertions, 24 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 12f6fbd..16cb4ac 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2755,29 +2755,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2755 2755
2756 public void SendGroupMembership(GroupMembershipData[] GroupMembership) 2756 public void SendGroupMembership(GroupMembershipData[] GroupMembership)
2757 { 2757 {
2758 m_groupPowers.Clear();
2759 2758
2759 // maybe removed in future, use SendAgentGroupDataUpdate instead ( but make sure to update groupPowers )
2760 AgentGroupDataUpdatePacket Groupupdate = new AgentGroupDataUpdatePacket(); 2760 AgentGroupDataUpdatePacket Groupupdate = new AgentGroupDataUpdatePacket();
2761 AgentGroupDataUpdatePacket.GroupDataBlock[] Groups = new AgentGroupDataUpdatePacket.GroupDataBlock[GroupMembership.Length]; 2761 AgentGroupDataUpdatePacket.GroupDataBlock[] Groups = new AgentGroupDataUpdatePacket.GroupDataBlock[GroupMembership.Length];
2762 for (int i = 0; i < GroupMembership.Length; i++)
2763 {
2764 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers;
2765 2762
2766 AgentGroupDataUpdatePacket.GroupDataBlock Group = new AgentGroupDataUpdatePacket.GroupDataBlock(); 2763 lock(m_groupPowers)
2767 Group.AcceptNotices = GroupMembership[i].AcceptNotices; 2764 {
2768 Group.Contribution = GroupMembership[i].Contribution; 2765 m_groupPowers.Clear();
2769 Group.GroupID = GroupMembership[i].GroupID;
2770 Group.GroupInsigniaID = GroupMembership[i].GroupPicture;
2771 Group.GroupName = Util.StringToBytes256(GroupMembership[i].GroupName);
2772 Group.GroupPowers = GroupMembership[i].GroupPowers;
2773 Groups[i] = Group;
2774 2766
2767 for (int i = 0; i < GroupMembership.Length; i++)
2768 {
2769 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers;
2775 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 }
2776 } 2780 }
2781
2777 Groupupdate.GroupData = Groups; 2782 Groupupdate.GroupData = Groups;
2778 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock(); 2783 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock();
2779 Groupupdate.AgentData.AgentID = AgentId; 2784 Groupupdate.AgentData.AgentID = AgentId;
2780 2785
2781 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>(); 2786 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
2782 try 2787 try
2783 { 2788 {
@@ -5639,9 +5644,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5639 if (groupID == ActiveGroupId) 5644 if (groupID == ActiveGroupId)
5640 return ActiveGroupPowers; 5645 return ActiveGroupPowers;
5641 5646
5642 if (m_groupPowers.ContainsKey(groupID)) 5647 lock(m_groupPowers)
5643 return m_groupPowers[groupID]; 5648 {
5644 5649 if (m_groupPowers.ContainsKey(groupID))
5650 return m_groupPowers[groupID];
5651 }
5645 return 0; 5652 return 0;
5646 } 5653 }
5647 5654
@@ -12952,23 +12959,57 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12952 12959
12953 public void RefreshGroupMembership() 12960 public void RefreshGroupMembership()
12954 { 12961 {
12955 if (m_GroupsModule != null) 12962 lock(m_groupPowers)
12956 { 12963 {
12957 GroupMembershipData[] GroupMembership = 12964 if (m_GroupsModule != null)
12965 {
12966 GroupMembershipData[] GroupMembership =
12958 m_GroupsModule.GetMembershipData(AgentId); 12967 m_GroupsModule.GetMembershipData(AgentId);
12959 12968
12960 m_groupPowers.Clear(); 12969 m_groupPowers.Clear();
12961 12970
12962 if (GroupMembership != null) 12971 if (GroupMembership != null)
12963 {
12964 for (int i = 0; i < GroupMembership.Length; i++)
12965 { 12972 {
12966 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers; 12973 for (int i = 0; i < GroupMembership.Length; i++)
12974 {
12975 m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers;
12976 }
12967 } 12977 }
12968 } 12978 }
12969 } 12979 }
12970 } 12980 }
12971 12981
12982 public void UpdateGroupMembership(GroupMembershipData[] data)
12983 {
12984 lock(m_groupPowers)
12985 {
12986 m_groupPowers.Clear();
12987
12988 if (data != null)
12989 {
12990 for (int i = 0; i < data.Length; i++)
12991 m_groupPowers[data[i].GroupID] = data[i].GroupPowers;
12992 }
12993 }
12994 }
12995
12996 public void GroupMembershipRemove(UUID GroupID)
12997 {
12998 lock(m_groupPowers)
12999 {
13000 if(m_groupPowers.ContainsKey(GroupID))
13001 m_groupPowers.Remove(GroupID);
13002 }
13003 }
13004
13005 public void GroupMembershipAddReplace(UUID GroupID,ulong GroupPowers)
13006 {
13007 lock(m_groupPowers)
13008 {
13009 m_groupPowers[GroupID] = GroupPowers;
13010 }
13011 }
13012
12972 public string Report() 13013 public string Report()
12973 { 13014 {
12974 return m_udpClient.GetStats(); 13015 return m_udpClient.GetStats();
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index f19cd47..f34dbe8 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -1626,6 +1626,22 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1626 1626
1627 } 1627 }
1628 1628
1629 public void UpdateGroupMembership(GroupMembershipData[] data)
1630 {
1631
1632 }
1633
1634 public void GroupMembershipRemove(UUID GroupID)
1635 {
1636
1637 }
1638
1639 public void GroupMembershipAddReplace(UUID GroupID,ulong GroupPowers)
1640 {
1641
1642 }
1643
1644
1629 public void SendAvatarNotesReply(UUID targetID, string text) 1645 public void SendAvatarNotesReply(UUID targetID, string text)
1630 { 1646 {
1631 1647
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 43b4e02..bdac6aa 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -1255,6 +1255,18 @@ namespace OpenSim.Region.OptionalModules.World.NPC
1255 { 1255 {
1256 } 1256 }
1257 1257
1258 public void UpdateGroupMembership(GroupMembershipData[] data)
1259 {
1260 }
1261
1262 public void GroupMembershipRemove(UUID GroupID)
1263 {
1264 }
1265
1266 public void GroupMembershipAddReplace(UUID GroupID,ulong GroupPowers)
1267 {
1268 }
1269
1258 public void SendUseCachedMuteList() 1270 public void SendUseCachedMuteList()
1259 { 1271 {
1260 } 1272 }