* Fixes endless loop in the Land Module when selecting any object.
* Fixes returning objects when the object owner hasn't been in the simulator since the simulator started up last.0.6.0-stable
parent
dd4100db4c
commit
cd79be569c
|
@ -582,6 +582,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
|||
|
||||
public void UpdateLandPrimCounts()
|
||||
{
|
||||
ResetAllLandPrimCounts();
|
||||
foreach (EntityBase obj in m_scene.Entities.Values)
|
||||
{
|
||||
if (obj is SceneObjectGroup)
|
||||
|
@ -589,6 +590,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
|||
m_scene.EventManager.TriggerParcelPrimCountAdd((SceneObjectGroup)obj);
|
||||
}
|
||||
}
|
||||
FinalizeLandPrimCountUpdate();
|
||||
landPrimCountTainted = false;
|
||||
}
|
||||
|
||||
public void PerformParcelPrimCountUpdate()
|
||||
|
|
|
@ -751,12 +751,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land
|
|||
landData.ownerPrims = 0;
|
||||
landData.otherPrims = 0;
|
||||
landData.selectedPrims = 0;
|
||||
|
||||
|
||||
lock (primsOverMe)
|
||||
primsOverMe.Clear();
|
||||
}
|
||||
|
||||
public void addPrimToCount(SceneObjectGroup obj)
|
||||
{
|
||||
|
||||
LLUUID prim_owner = obj.OwnerID;
|
||||
int prim_count = obj.PrimCount;
|
||||
|
||||
|
|
|
@ -438,6 +438,16 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
|
||||
public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj)
|
||||
{
|
||||
handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene;
|
||||
if (handlerObjectBeingRemovedFromScene != null)
|
||||
{
|
||||
handlerObjectBeingRemovedFromScene(obj);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerShutdown()
|
||||
{
|
||||
handlerShutdown = OnShutdown;
|
||||
|
@ -725,15 +735,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
|
||||
public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj)
|
||||
{
|
||||
handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene;
|
||||
if (handlerObjectBeingRemovedFromScene != null)
|
||||
{
|
||||
handlerObjectBeingRemovedFromScene(obj);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void TriggerRequestParcelPrimCountUpdate()
|
||||
|
|
|
@ -1675,6 +1675,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
public virtual bool returnObjects(SceneObjectGroup[] returnobjects, LLUUID AgentId)
|
||||
{
|
||||
string message = "";
|
||||
if (returnobjects.Length <= 0)
|
||||
return false;
|
||||
|
||||
|
@ -1698,7 +1699,14 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
CachedUserInfo userInfo =
|
||||
CommsManager.UserProfileCacheService.GetUserDetails(returnobjects[i].OwnerID);
|
||||
if (userInfo == null)
|
||||
{
|
||||
CommsManager.UserProfileCacheService.AddNewUser(returnobjects[i].OwnerID);
|
||||
|
||||
}
|
||||
if (userInfo != null)
|
||||
{
|
||||
if (userInfo.HasInventory)
|
||||
{
|
||||
LLUUID folderID = LLUUID.Zero;
|
||||
|
||||
|
@ -1783,9 +1791,29 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
DeleteSceneObjectGroup(ObjectDeleting);
|
||||
ObjectDeleting = null;
|
||||
}
|
||||
return true;
|
||||
else
|
||||
{
|
||||
CommsManager.UserProfileCacheService.RequestInventoryForUser(returnobjects[i].OwnerID);
|
||||
message = "Still waiting on the inventory service, some of the items won't be returned until the inventory services completes it's task. Try again shortly.";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Still waiting on the inventory service, some of the items won't be returned until the inventory services completes it's task. Try again shortly.";
|
||||
}
|
||||
//return true;
|
||||
}
|
||||
|
||||
if (message.Length != 0)
|
||||
{
|
||||
ScenePresence returningavatar = GetScenePresence(AgentId);
|
||||
if (returningavatar != null)
|
||||
{
|
||||
returningavatar.ControllingClient.SendAlertMessage(message);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue