adjustments to the avatar storage engine to try and catch some trash

This commit is contained in:
Madpeter 2020-04-27 00:47:58 +01:00
parent e4e264ea92
commit 48fd3f6e0d

View file

@ -135,17 +135,26 @@ namespace BSB.bottypes
long dif = now - entry.Value; long dif = now - entry.Value;
if(dif > max_db_storage_age) if(dif > max_db_storage_age)
{ {
PurgeAvatars.Add(entry.Key); if (PurgeAvatars.Contains(entry.Key) == false)
{
PurgeAvatars.Add(entry.Key);
}
} }
} }
foreach(string purge in PurgeAvatars) foreach(string purge in PurgeAvatars)
{ {
if (purge != myconfig.master) if (purge != myconfig.master)
{ {
AvatarStorageLastUsed.Remove(purge); if (AvatarStorageLastUsed.ContainsKey(purge) == true)
UUID avuuid = AvatarName2Key[purge]; {
AvatarName2Key.Remove(purge); if(AvatarName2Key.ContainsKey(purge) == true)
AvatarKey2Name.Remove(avuuid); {
AvatarStorageLastUsed.Remove(purge);
UUID avuuid = AvatarName2Key[purge];
AvatarName2Key.Remove(purge);
AvatarKey2Name.Remove(avuuid);
}
}
} }
} }
} }
@ -185,16 +194,19 @@ namespace BSB.bottypes
{ {
if (AvatarStorageLastUsed.ContainsKey(av_name) == false) if (AvatarStorageLastUsed.ContainsKey(av_name) == false)
{ {
AvatarName2Key.Add(av_name, av_uuid); if (av_uuid != UUID.Zero)
AvatarKey2Name.Add(av_uuid, av_name);
AvatarStorageLastUsed.Add(av_name, helpers.UnixTimeNow());
if (PendingAvatarFinds_vianame.ContainsKey(av_name) == true)
{ {
PendingAvatarFinds_vianame.Remove(av_name); AvatarName2Key.Add(av_name, av_uuid);
} AvatarKey2Name.Add(av_uuid, av_name);
if (PendingAvatarFinds_viauuid.ContainsKey(av_uuid) == true) AvatarStorageLastUsed.Add(av_name, helpers.UnixTimeNow());
{ if (PendingAvatarFinds_vianame.ContainsKey(av_name) == true)
PendingAvatarFinds_viauuid.Remove(av_uuid); {
PendingAvatarFinds_vianame.Remove(av_name);
}
if (PendingAvatarFinds_viauuid.ContainsKey(av_uuid) == true)
{
PendingAvatarFinds_viauuid.Remove(av_uuid);
}
} }
} }
if (helpers.notempty(myconfig.master) == true) if (helpers.notempty(myconfig.master) == true)