aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/state.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-11-21 13:55:36 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-11-21 16:20:04 +0100
commit06a8c9024787cc13acfb4ae2b0666d3adaf87274 (patch)
tree6ccc7ce5edfa57dee8749aa477de868ac3028106 /mumd/src/state.rs
parenta5448f67ca40a1619e7ef792dfbb5a440c3020e0 (diff)
downloadmum-06a8c9024787cc13acfb4ae2b0666d3adaf87274.tar.gz
print status of mute/deafened when they change
Diffstat (limited to 'mumd/src/state.rs')
-rw-r--r--mumd/src/state.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 91cf734..36d3ee9 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -254,6 +254,7 @@ impl State {
(None, true, true) => Some((true, false)),
};
+ let mut new_deaf = None;
if let Some((mute, deafen)) = action {
if server.deafened() != deafen {
self.audio.play_effect(if deafen {
@@ -276,6 +277,7 @@ impl State {
}
if server.deafened() != deafen {
msg.set_self_deaf(deafen);
+ new_deaf = Some(deafen);
}
let server = self.server_mut().unwrap();
server.set_muted(mute);
@@ -283,7 +285,7 @@ impl State {
self.packet_sender.send(msg.into()).unwrap();
}
- now!(Ok(None))
+ now!(Ok(new_deaf.map(|b| CommandResponse::DeafenStatus { is_deafened: b })))
}
Command::MuteSelf(toggle) => {
if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) {
@@ -306,6 +308,7 @@ impl State {
(None, true, true) => Some((false, false)),
};
+ let mut new_mute = None;
if let Some((mute, deafen)) = action {
if server.deafened() != deafen {
self.audio.play_effect(if deafen {
@@ -323,8 +326,10 @@ impl State {
let mut msg = msgs::UserState::new();
if server.muted() != mute {
msg.set_self_mute(mute);
+ new_mute = Some(mute)
} else if !mute && !deafen && server.deafened() {
msg.set_self_mute(false);
+ new_mute = Some(false)
}
if server.deafened() != deafen {
msg.set_self_deaf(deafen);
@@ -335,7 +340,7 @@ impl State {
self.packet_sender.send(msg.into()).unwrap();
}
- now!(Ok(None))
+ now!(Ok(new_mute.map(|b| CommandResponse::MuteStatus { is_muted: b })))
}
Command::MuteOther(string, toggle) => {
if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) {