diff options
author | Paul Schoenfelder <paulschoenfelder@gmail.com> | 2016-03-31 12:25:49 -0500 |
---|---|---|
committer | Paul Schoenfelder <paulschoenfelder@gmail.com> | 2016-03-31 12:25:49 -0500 |
commit | eb822271015334663cbcb66ea98e6bffbe84ee53 (patch) | |
tree | 961ef79ce3b5e784d9fbccf9d6595e70dcd0845b /lib/exirc/client.ex | |
parent | Merge pull request #46 from jeffweiss/add_test_for_stripping_rank_from_nicks (diff) | |
parent | handle QUIT messages (diff) |
Merge pull request #48 from jeffweiss/handle_quit
handle QUIT messages
Diffstat (limited to 'lib/exirc/client.ex')
-rw-r--r-- | lib/exirc/client.ex | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/exirc/client.ex b/lib/exirc/client.ex index 0ef50cc..7fb9122 100644 --- a/lib/exirc/client.ex +++ b/lib/exirc/client.ex @@ -637,6 +637,15 @@ defmodule ExIrc.Client do send_event {:parted, channel, sender}, new_state {:noreply, new_state} end + def handle_data(%IrcMessage{cmd: "QUIT", nick: from, host: host, user: user} = msg, state) do + sender = %SenderInfo{nick: from, host: host, user: user} + reason = msg.args |> List.first + if state.debug?, do: debug "#{from} QUIT" + channels = Channels.user_quit(state.channels, from) + new_state = %{state | channels: channels} + send_event {:quit, reason, sender}, new_state + {:noreply, new_state} + end # Called when we receive a PING def handle_data(%IrcMessage{cmd: "PING"} = msg, %ClientState{autoping: true} = state) do if state.debug?, do: debug "RECEIVED A PING!" |