From a7f096acd91d6ddf4cb2f2ae09fe640ce1cb9056 Mon Sep 17 00:00:00 2001 From: Madpeterz <57852827+Madpeterz@users.noreply.github.com> Date: Sat, 22 May 2021 14:35:33 +0100 Subject: [PATCH] Update BetterTracking.cs tracking events will now only trigger if a name is found "lookup" is no longer accepted. changing sim will also reset the tracking now --- BetterSecondbot/Tracking/BetterTracking.cs | 65 ++++++++++++---------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/BetterSecondbot/Tracking/BetterTracking.cs b/BetterSecondbot/Tracking/BetterTracking.cs index 506a5bd..68017c8 100644 --- a/BetterSecondbot/Tracking/BetterTracking.cs +++ b/BetterSecondbot/Tracking/BetterTracking.cs @@ -23,6 +23,7 @@ namespace BetterSecondbot.Tracking protected Dictionary AvatarSeen = new Dictionary(); + protected string AvatarSeenForSim = ""; protected bool AfterLogin = false; public BetterTracking(Cli setcontroler) @@ -122,6 +123,11 @@ namespace BetterSecondbot.Tracking { if(controler.getBot().GetClient.Network.CurrentSim != null) { + if(AvatarSeenForSim != controler.getBot().GetClient.Network.CurrentSim.Name) + { + AvatarSeenForSim = controler.getBot().GetClient.Network.CurrentSim.Name; + AvatarSeen = new Dictionary(); + } Dictionary entrys = controler.getBot().GetClient.Network.CurrentSim.AvatarPositions.Copy(); List avs = entrys.Keys.ToList(); List seenavs = new List(); @@ -187,38 +193,37 @@ namespace BetterSecondbot.Tracking protected void TrackerEventAdd(object av) { - if (UUID.TryParse(av.ToString(), out UUID avuuid) == true) + if (UUID.TryParse(av.ToString(), out UUID avuuid) == false) { - if (AvatarSeen.ContainsKey(avuuid) == false) - { - addToSeen(avuuid); - string name = controler.getBot().FindAvatarKey2Name(avuuid); - int loop = 0; - while ((loop < 32) && (name == "lookup")) - { - Thread.Sleep(500); - name = controler.getBot().FindAvatarKey2Name(avuuid); - loop++; - } - output(avuuid, "entry###" + name); - string parcelname = ""; - string simname = ""; - if (controler.getBot().GetClient.Network.CurrentSim.AvatarPositions.ContainsKey(avuuid)) - { - Vector3 pos = controler.getBot().GetClient.Network.CurrentSim.AvatarPositions[avuuid]; - simname = controler.getBot().GetClient.Network.CurrentSim.Name; - int localp = controler.getBot().GetClient.Parcels.GetParcelLocalID(controler.getBot().GetClient.Network.CurrentSim, pos); - parcelname = "?"; - if (controler.getBot().GetClient.Network.CurrentSim.Parcels.ContainsKey(localp) == true) - { - Parcel P = controler.getBot().GetClient.Network.CurrentSim.Parcels[localp]; - parcelname = P.Name; - } - } - controler.getBot().TriggerTrackingEvent(avuuid, name,parcelname, simname, false); - } - addToSeen(avuuid); + return; } + if (AvatarSeen.ContainsKey(avuuid) == true) + { + return; + } + string name = controler.getBot().FindAvatarKey2Name(avuuid); + if (name == "lookup") + { + return; + } + if (controler.getBot().GetClient.Network.CurrentSim.AvatarPositions.ContainsKey(avuuid) == false) + { + return; + } + addToSeen(avuuid); + output(avuuid, "entry###" + name); + string parcelname = ""; + string simname = ""; + Vector3 pos = controler.getBot().GetClient.Network.CurrentSim.AvatarPositions[avuuid]; + simname = controler.getBot().GetClient.Network.CurrentSim.Name; + int localp = controler.getBot().GetClient.Parcels.GetParcelLocalID(controler.getBot().GetClient.Network.CurrentSim, pos); + parcelname = "?"; + if (controler.getBot().GetClient.Network.CurrentSim.Parcels.ContainsKey(localp) == true) + { + Parcel P = controler.getBot().GetClient.Network.CurrentSim.Parcels[localp]; + parcelname = P.Name; + } + controler.getBot().TriggerTrackingEvent(avuuid, name, parcelname, simname, false); } protected void addToSeen(UUID av)