summaryrefslogtreecommitdiff
path: root/lib/exirc/client.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/exirc/client.ex')
-rw-r--r--lib/exirc/client.ex9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/exirc/client.ex b/lib/exirc/client.ex
index fe9168d..cde4f1a 100644
--- a/lib/exirc/client.ex
+++ b/lib/exirc/client.ex
@@ -640,6 +640,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!"