+ TOPICS[ARG[1]] = MSG
+}
+
+# Authentication
+# todo - netsplits
+CMD == "319" {
+ gsub(/[@+]/, "")
+ for (i=1; i<=NF; i++)
+ send("WHO " $i " %uhnar")
+ for (i=1; i<=NF; i++)
+ send("TOPIC " $i)
+}
+
+CMD == "ACCOUNT" {
+ _auth = ARG[1] == "*" ? 0 : ARG[1]
+ USERS[FROM]["auth"] = _auth
+}
+
+CMD == "354" {
+ _auth = ARG[5] == "*" ? 0 : ARG[5]
+ USERS[ARG[4]]["user"] = ARG[2]
+ USERS[ARG[4]]["host"] = ARG[3]
+ USERS[ARG[4]]["nick"] = ARG[4]
+ USERS[ARG[4]]["auth"] = _auth
+ USERS[ARG[4]]["real"] = MSG
+}
+
+CMD == "JOIN" {
+ _auth = ARG[2] == "*" ? 0 : ARG[2]
+ USERS[FROM]["user"] = USER
+ USERS[FROM]["host"] = HOST
+ USERS[FROM]["nick"] = FROM
+ USERS[FROM]["auth"] = _auth
+ USERS[FROM]["real"] = MSG
+}
+
+CMD == "NICK" {
+ USERS[MSG]["user"] = USERS[FROM]["user"]
+ USERS[MSG]["host"] = USERS[FROM]["host"]
+ USERS[MSG]["nick"] = MSG
+ USERS[MSG]["auth"] = USERS[FROM]["auth"]
+ USERS[MSG]["real"] = USERS[FROM]["real"]
+ delete USERS[FROM]