It's a bit faster than the other versions.
Code:
import flash.net.FileReference;
import flash.utils.ByteArray;
import fl.data.DataProvider;
userGrab.addEventListener(MouseEvent.CLICK, getUserNames);
function getUserNames(e:Event)
{
var allP:Object = Game.world.getAllAvatarsInCell();
for each(var o:Object in allP)
{
userList.dataProvider.addItem({label: o.pMC.pname.ti.text});
}
for(var i:int = 0; i<userList.dataProvider.length; i++)
{
trace("[Grabber]: Removing <AFK>");
userList.dataProvider.getItemAt(i).label = userList.dataProvider.getItemAt(i).label.split("<AFK> ").join("");
}
}
userSave.addEventListener(MouseEvent.CLICK, saveList);
function saveList(e:Event)
{
trace("[User List]: Saving current users");
var filefilter1:FileReference = new FileReference();
var names:ByteArray = new ByteArray();
names.writeInt(31);
names.writeObject(userList.dataProvider.toArray());
filefilter1.save(names, "New User List.ulist");
trace("[User List]: Done");
}
deleteDupes.addEventListener(MouseEvent.CLICK, removeDuplicates);
function removeDuplicates(e:Event)
{
var dataProv2:Array = userList.dataProvider.toArray();
RemoveDupes(dataProv2);
userList.dataProvider = new DataProvider(dataProv2);
}
function RemoveDupes(a:Array)
{
var i: int;
var j: int;
for (i = 0; i < a.length - 1; i++)
{
for (j = i + 1; j < arrary.length; j++)
{
if (a[i].label === a[j].label)
{
a.splice(j, 1);
}
}
}
}
//Credits to Lars Blåsjö for the dupe removal function