From f9c1001b540348670feb64675699a7cd4f4401ea Mon Sep 17 00:00:00 2001 From: Eskil Queseth Date: Mon, 16 Nov 2020 02:20:00 +0100 Subject: fix on how sound is played when muting --- mumd/src/state.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'mumd/src/state.rs') diff --git a/mumd/src/state.rs b/mumd/src/state.rs index d719851..640a839 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -255,16 +255,19 @@ impl State { }; if let Some((mute, deafen)) = action { + if server.deafened() != deafen { + self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); + } else if server.muted() != mute { + self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); + } let mut msg = msgs::UserState::new(); if server.muted() != mute { msg.set_self_mute(mute); - self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); } else if !mute && !deafen && server.deafened() { msg.set_self_mute(false); } if server.deafened() != deafen { msg.set_self_deaf(deafen); - self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); } let server = self.server_mut().unwrap(); server.set_muted(mute); @@ -296,16 +299,19 @@ impl State { }; if let Some((mute, deafen)) = action { + if server.deafened() != deafen { + self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); + } else if server.muted() != mute { + self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); + } let mut msg = msgs::UserState::new(); if server.muted() != mute { msg.set_self_mute(mute); - self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); } else if !mute && !deafen && server.deafened() { msg.set_self_mute(false); } if server.deafened() != deafen { msg.set_self_deaf(deafen); - self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); } let server = self.server_mut().unwrap(); server.set_muted(mute); -- cgit v1.2.1