示例#1
0
 public void KillInWorldAndDisk(UUID oldobjid)
 {
     if (CogbotHelpers.IsNullOrZero(oldobjid))
     {
         return;
     }
     Importing.KillID(oldobjid);
     KillInWorld(oldobjid);
 }
示例#2
0
        public void KillAllUnpacked(OutputDelegate Failures, bool artifacts)
        {
            UUID into = UUID.Zero;

            if (!settings.Contains("info"))
            {
                into = CogbotHelpers.NonZero(FolderCalled("TaskInvKilled"),
                                             Client.Inventory.FindFolderForType(AssetType.TrashFolder));
            }
            int count = 0;

            lock (fileWriterLock) foreach (string ext in new[] { "*.repack", /* "*.objectAsset"*/ })
                {
                    foreach (var file in Directory.GetFiles(dumpDir, ext))
                    {
                        count++;
                        if (count > 1)
                        {
                            if (settings.Contains("once"))
                            {
                                return;
                            }
                        }
                        string   filetext = File.ReadAllText(file);
                        string[] csv      = filetext.Split(new[] { ',' });
                        UUID     assetID  = new UUID(csv[2]);
                        uint     localID  = uint.Parse(csv[0]);
                        var      O1       = WorldObjects.GetSimObjectFromUUID(assetID);
                        if (O1 == null)
                        {
                            Client.Objects.RequestObject(Client.Network.CurrentSim, localID);
                        }
                        var O = GetSimObjectFromUUID(assetID);
                        if (O == null)
                        {
                            Failure("Cant find object for file: " + file + " " + filetext);
                            if (settings.Contains("info"))
                            {
                                Success("INFO: " + localID + " " + assetID);
                                continue;
                            }
                            Client.Inventory.RequestDeRezToInventory(localID, DeRezDestination.TrashFolder, into,
                                                                     UUID.Random());
                            File.Delete(file);
                            if (artifacts)
                            {
                                Importing.KillID(assetID);
                            }
                            if (settings.Contains("once"))
                            {
                                return;
                            }
                        }
                        else
                        {
                            if (!settings.Contains("info"))
                            {
                                Success("INFO: " + localID + " " + assetID + " text=" + filetext);
                                continue;
                            }
                            Client.Inventory.RequestDeRezToInventory(O.LocalID, DeRezDestination.TrashFolder, into,
                                                                     UUID.Random());
                            File.Delete(file);
                            if (artifacts)
                            {
                                Importing.KillID(assetID);
                            }
                            if (settings.Contains("once"))
                            {
                                return;
                            }
                        }
                    }
                    if (artifacts)
                    {
                        foreach (var file in Directory.GetFiles(dumpDir, "*.taskobj"))
                        {
                            string   filetext = File.ReadAllText(file);
                            string[] csv      = filetext.Split(new[] { ',' });
                            UUID     assetID  = new UUID(csv[2]);
                            Importing.KillID(assetID);
                            UUID   holderID   = new UUID(csv[3]);
                            string exportFile = dumpDir + "" + holderID + ".task";
                            if (File.Exists(exportFile))
                            {
                                File.Delete(exportFile);
                            }
                            File.Delete(file);
                        }
                    }
                }
        }