summaryrefslogtreecommitdiff
path: root/lib/irc/client/command/invite.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/irc/client/command/invite.ex')
-rw-r--r--lib/irc/client/command/invite.ex21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/irc/client/command/invite.ex b/lib/irc/client/command/invite.ex
new file mode 100644
index 0000000..833c2fc
--- /dev/null
+++ b/lib/irc/client/command/invite.ex
@@ -0,0 +1,21 @@
+defmodule Irc.Client.Command.Invite do
+ alias Irc.Parser.Line
+
+ @type invite :: {:invite, channel :: String.t(), inviter :: String.t(), invited_nick :: String.t()}
+ @type invited :: {:invite, channel :: String.t, inviter :: Irc.Mask.t}
+ @type t :: invite | invited
+
+ def init() do
+ {"INVITE", :invite, "invite-notify"}
+ end
+
+ def handle_line(%Line{command: "INVITE", source: inviter, args: [invited, channel]}) do
+ {:event, {:invite, channel, inviter, invited}}
+ end
+
+ def handle_line(%Line{command: "INVITE", source: inviter, args: [channel]}) do
+ {:event, {:invite, channel, inviter}}
+ end
+
+end
+