mantis 8246: don't allow 'delete object name' to delete attachments, but allow delete object id, with confirmation

0.9.0.1-postfixes
UbitUmarov 2017-10-06 02:40:28 +01:00
parent db88c93243
commit 8520ceed63
1 changed files with 12 additions and 9 deletions

View File

@ -803,12 +803,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
else
so = m_scene.GetSceneObjectGroup(localId);
if (so!= null && !so.IsAttachment)
deletes.Add(so);
// if (deletes.Count == 0)
// m_console.OutputFormat("No objects were found with uuid {0}", match);
if (so!= null)
{
deletes.Add(so);
if(so.IsAttachment)
{
requireConfirmation = true;
m_console.OutputFormat("Warning: object with uuid {0} is a attachment", uuid);
}
}
break;
case "name":
@ -900,15 +903,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
List<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>();
Action<SceneObjectGroup> searchAction;
int refusedAttachments = 0;
if (useRegex)
{
Regex nameRegex = new Regex(name);
searchAction = so => { if (nameRegex.IsMatch(so.Name)) { sceneObjects.Add(so); }};
searchAction = so => { if (nameRegex.IsMatch(so.Name)) {if(!so.IsAttachment) sceneObjects.Add(so);}};
}
else
{
searchAction = so => { if (so.Name == name) { sceneObjects.Add(so); }};
searchAction = so => { if (so.Name == name) {if(!so.IsAttachment) sceneObjects.Add(so);}};
}
m_scene.ForEachSOG(searchAction);