aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/state/user.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src/state/user.rs')
-rw-r--r--mumd/src/state/user.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/mumd/src/state/user.rs b/mumd/src/state/user.rs
index bb4e101..679d0ff 100644
--- a/mumd/src/state/user.rs
+++ b/mumd/src/state/user.rs
@@ -1,3 +1,4 @@
+use log::*;
use mumble_protocol::control::msgs;
use serde::{Deserialize, Serialize};
@@ -78,6 +79,45 @@ impl User {
}
}
+ pub fn apply_user_diff(&mut self, diff: &mumlib::state::UserDiff) {
+ debug!("applying user diff\n{:#?}", diff);
+ if let Some(comment) = diff.comment.clone() {
+ self.comment = Some(comment);
+ }
+ if let Some(hash) = diff.hash.clone() {
+ self.hash = Some(hash);
+ }
+ if let Some(name) = diff.name.clone() {
+ self.name = name;
+ }
+ if let Some(priority_speaker) = diff.priority_speaker {
+ self.priority_speaker = priority_speaker;
+ }
+ if let Some(recording) = diff.recording {
+ self.recording = recording;
+ }
+ if let Some(suppress) = diff.suppress {
+ self.suppress = suppress;
+ }
+ if let Some(self_mute) = diff.self_mute {
+ self.self_mute = self_mute;
+ }
+ if let Some(self_deaf) = diff.self_deaf {
+ self.self_deaf = self_deaf;
+ }
+ if let Some(mute) = diff.mute {
+ self.mute = mute;
+ }
+ if let Some(deaf) = diff.deaf {
+ self.deaf = deaf;
+ }
+
+ if let Some(channel_id) = diff.channel_id {
+ self.channel = channel_id;
+ }
+ }
+
+
pub fn name(&self) -> &str {
&self.name
}