diff --git a/xmpp/src/agent.rs b/xmpp/src/agent.rs index 9ff57e4..d9c1398 100644 --- a/xmpp/src/agent.rs +++ b/xmpp/src/agent.rs @@ -36,7 +36,9 @@ impl Agent { lang: &str, status: &str, ) { - muc::room::join_room(self, room, nick, password, lang, status).await + // Use the provided nickname, or the default if none. + let nick = nick.unwrap_or_else(|| self.default_nick.read().unwrap().to_string()); + muc::room::join_room(self, room, &nick, password, lang, status).await } /// Request to leave a chatroom. diff --git a/xmpp/src/muc/room.rs b/xmpp/src/muc/room.rs index 595402c..32c642c 100644 --- a/xmpp/src/muc/room.rs +++ b/xmpp/src/muc/room.rs @@ -13,19 +13,18 @@ use tokio_xmpp::{ BareJid, }; -use crate::{Agent, RoomNick}; use crate::agent::TokioXmppClient; +use crate::{Agent, RoomNick}; pub async fn join_room( agent: &mut Agent, room: BareJid, - nick: Option, + nick: &String, password: Option, lang: &str, status: &str, ) { - let nick = nick.unwrap_or_else(|| agent.default_nick.read().unwrap().clone()); - let presence = create_muc_join_presence_stanza(room, password, lang, status, &nick); + let presence = create_muc_join_presence_stanza(room, password, lang, status, nick); let _ = agent.client.send_stanza(presence.into()).await; }