aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorUbitUmarov2016-07-01 18:19:09 +0100
committerUbitUmarov2016-07-01 18:19:09 +0100
commitaa744eecf2bc474509a1703028d681b27111ce84 (patch)
tree2eb5af94b4ac028a0b49f7516f590100e2985221 /OpenSim
parentcleanup a bit AgentGroupDataUpdate sending (diff)
downloadopensim-SC-aa744eecf2bc474509a1703028d681b27111ce84.zip
opensim-SC-aa744eecf2bc474509a1703028d681b27111ce84.tar.gz
opensim-SC-aa744eecf2bc474509a1703028d681b27111ce84.tar.bz2
opensim-SC-aa744eecf2bc474509a1703028d681b27111ce84.tar.xz
add a few methods to modify clientview group powers
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/IClientAPI.cs3
-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
-rw-r--r--OpenSim/Tests/Common/Mock/TestClient.cs12
5 files changed, 108 insertions, 24 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index c949c04..d9932eb 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -1473,6 +1473,9 @@ namespace OpenSim.Framework
1473 1473
1474 void SendAgentDropGroup(UUID groupID); 1474 void SendAgentDropGroup(UUID groupID);
1475 void RefreshGroupMembership(); 1475 void RefreshGroupMembership();
1476 void UpdateGroupMembership(GroupMembershipData[] data);
1477 void GroupMembershipRemove(UUID GroupID);
1478 void GroupMembershipAddReplace(UUID GroupID,ulong GroupPowers);
1476 void SendAvatarNotesReply(UUID targetID, string text); 1479 void SendAvatarNotesReply(UUID targetID, string text);
1477 void SendAvatarPicksReply(UUID targetID, Dictionary<UUID, string> picks); 1480 void SendAvatarPicksReply(UUID targetID, Dictionary<UUID, string> picks);
1478 void SendPickInfoReply(UUID pickID,UUID creatorID, bool topPick, UUID parcelID, string name, string desc, UUID snapshotID, string user, string originalName, string simName, Vector3 posGlobal, int sortOrder, bool enabled); 1481 void SendPickInfoReply(UUID pickID,UUID creatorID, bool topPick, UUID parcelID, string name, string desc, UUID snapshotID, string user, string originalName, string simName, Vector3 posGlobal, int sortOrder, bool enabled);
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 }
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs
index 1d8e38f..98a98c0 100644
--- a/OpenSim/Tests/Common/Mock/TestClient.cs
+++ b/OpenSim/Tests/Common/Mock/TestClient.cs
@@ -1281,6 +1281,18 @@ namespace OpenSim.Tests.Common
1281 { 1281 {
1282 } 1282 }
1283 1283
1284 public void UpdateGroupMembership(GroupMembershipData[] data)
1285 {
1286 }
1287
1288 public void GroupMembershipRemove(UUID GroupID)
1289 {
1290 }
1291
1292 public void GroupMembershipAddReplace(UUID GroupID,ulong GroupPowers)
1293 {
1294 }
1295
1284 public void SendUseCachedMuteList() 1296 public void SendUseCachedMuteList()
1285 { 1297 {
1286 } 1298 }