...Only reset avatar cache on callback with AVATAR flag

This commit is contained in:
IQuant 2024-10-27 15:44:51 +03:00
parent 6e30d5d0eb
commit 99273cb188

View file

@ -2,7 +2,7 @@ use std::{env, ops::Deref, sync::Arc, thread, time::Duration};
use dashmap::DashMap; use dashmap::DashMap;
use eframe::egui::{self, ColorImage, RichText, TextureHandle, TextureOptions, Ui}; use eframe::egui::{self, ColorImage, RichText, TextureHandle, TextureOptions, Ui};
use steamworks::{PersonaStateChange, SteamAPIInitError, SteamId}; use steamworks::{PersonaChange, PersonaStateChange, SteamAPIInitError, SteamId};
use tracing::{error, info}; use tracing::{error, info};
pub struct SteamUserAvatar { pub struct SteamUserAvatar {
@ -58,11 +58,13 @@ impl SteamState {
{ {
let avatar_cache = avatar_cache.clone(); let avatar_cache = avatar_cache.clone();
client.register_callback(move |event: PersonaStateChange| { client.register_callback(move |event: PersonaStateChange| {
info!( if event.flags.contains(PersonaChange::AVATAR) {
"Got PersonaStateChange for {:?}, removing from avatar cache.", info!(
event.steam_id "Got PersonaStateChange for {:?}, removing from avatar cache.",
); event.steam_id
avatar_cache.remove(&event.steam_id); );
avatar_cache.remove(&event.steam_id);
}
}); });
} }
Ok(SteamState { Ok(SteamState {