From 1bd7833f18c5fac078a74dcf90bcd9d34cce150f Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Wed, 26 Feb 2014 14:36:40 -0500 Subject: [PATCH] Add RPL_ISUPPORT parsing --- handlers.lua | 16 ++++++++++++++++ init.lua | 1 + 2 files changed, 17 insertions(+) diff --git a/handlers.lua b/handlers.lua index cbd1c9e..d6abb12 100644 --- a/handlers.lua +++ b/handlers.lua @@ -90,6 +90,22 @@ handlers["432"] = needNewNick -- ERR_NICKNAMEINUSE handlers["433"] = needNewNick +-- RPL_ISUPPORT +handlers["005"] = function(o, prefix, nick, ...) + local list = {...} + local listlen = #list + -- Skip last parameter (info) + for i = 1, listlen - 1 do + local item = list[i] + local pos = item:find("=") + if pos then + o.supports[item:sub(1, pos - 1)] = item:sub(pos + 1) + else + o.supports[item] = true + end + end +end + --NAMES list handlers["353"] = function(o, prefix, me, chanType, channel, names) if o.track_users then diff --git a/init.lua b/init.lua index d3c3369..5537ac3 100644 --- a/init.lua +++ b/init.lua @@ -39,6 +39,7 @@ function new(data) nickGenerator = data.nickGenerator or defaultNickGenerator; hooks = {}; track_users = true; + supports = {}; } assert(checkNick(o.nick), "Erroneous nickname passed to irc.new") return setmetatable(o, meta_preconnect)