From 2d572574f6bcece9001f2bf3001e3a1a5e7db5c4 Mon Sep 17 00:00:00 2001 From: lancebord Date: Sun, 8 Mar 2026 14:32:25 -0400 Subject: add display for motd on connect --- src/client/event.rs | 3 +++ src/client/handler.rs | 9 +++++++++ src/main.rs | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/client/event.rs b/src/client/event.rs index 26e3f86..2c06d98 100644 --- a/src/client/event.rs +++ b/src/client/event.rs @@ -13,6 +13,9 @@ pub enum Event { is_notice: bool, }, + /// A system message like MOTD + SysMessage { text: String }, + /// We joined a channel Joined { channel: String, nick: String }, diff --git a/src/client/handler.rs b/src/client/handler.rs index 334240c..63baf87 100644 --- a/src/client/handler.rs +++ b/src/client/handler.rs @@ -79,6 +79,15 @@ pub fn handle(msg: IrcMessage, state: &mut ClientState, sender: &Sender) -> Vec< } } + // MOTD commands + Command::Numeric(375) | Command::Numeric(376) | Command::Numeric(372) => { + if let Some(message) = msg.params.get(1) { + events.push(Event::SysMessage { + text: message.clone(), + }); + } + } + Command::Join => { let nick = nick_from_prefix(&msg.prefix); if let Some(channel) = msg.params.first() { diff --git a/src/main.rs b/src/main.rs index db1922f..fc373d6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -226,6 +226,10 @@ fn handle_irc_event(event: IrcEvent, app: &mut AppState) { } } + IrcEvent::SysMessage { text } => { + app.push_system(text.as_str()); + } + IrcEvent::Parted { channel, nick, -- cgit v1.2.3-59-g8ed1b