aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorGravatar lancebord 2026-03-10 11:07:44 -0400
committerGravatar lancebord 2026-03-10 11:07:44 -0400
commite9d9766d72740c7d7c9918b4839f3379f57cd6ef (patch)
tree3694b83845354af116a77f66ed22931d2d11536e /src/client
parenthandle window resize events since draw is event driven now (diff)
merge consecutive join/part messages
Diffstat (limited to 'src/client')
-rw-r--r--src/client/event.rs13
-rw-r--r--src/client/handler.rs22
2 files changed, 8 insertions, 27 deletions
diff --git a/src/client/event.rs b/src/client/event.rs
index 2c06d98..56e133e 100644
--- a/src/client/event.rs
+++ b/src/client/event.rs
@@ -17,20 +17,13 @@ pub enum Event {
SysMessage { text: String },
/// We joined a channel
- Joined { channel: String, nick: String },
+ Joined { nick: String },
/// We or someone else left a channel
- Parted {
- channel: String,
- nick: String,
- reason: Option<String>,
- },
+ Parted { nick: String },
/// Someone quit the server
- Quit {
- nick: String,
- reason: Option<String>,
- },
+ Quit { nick: String },
/// A nick change (could be ours)
NickChanged { old_nick: String, new_nick: String },
diff --git a/src/client/handler.rs b/src/client/handler.rs
index 63baf87..f30260f 100644
--- a/src/client/handler.rs
+++ b/src/client/handler.rs
@@ -90,40 +90,28 @@ pub fn handle(msg: IrcMessage, state: &mut ClientState, sender: &Sender) -> Vec<
Command::Join => {
let nick = nick_from_prefix(&msg.prefix);
- if let Some(channel) = msg.params.first() {
- events.push(Event::Joined {
- channel: channel.clone(),
- nick: nick.clone(),
- });
- if nick != state.nick {
- state.channel.members.insert(nick);
- }
+ events.push(Event::Joined { nick: nick.clone() });
+ if nick != state.nick {
+ state.channel.members.insert(nick);
}
}
Command::Part => {
let nick = nick_from_prefix(&msg.prefix);
- let channel = msg.params.first().cloned().unwrap_or_default();
- let reason = msg.params.get(1).cloned();
if nick != state.nick {
state.channel.members.remove(&nick);
}
- events.push(Event::Parted {
- channel,
- nick,
- reason,
- });
+ events.push(Event::Parted { nick });
}
Command::Quit => {
let nick = nick_from_prefix(&msg.prefix);
- let reason = msg.params.first().cloned();
state.channel.members.remove(&nick);
- events.push(Event::Quit { nick, reason });
+ events.push(Event::Quit { nick });
}
Command::Nick => {