aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2021-05-21 15:41:49 +0200
committerEskil Queseth <eskilq@kth.se>2021-05-21 15:41:49 +0200
commit1a0a0cc5796bebf32e50465abb68b06044aac2e7 (patch)
tree90214942debde9bb0dfc28e81bcceddf59e20d12 /mumd/src
parent9769c26156311fa24a1a376736172283e199bbf9 (diff)
downloadmum-1a0a0cc5796bebf32e50465abb68b06044aac2e7.tar.gz
refactor user name getting
Diffstat (limited to 'mumd/src')
-rw-r--r--mumd/src/state.rs27
1 files changed, 9 insertions, 18 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 7a5df90..87a5a0e 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -300,6 +300,13 @@ impl State {
.1
.channel()
}
+ fn get_user_name(&self, user: u32) -> String {
+ self.server()
+ .unwrap()
+ .users()
+ .get(&user).map(|e| e.name().to_string())
+ .unwrap_or(format!("Unknown user {}", user))
+ }
}
pub fn handle_command(
@@ -619,13 +626,7 @@ pub fn handle_command(
if let TcpEventData::TextMessage(a) = data {
let message = (
a.get_message().to_owned(),
- ref_state.read()
- .unwrap()
- .server()
- .unwrap()
- .users()
- .get(&a.get_actor()).map(|e| e.name().to_string())
- .unwrap_or(format!("Unknown user {}", a.get_actor()))
+ ref_state.read().unwrap().get_user_name(a.get_actor())
);
sender.send(Ok(Some(CommandResponse::PastMessage { message }))).is_ok()
} else {
@@ -635,18 +636,8 @@ pub fn handle_command(
)
} else {
let messages = std::mem::take(&mut state.message_buffer);
- let server = match state.server.as_ref() {
- Some(s) => s,
- None => return now!(Err(Error::Disconnected)),
- };
let messages = messages.into_iter()
- .map(|(msg, user)| (msg, server
- .users()
- .get(&user)
- .map(|e| e
- .name()
- .to_string())
- .unwrap_or(format!("Unknown user {}", user))))
+ .map(|(msg, user)| (msg, state.get_user_name(user)))
.collect();
now!(Ok(Some(CommandResponse::PastMessages { messages })))