aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorUbitUmarov2016-08-04 21:36:41 +0100
committerUbitUmarov2016-08-04 21:36:41 +0100
commite57d3edf6f483013461888c6acb65312101ab0eb (patch)
tree480149fd55b4a7ccf0ed01abeb4ea96920569f13 /OpenSim
parentadd GetActiveMembershipData() to groups modules, let core groups also have Ge... (diff)
downloadopensim-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.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;