func handlerFunc(s *server) irc.HandlerFunc {
	return irc.HandlerFunc(func(c *irc.Client, m *irc.Message) {
		switch m.Command {
		case "PRIVMSG":
			parseForCTCP(c, m, s)
			return
		case "QUIT":
		case "PART", "KICK", "JOIN", "NICK":
		case "PING", "PING ZNC":
			c.Writef("PONG %s", m.Params[0])
		case "001":
			if s.conf.Nick != "" {
				c.Writef("NICK %s", s.conf.Nick)
			}
			s.j <- s.d.Buffs
		case "301":
			feed(fbuffer, m.Params[0], s, m)
		case "333":  
			timeSetAt(s, m)
			return
		case "MODE", "324":
			status(s, m)
		case "TOPIC":
			feed(fbuffer, m.Params[0], s, m)
			title(m.Params[1], s, m)
		case "331", "332":
			s.j <- m.Params[1]
			if m.Command == "332" {
				time.AfterFunc(time.Second*2, func() { title(m.Params[1], s, m) })
			}
		default:
			feed(fserver, "server", s, m)
		}
	})
}
BUG(halfwit): Logs are being created for user events such as client quit
https://github.com/altid/ircfs/issues/4
package main
import (
	"time"
	"gopkg.in/irc.v3"
)