forked from lavina/lavina
irc: handle repeated joins correctly
This commit is contained in:
parent
580923814b
commit
bce8b332d2
|
@ -894,24 +894,32 @@ async fn handle_join(
|
||||||
match chan {
|
match chan {
|
||||||
Chan::Global(chan_name) => {
|
Chan::Global(chan_name) => {
|
||||||
let room_id = RoomId::from(chan_name.clone())?;
|
let room_id = RoomId::from(chan_name.clone())?;
|
||||||
if let JoinResult::Success(room_info) = user_handle.join_room(room_id).await? {
|
match user_handle.join_room(room_id).await? {
|
||||||
produce_on_join_cmd_messages(&config, &user, chan, &room_info, writer).await?;
|
JoinResult::Success(room_info) => {
|
||||||
} else {
|
produce_on_join_cmd_messages(&config, &user, chan, &room_info, writer).await?;
|
||||||
ServerMessage {
|
}
|
||||||
tags: vec![],
|
JoinResult::AlreadyJoined => {
|
||||||
sender: Some(config.server_name.clone()),
|
// we do nothing on repeated joins
|
||||||
body: ServerMessageBody::N474BannedFromChan {
|
}
|
||||||
client: user.nickname.clone(),
|
JoinResult::Banned => {
|
||||||
chan: chan.clone(),
|
ServerMessage {
|
||||||
message: "U dun goofed".into(),
|
tags: vec![],
|
||||||
},
|
sender: Some(config.server_name.clone()),
|
||||||
|
body: ServerMessageBody::N474BannedFromChan {
|
||||||
|
client: user.nickname.clone(),
|
||||||
|
chan: chan.clone(),
|
||||||
|
message: "U dun goofed".into(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
.write_async(writer)
|
||||||
|
.await?;
|
||||||
}
|
}
|
||||||
.write_async(writer)
|
|
||||||
.await?;
|
|
||||||
}
|
}
|
||||||
writer.flush().await?;
|
writer.flush().await?;
|
||||||
}
|
}
|
||||||
Chan::Local(_) => {}
|
Chan::Local(_) => {
|
||||||
|
// TODO handle join attempts to local chans with an error, we don't support these
|
||||||
|
}
|
||||||
};
|
};
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue