fix: cut presence traffic too while we engineer a new events architecture (#561)

Signed-off-by: izzy <me@insrt.uk>
This commit is contained in:
Paul Makles
2026-02-13 19:49:23 +00:00
committed by GitHub
parent 7c7f4f24de
commit 1f8ea963ad

View File

@@ -169,7 +169,9 @@ impl State {
}) { }) {
if let Ok(Some(voice_state)) = get_channel_voice_state(channel).await { if let Ok(Some(voice_state)) = get_channel_voice_state(channel).await {
if let Some(server) = channel.server() { if let Some(server) = channel.server() {
let set = voice_state_server_members.entry(server.to_string()).or_default(); let set = voice_state_server_members
.entry(server.to_string())
.or_default();
for participant in &voice_state.participants { for participant in &voice_state.participants {
user_ids.insert(participant.id.clone()); user_ids.insert(participant.id.clone());
@@ -397,27 +399,27 @@ impl State {
/// Push presence change to the user and all associated server topics /// Push presence change to the user and all associated server topics
pub async fn broadcast_presence_change(&self, target: bool) { pub async fn broadcast_presence_change(&self, target: bool) {
if if let Some(status) = &self.cache.users.get(&self.cache.user_id).unwrap().status { // if if let Some(status) = &self.cache.users.get(&self.cache.user_id).unwrap().status {
status.presence != Some(Presence::Invisible) // status.presence != Some(Presence::Invisible)
} else { // } else {
true // true
} { // } {
let event = EventV1::UserUpdate { // let event = EventV1::UserUpdate {
id: self.cache.user_id.clone(), // id: self.cache.user_id.clone(),
data: v0::PartialUser { // data: v0::PartialUser {
online: Some(target), // online: Some(target),
..Default::default() // ..Default::default()
}, // },
clear: vec![], // clear: vec![],
event_id: Some(ulid::Ulid::new().to_string()), // event_id: Some(ulid::Ulid::new().to_string()),
}; // };
for server in self.cache.servers.keys() { // for server in self.cache.servers.keys() {
event.clone().p(server.clone()).await; // event.clone().p(server.clone()).await;
} // }
event.p(self.cache.user_id.clone()).await; // event.p(self.cache.user_id.clone()).await;
} // }
} }
/// Handle an incoming event for protocol version 1 /// Handle an incoming event for protocol version 1