diff options
Diffstat (limited to 'mumd')
| -rw-r--r-- | mumd/src/state.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs index fba6ab0..7a5df90 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -619,7 +619,13 @@ 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()).unwrap().name().to_string() + 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())) ); sender.send(Ok(Some(CommandResponse::PastMessage { message }))).is_ok() } else { @@ -634,7 +640,14 @@ pub fn handle_command( None => return now!(Err(Error::Disconnected)), }; let messages = messages.into_iter() - .map(|(msg, user)| (msg, server.users().get(&user).unwrap().name().to_string())).collect(); + .map(|(msg, user)| (msg, server + .users() + .get(&user) + .map(|e| e + .name() + .to_string()) + .unwrap_or(format!("Unknown user {}", user)))) + .collect(); now!(Ok(Some(CommandResponse::PastMessages { messages }))) } |
