aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Addons/Groups/GroupsModule.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs23
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
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;