forked from jmug/stoatchat
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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user