improved uuid to name on tracker and thread locking

This commit is contained in:
Madpeterz 2021-02-25 06:31:59 +00:00
parent e1b60dcbe8
commit 122d4586b2
2 changed files with 41 additions and 12 deletions

View file

@ -160,23 +160,48 @@ namespace BetterSecondbot.Tracking
}
}
protected void TrackerEventAdd(UUID av)
protected void TrackerEventAdd(object av)
{
if(AvatarSeen.ContainsKey(av) == false)
if (UUID.TryParse(av.ToString(), out UUID avuuid) == true)
{
output(av, "entry|" + controler.Bot.FindAvatarKey2Name(av));
AvatarSeen.Add(av, 0);
lock (AvatarSeen)
{
if (AvatarSeen.ContainsKey(avuuid) == false)
{
string name = controler.Bot.FindAvatarKey2Name(avuuid);
if (name == "lookup")
{
Thread.Sleep(2000);
}
name = controler.Bot.FindAvatarKey2Name(avuuid);
output(avuuid, "entry###" + name);
AvatarSeen.Add(avuuid, 0);
}
AvatarSeen[avuuid] = helpers.UnixTimeNow();
}
}
AvatarSeen[av] = helpers.UnixTimeNow();
}
protected void TrackerEventRemove(UUID av)
protected void TrackerEventRemove(object av)
{
if (AvatarSeen.ContainsKey(av) == true)
if (UUID.TryParse(av.ToString(), out UUID avuuid) == true)
{
output(av, "exit|" + controler.Bot.FindAvatarKey2Name(av)+"|"+ AvatarSeen[av].ToString());
AvatarSeen.Remove(av);
if (AvatarSeen.ContainsKey(avuuid) == true)
{
lock (AvatarSeen)
{
string name = controler.Bot.FindAvatarKey2Name(avuuid);
if (name == "lookup")
{
Thread.Sleep(2000);
}
name = controler.Bot.FindAvatarKey2Name(avuuid);
output(avuuid, "exit###" + name + "|" + AvatarSeen[avuuid].ToString());
AvatarSeen.Remove(avuuid);
}
}
}
}
@ -187,7 +212,8 @@ namespace BetterSecondbot.Tracking
{
foreach (UUID av in e.NewEntries)
{
TrackerEventAdd(av);
Thread newThread = new Thread(this.TrackerEventAdd);
newThread.Start(av);
}
}
if (e.RemovedEntries.Count() > 0)

View file

@ -356,8 +356,11 @@ namespace BetterSecondBot.bottypes
}
if (PendingAvatarFinds_viauuid.ContainsKey(avatar_uuid) == false)
{
PendingAvatarFinds_viauuid.Add(avatar_uuid, new KeyValuePair<long, int>(helpers.UnixTimeNow(), 0));
Client.Avatars.RequestAvatarName(avatar_uuid);
lock (PendingAvatarFinds_viauuid)
{
PendingAvatarFinds_viauuid.Add(avatar_uuid, new KeyValuePair<long, int>(helpers.UnixTimeNow(), 0));
Client.Avatars.RequestAvatarName(avatar_uuid);
}
}
return "lookup";
}