Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor
commit
6cb50c49b5
|
@ -281,6 +281,34 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool HasGroupAccess(UUID avatar)
|
||||||
|
{
|
||||||
|
if ((LandData.Flags & (uint)ParcelFlags.UseAccessGroup) == (uint)ParcelFlags.UseAccessGroup)
|
||||||
|
{
|
||||||
|
IGroupsModule groupsModule =
|
||||||
|
m_scene.RequestModuleInterface<IGroupsModule>();
|
||||||
|
|
||||||
|
List<UUID> agentGroups = new List<UUID>();
|
||||||
|
if (groupsModule != null)
|
||||||
|
{
|
||||||
|
GroupMembershipData[] GroupMembership =
|
||||||
|
groupsModule.GetMembershipData(avatar);
|
||||||
|
|
||||||
|
if (GroupMembership != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < GroupMembership.Length; i++)
|
||||||
|
{
|
||||||
|
if (LandData.GroupID == GroupMembership[i].GroupID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsBannedFromLand(UUID avatar)
|
public bool IsBannedFromLand(UUID avatar)
|
||||||
{
|
{
|
||||||
if (m_scene.Permissions.IsAdministrator(avatar))
|
if (m_scene.Permissions.IsAdministrator(avatar))
|
||||||
|
@ -317,10 +345,14 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
//If they are not on the access list and are not the owner
|
//If they are not on the access list and are not the owner
|
||||||
if (!LandData.ParcelAccessList.Contains(entry) && LandData.OwnerID != avatar)
|
if (!LandData.ParcelAccessList.Contains(entry) && LandData.OwnerID != avatar)
|
||||||
{
|
{
|
||||||
//They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel
|
if (!HasGroupAccess(avatar))
|
||||||
return true;
|
{
|
||||||
|
//They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2053,13 +2053,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
//Console.WriteLine("Camera Eye ={0}", cameraEyeOffset);
|
//Console.WriteLine("Camera Eye ={0}", cameraEyeOffset);
|
||||||
|
|
||||||
//NOTE: SendSitResponse should be relative to the GROUP *NOT* THE PRIM if we're sitting on a child
|
//NOTE: SendSitResponse should be relative to the GROUP *NOT* THE PRIM if we're sitting on a child
|
||||||
Quaternion roffset = Quaternion.Identity;
|
ControllingClient.SendSitResponse(part.ParentGroup.UUID, ((offset * part.RotationOffset) + part.OffsetPosition), sitOrientation, autopilot, cameraAtOffset, cameraEyeOffset, forceMouselook);
|
||||||
if (SitTargetisSet)
|
|
||||||
{
|
|
||||||
roffset = part.RotationOffset;
|
|
||||||
}
|
|
||||||
ControllingClient.SendSitResponse(part.ParentGroup.UUID, ((offset * roffset) + part.OffsetPosition), sitOrientation / part.RotationOffset, autopilot, cameraAtOffset, cameraEyeOffset, forceMouselook);
|
|
||||||
|
|
||||||
|
m_requestedSitTargetUUID = part.UUID; //KF: Correct autopilot target
|
||||||
// This calls HandleAgentSit twice, once from here, and the client calls
|
// This calls HandleAgentSit twice, once from here, and the client calls
|
||||||
// HandleAgentSit itself after it gets to the location
|
// HandleAgentSit itself after it gets to the location
|
||||||
// It doesn't get to the location until we've moved them there though
|
// It doesn't get to the location until we've moved them there though
|
||||||
|
@ -2444,7 +2440,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
m_linkedPrim = part.UUID;
|
m_linkedPrim = part.UUID;
|
||||||
m_offsetRotation = m_offsetRotation / part.RotationOffset;
|
if (part.GetAvatarOnSitTarget() != UUID)
|
||||||
|
{
|
||||||
|
m_offsetRotation = m_offsetRotation / part.RotationOffset;
|
||||||
|
}
|
||||||
Velocity = Vector3.Zero;
|
Velocity = Vector3.Zero;
|
||||||
RemoveFromPhysicalScene();
|
RemoveFromPhysicalScene();
|
||||||
Animator.TrySetMovementAnimation(sitAnimation);
|
Animator.TrySetMovementAnimation(sitAnimation);
|
||||||
|
|
Loading…
Reference in New Issue