Revert last commit

0.7.4.1
Snoopy Pfeffer 2012-04-05 11:10:05 +02:00
parent e4406c846d
commit 8f45eb913c
1 changed files with 25 additions and 22 deletions

View File

@ -424,34 +424,37 @@ namespace OpenSim.Region.CoreModules.World.Land
{ {
if (LandData.GroupID != UUID.Zero && (LandData.Flags & (uint)ParcelFlags.UseAccessGroup) == (uint)ParcelFlags.UseAccessGroup) if (LandData.GroupID != UUID.Zero && (LandData.Flags & (uint)ParcelFlags.UseAccessGroup) == (uint)ParcelFlags.UseAccessGroup)
{ {
bool isMember; ScenePresence sp;
if (m_groupMemberCache.TryGetValue(avatar, out isMember)) if (!m_scene.TryGetScenePresence(avatar, out sp))
return isMember;
IGroupsModule groupsModule = m_scene.RequestModuleInterface<IGroupsModule>();
if (groupsModule == null)
{ {
m_groupMemberCache.Add(avatar, false, m_groupMemberCacheTimeout); bool isMember;
return false; if (m_groupMemberCache.TryGetValue(avatar, out isMember))
} return isMember;
GroupMembershipData[] membership = groupsModule.GetMembershipData(avatar); IGroupsModule groupsModule = m_scene.RequestModuleInterface<IGroupsModule>();
if (membership == null || membership.Length == 0) if (groupsModule == null)
{ return false;
m_groupMemberCache.Add(avatar, false, m_groupMemberCacheTimeout);
return false;
}
foreach (GroupMembershipData d in membership) GroupMembershipData[] membership = groupsModule.GetMembershipData(avatar);
{ if (membership == null || membership.Length == 0)
if (d.GroupID == LandData.GroupID)
{ {
m_groupMemberCache.Add(avatar, true, m_groupMemberCacheTimeout); m_groupMemberCache.Add(avatar, false, m_groupMemberCacheTimeout);
return true; return false;
} }
foreach (GroupMembershipData d in membership)
{
if (d.GroupID == LandData.GroupID)
{
m_groupMemberCache.Add(avatar, true, m_groupMemberCacheTimeout);
return true;
}
}
m_groupMemberCache.Add(avatar, false, m_groupMemberCacheTimeout);
return false;
} }
m_groupMemberCache.Add(avatar, false, m_groupMemberCacheTimeout);
return false; return sp.ControllingClient.IsGroupMember(LandData.GroupID);
} }
return false; return false;
} }