diff options
author | UbitUmarov | 2016-08-04 21:36:41 +0100 |
---|---|---|
committer | UbitUmarov | 2016-08-04 21:36:41 +0100 |
commit | e57d3edf6f483013461888c6acb65312101ab0eb (patch) | |
tree | 480149fd55b4a7ccf0ed01abeb4ea96920569f13 /OpenSim | |
parent | add GetActiveMembershipData() to groups modules, let core groups also have Ge... (diff) | |
download | opensim-SC-e57d3edf6f483013461888c6acb65312101ab0eb.zip opensim-SC-e57d3edf6f483013461888c6acb65312101ab0eb.tar.gz opensim-SC-e57d3edf6f483013461888c6acb65312101ab0eb.tar.bz2 opensim-SC-e57d3edf6f483013461888c6acb65312101ab0eb.tar.xz |
make sure all new scenepresences have fresh groups information at creation time (grouptitle missing but not that needed at that point) (use direct calls exactly where we want things to happen), reusing a funtion name to rename later
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Addons/Groups/GroupsModule.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 23 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 |
3 files changed, 25 insertions, 2 deletions
diff --git a/OpenSim/Addons/Groups/GroupsModule.cs b/OpenSim/Addons/Groups/GroupsModule.cs index b6bf5f1..73fc22c 100644 --- a/OpenSim/Addons/Groups/GroupsModule.cs +++ b/OpenSim/Addons/Groups/GroupsModule.cs | |||
@@ -1284,7 +1284,7 @@ namespace OpenSim.Groups | |||
1284 | 1284 | ||
1285 | GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); | 1285 | GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); |
1286 | 1286 | ||
1287 | remoteClient.RefreshGroupMembership(); | 1287 | remoteClient.UpdateGroupMembership(membershipArray); |
1288 | remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray); | 1288 | remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray); |
1289 | } | 1289 | } |
1290 | 1290 | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 26fc85e..25ecc96 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -13148,11 +13148,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
13148 | { | 13148 | { |
13149 | lock(m_groupPowers) | 13149 | lock(m_groupPowers) |
13150 | { | 13150 | { |
13151 | GroupMembershipData activeMembership = null; | ||
13151 | if (m_GroupsModule != null) | 13152 | if (m_GroupsModule != null) |
13152 | { | 13153 | { |
13153 | GroupMembershipData[] GroupMembership = | 13154 | GroupMembershipData[] GroupMembership = |
13154 | m_GroupsModule.GetMembershipData(AgentId); | 13155 | m_GroupsModule.GetMembershipData(AgentId); |
13155 | 13156 | ||
13156 | m_groupPowers.Clear(); | 13157 | m_groupPowers.Clear(); |
13157 | 13158 | ||
13158 | if (GroupMembership != null) | 13159 | if (GroupMembership != null) |
@@ -13162,6 +13163,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
13162 | m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers; | 13163 | m_groupPowers[GroupMembership[i].GroupID] = GroupMembership[i].GroupPowers; |
13163 | } | 13164 | } |
13164 | } | 13165 | } |
13166 | |||
13167 | activeMembership = m_GroupsModule.GetActiveMembershipData(AgentId); | ||
13168 | if(activeMembership != null) | ||
13169 | { | ||
13170 | if(!m_groupPowers.ContainsKey(activeMembership.GroupID)) | ||
13171 | activeMembership = null; | ||
13172 | else | ||
13173 | { | ||
13174 | m_activeGroupID = activeMembership.GroupID; | ||
13175 | m_activeGroupName = activeMembership.GroupName; | ||
13176 | m_activeGroupPowers = ActiveGroupPowers; | ||
13177 | } | ||
13178 | } | ||
13179 | } | ||
13180 | |||
13181 | if(activeMembership == null) | ||
13182 | { | ||
13183 | m_activeGroupID = UUID.Zero; | ||
13184 | m_activeGroupName = ""; | ||
13185 | m_activeGroupPowers = 0; | ||
13165 | } | 13186 | } |
13166 | } | 13187 | } |
13167 | } | 13188 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index c55d904..90b0f38 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1094,6 +1094,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1094 | m_LandingPointBehavior = LandingPointBehavior.SL; | 1094 | m_LandingPointBehavior = LandingPointBehavior.SL; |
1095 | } | 1095 | } |
1096 | 1096 | ||
1097 | ControllingClient.RefreshGroupMembership(); | ||
1098 | |||
1097 | } | 1099 | } |
1098 | 1100 | ||
1099 | private float lastHealthSent = 0; | 1101 | private float lastHealthSent = 0; |