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
This commit is contained in:
parent
e0df24ee02
commit
a7f096acd9
1 changed files with 35 additions and 30 deletions
|
|
@ -23,6 +23,7 @@ namespace BetterSecondbot.Tracking
|
||||||
|
|
||||||
|
|
||||||
protected Dictionary<UUID, long> AvatarSeen = new Dictionary<UUID, long>();
|
protected Dictionary<UUID, long> AvatarSeen = new Dictionary<UUID, long>();
|
||||||
|
protected string AvatarSeenForSim = "";
|
||||||
protected bool AfterLogin = false;
|
protected bool AfterLogin = false;
|
||||||
|
|
||||||
public BetterTracking(Cli setcontroler)
|
public BetterTracking(Cli setcontroler)
|
||||||
|
|
@ -122,6 +123,11 @@ namespace BetterSecondbot.Tracking
|
||||||
{
|
{
|
||||||
if(controler.getBot().GetClient.Network.CurrentSim != null)
|
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<UUID, long>();
|
||||||
|
}
|
||||||
Dictionary<UUID, Vector3> entrys = controler.getBot().GetClient.Network.CurrentSim.AvatarPositions.Copy();
|
Dictionary<UUID, Vector3> entrys = controler.getBot().GetClient.Network.CurrentSim.AvatarPositions.Copy();
|
||||||
List<UUID> avs = entrys.Keys.ToList();
|
List<UUID> avs = entrys.Keys.ToList();
|
||||||
List<UUID> seenavs = new List<UUID>();
|
List<UUID> seenavs = new List<UUID>();
|
||||||
|
|
@ -187,38 +193,37 @@ namespace BetterSecondbot.Tracking
|
||||||
|
|
||||||
protected void TrackerEventAdd(object av)
|
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)
|
return;
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
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)
|
protected void addToSeen(UUID av)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue