mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 19:36:07 +08:00
Mantis#1597. Thank you, Melanie for a patch that:
Adds handlers for the reclaim land functionality, plus all needed permissions checks.
This commit is contained in:
@@ -94,6 +94,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
||||
client.OnParcelAccessListRequest += new ParcelAccessListRequest(handleParcelAccessRequest);
|
||||
client.OnParcelAccessListUpdateRequest += new ParcelAccessListUpdateRequest(handleParcelAccessUpdateRequest);
|
||||
client.OnParcelAbandonRequest += new ParcelAbandonRequest(handleParcelAbandonRequest);
|
||||
client.OnParcelReclaim += new ParcelReclaim(handleParcelReclaim);
|
||||
|
||||
if (m_scene.Entities.ContainsKey(client.AgentId))
|
||||
{
|
||||
@@ -932,6 +933,21 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
||||
{
|
||||
landList[local_id].landData.ownerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
|
||||
m_scene.Broadcast(SendParcelOverlay);
|
||||
landList[local_id].sendLandUpdateToClient(remote_client);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void handleParcelReclaim(int local_id, IClientAPI remote_client)
|
||||
{
|
||||
if (landList.ContainsKey(local_id))
|
||||
{
|
||||
if (m_scene.ExternalChecks.ExternalChecksCanReclaimParcel(remote_client.AgentId, landList[local_id]))
|
||||
{
|
||||
landList[local_id].landData.ownerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
|
||||
m_scene.Broadcast(SendParcelOverlay);
|
||||
landList[local_id].sendLandUpdateToClient(remote_client);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1060,4 +1076,4 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,6 +243,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
|
||||
public event ParcelJoinRequest OnParcelJoinRequest;
|
||||
public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
|
||||
public event ParcelAbandonRequest OnParcelAbandonRequest;
|
||||
public event ParcelReclaim OnParcelReclaim;
|
||||
public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
|
||||
public event ParcelAccessListRequest OnParcelAccessListRequest;
|
||||
public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
|
||||
|
||||
@@ -143,6 +143,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
|
||||
m_scene.ExternalChecks.addSetBypassPermissions(SetBypassPermissions); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addPropagatePermissions(PropagatePermissions); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckAbandonParcel(CanAbandonParcel); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckReclaimParcel(CanReclaimParcel); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addGenerateClientFlags(GenerateClientFlags); //NOT YET FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckBeGodLike(CanBeGodLike); //FULLY IMPLEMENTED
|
||||
m_scene.ExternalChecks.addCheckDuplicateObject(CanDuplicateObject); //FULLY IMPLEMENTED
|
||||
@@ -531,6 +532,14 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
|
||||
return GenericParcelPermission(user, parcel);
|
||||
}
|
||||
|
||||
private bool CanReclaimParcel(LLUUID user, ILandObject parcel, Scene scene)
|
||||
{
|
||||
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
||||
if (m_bypassPermissions) return m_bypassPermissionsValue;
|
||||
|
||||
return GenericParcelPermission(user, parcel);
|
||||
}
|
||||
|
||||
private bool CanBeGodLike(LLUUID user, Scene scene)
|
||||
{
|
||||
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
||||
|
||||
Reference in New Issue
Block a user