friends improvements

This commit is contained in:
Maple Nebel 2026-07-08 22:03:43 +02:00
commit a5c6be381e
2 changed files with 48 additions and 9 deletions

View file

@ -827,7 +827,7 @@ impl FriendsWiiU for FriendsUser {
let pid = self.pid;
spawn(async move {
sleep(Duration::from_secs(15)).await;
sleep(Duration::from_secs(5)).await;
let mut friends = this.friend_pids.write().await;
friends.push(99);
@ -1493,6 +1493,23 @@ impl FriendsWiiU for FriendsUser {
return Err(ErrorCode::Core_Exception);
}
let mut presence = self.presence.write().await;
let Some(presence) = presence.as_mut() else {
return Err(ErrorCode::FPD_InvalidState);
};
if !preference.show_playing_title {
presence.game_server_id = 0;
presence.game_key = GameKey::default();
presence.app_data = vec![];
}
query!(
"update nintendo_network_accounts set last_online = now() where pid = $1",
self.pid
)
.execute(get_db())
.await
.ok();
let friends = self.maybe_remote_friend.read().await;
for friend in friends.iter().filter_map(|f| f.1.upgrade()) {
friend
@ -1503,7 +1520,31 @@ impl FriendsWiiU for FriendsUser {
data: data.clone(),
})
.await;
if preference.show_online {
friend
.remote
.process_nintendo_notification_event_2(NintendoNotificationEvent {
event_type: 24,
sender: self.pid,
data: Any::new(presence).expect("type error"),
})
.await;
} else {
friend
.remote
.process_nintendo_notification_event_2(NintendoNotificationEvent {
event_type: 10,
sender: self.pid,
data: Any::new(&NintendoNotificationEventGeneral {
param3: KerberosDateTime::now().0,
..Default::default()
})
.expect("type error"),
})
.await;
}
}
Ok(())
}
@ -1639,12 +1680,12 @@ impl Drop for FriendsUser {
let friends = mem::take(&mut self.maybe_remote_friend);
let users = friends.into_inner();
let pid = self.pid;
for user in users {
let Some(user) = user.1.upgrade() else {
continue;
};
tokio::spawn(async move {
for user in users {
let Some(user) = user.1.upgrade() else {
continue;
};
tokio::spawn(async move {
user.remote
.process_nintendo_notification_event_2(NintendoNotificationEvent {
event_type: 10,
@ -1656,9 +1697,7 @@ impl Drop for FriendsUser {
.expect("type error"),
})
.await;
});
}
tokio::spawn(async move {
}
query!(
"update nintendo_network_accounts set last_online = now() where pid = $1",
pid

View file