diff options
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; |