diff options
author | UbitUmarov | 2016-07-01 18:19:09 +0100 |
---|---|---|
committer | UbitUmarov | 2016-07-01 18:19:09 +0100 |
commit | aa744eecf2bc474509a1703028d681b27111ce84 (patch) | |
tree | 2eb5af94b4ac028a0b49f7516f590100e2985221 /OpenSim | |
parent | cleanup a bit AgentGroupDataUpdate sending (diff) | |
download | opensim-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')
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 | } |