package main import ( "flag" "log" irc "github.com/fluffle/goirc/client" ) var ( server = flag.String("server", "irc.freenode.org:6667", "IRC Server") room = flag.String("room", "#lor", "IRC Channel") name = flag.String("name", "dim13", "Bots Name") ) func init() { flag.Parse() } func main() { c := irc.SimpleClient(*name) c.EnableStateTracking() quit := make(chan bool) c.HandleFunc(irc.DISCONNECTED, func(conn *irc.Conn, line *irc.Line) { quit <- true }) c.HandleFunc(irc.CONNECTED, func(conn *irc.Conn, line *irc.Line) { conn.Join(*room) }) c.HandleFunc(irc.KICK, func(conn *irc.Conn, line *irc.Line) { conn.Join(*room) }) c.HandleFunc(irc.PRIVMSG, func(conn *irc.Conn, line *irc.Line) { if line.Public() && line.Nick != conn.Me().Nick { Push(line) Count(line.Nick) } go Dispatch(conn, line) go ExtractLinks(conn, line) go ExtractRFC(conn, line) go DetectFlood(conn, line) }) if err := c.ConnectTo(*server); err != nil { log.Fatal(err) } go AutoSave() <-quit }