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 main() { flag.Parse() c := irc.SimpleClient(*name) c.EnableStateTracking() discon := make(chan bool) c.HandleFunc(irc.DISCONNECTED, func(conn *irc.Conn, line *irc.Line) { discon <- true }) c.HandleFunc(irc.CONNECTED, func(conn *irc.Conn, line *irc.Line) { conn.Join(*room) ShowNews(conn, *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) { go Dispatch(conn, line) go ExtractLinks(conn, line) go ExtractRFC(conn, line) if line.Public() && line.Nick != conn.Me().Nick { go DetectFlood(conn, line) Push(line) } }) log.Println("Connect to", *server) if err := c.ConnectTo(*server); err != nil { log.Fatal(err) } <-discon log.Println("Disconnected") }